【検証：Stable Diffusion】曖昧な文章に生成AIでイメージ画像をつけたらわかりやすくなるのか

# はじめに
文章にイメージ画像を添付すると、文章のみよりも意図が伝わりやすいと感じることがあります。実際、文章にイメージ画像を添付するとコミュニケーションエラーが少なくなる可能性を示唆した研究が報告されています[[参考1](#参考)]。今回は、生成AIによるイメージ画像を添付することで、メッセージが「わかりやすく[^1]」なるのかを検証します。

<strong>画像[[参考1](#参考)]：画像添付によるエラー数の減少[^2]（緑）</strong>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892617/121019e3-441f-1a42-01d1-815f85582145.png" width="600">

```:分析環境
ローカル環境
    OS: MacOS 13.2.1
Azure環境
    OS: Linux (ubuntu 20.04)
GPU: Tesla P100-PCIE-16GB
Python: 3.8.5
PyTorch: 1.11.0
Numpy: 1.24.2
```

# 問題設定

本件では、「わかりやすく」なる理由について、「イメージ画像は文章の曖昧性を解消する効果がある」という仮説を立て、「文章の曖昧性」のうち、言語学の観点から以下を検証対象として選択しました。各検証に適当な文章(英文)をプロンプトとして入力し、出力画像について有効性と課題を評価・考察します（曖昧性については[[参考2](#参考)]で詳しく説明されています）。

#### １． 語義曖昧性（同形異義語）
同形異義語(homograph)とは、スペルが同じでも意味や成り立ちが異なる単語のことです[[参考2](#参考)]。
(例) 
・　She was sitting at the ***bar***.（彼女はバーに座っていた）
・　I ate three ***bars*** of chocolate.（板チョコを3枚食べました）

#### ２． 修飾語による意味の揺れ（構文的な曖昧性）
同じ文章でも、修飾語がどの部分にかかるかによって意味が異なる文章があります。
(例) I saw the man ***with*** telescope.
・　意味1: 望遠鏡を「持っている」男性を見た
・　意味2: 望遠鏡を「使って」男性を見た

#### ３． 照応表現による意味の揺れ（文脈に依存する曖昧性）
同じ文章でも、代名詞や名詞句が指し示す対象が何かによって意味が異なる文章があります[[参考3](#参考)]。
(例) The car collided with the tree, and ***it*** was severely damaged.
・　意味1：車は木と衝突し、「車は」ひどく損傷した
・　意味2：車は木と衝突し、「木は」ひどく損傷した

# 検証モデル
今回の検証では、生成AIとしてstable diffusion ver1-4[[参考4](#参考)]を使用します[^3]。ハイパーパラメータはデフォルトです(環境構築については[[参考5](#参考)]を参考にさせていただきました)。




# 検証１．語義曖昧性（同形異義語）
以下検証しました。全体として、単語レベルの曖昧性については、意味を適切に捉えた出力が多い印象です。検証の中では少数ながら失敗例もありましたが、画像生成モデルの「文字生成が苦手」という性質が大きく影響している印象です。

## 成功例： bar
* 意図通り、「bar」の語の意味に応じた出力となっている 


|She was sitting at the <INS>***bar***</INS>.<br>（彼女は<INS>***バー***</INS>に座っていた）|I ate three <INS>***bars***</INS> of chocolate.<br>（<INS>***板チョコ***</INS>を3枚食べた）|
|---|---|
|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892617/f229ca9f-831a-6c34-ceea-ac306333b328.png" width="300">|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892617/e6bad639-4c7e-aa7e-3deb-1e0126b3427f.png" width="300">|




## 失敗例： capital
* 右の画像がわかりにくい画像となっている

|Cairo is the <INS>***capital***</INS> of Egypt.<br>（カイロはエジプトの<INS>***首都***</INS>である）|You should write your name in <INS>***capital***</INS> <br>letters.（名前は<INS>***大文字***</INS>で書いてください）|
|---|---|
|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892617/8e66e3bd-f6d3-cff4-2539-8374646cc67d.png" width="300">|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892617/7f5fad0b-1937-2d61-0132-bd807e2ca467.png" width="300">|





# 検証２．修飾語による意味の揺れ（構文的な曖昧性）
以下検証しました。全体として、構文的な曖昧性については、ある程度意味を適切に捉えた出力をする印象です。この検証では、曖昧性を含む文章に追加の文脈を与え、意図通りの画像が出力されるかを検証しました。ほとんどの例では、文脈を与えて文意を一意に定めることによって意図した画像が出力されましたが、一部文脈を試行錯誤しても同様の画像が出力する例が見られました（失敗例）。

## 成功例： withの用法
- 意図通り、「with」の用法に応じた出力となっている 

|<INS>I saw the man ***with*** telescope.</INS> He was standing there, proudly holding the device and gazing at the sky.（私は<INS>望遠鏡を持った</INS>男を見た。彼はそこに立ち、誇らしげに装置を持ち、空を見つめていた。）|<INS>I saw the man ***with*** telescope.</INS> Through the lens, I could clearly see him on the other side of the park.（私は<INS>望遠鏡で</INS>その人を見た。レンズを通して、公園の反対側にいる彼をはっきりと見ることができた。）|
|---|---|
|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892617/eefbbd47-48dc-fea4-fc95-fd260bd0e242.png" width="300">|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892617/00112a45-c3c3-892b-afdd-0740ba05a0bd.png" width="300">|



## 失敗例：withの用法
- 「with」の用法を適切に捉えられていない（同じような画像が出力）


|<INS>She watched the movie ***with*** the famous actor.</INS> She had been looking forward to seeing him on the big screen for a long time. （彼女は<INS>有名な俳優が出演する</INS>映画を観た。彼女は長い間、彼が大きなスクリーンに映るのを楽しみにしていた。）|<INS>She watched the movie ***with*** the famous actor.</INS> He was her friend and they decided to spend the evening together at the cinema.（彼女は<INS>有名な俳優と一緒に</INS>映画を観た。彼は彼女の友人で、映画館で一緒に夜を過ごすことにしたのです。）|
|---|---|
|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892617/0ef54277-dbad-32f5-e37f-6f2007667a89.png" width="300">|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892617/5e428f15-18ba-1015-36c1-49ec85eb53fc.png" width="300">|


# 検証３．照応表現 （文脈に依存する曖昧性）
以下検証しました。照応表現の曖昧性については、意味を適切に捉えた出力をしていない印象を受けました。この検証では、曖昧性を含む文章に文意を一意にする文章を追加し、意図通りの画像が出力されるかを確認しています。成功例はほとんど見つからず、失敗例の多くは、文章の追加によらず生成画像がほとんど同じでした。文章に今回の方法で生成した画像を添えてしまうと、むしろミスリードになってしまう恐れがありそうです。


## 成功例： itの指し示す対象
- 後半の文章を踏まえて「it」を適切に捉えている（数少ない成功例だが明確ではない）

|<INS>The director produced the film, and ***it*** received critical acclaim.</INS> The director's skillful storytelling and unique vision earned them widespread recognition and respect within the industry. (映画を制作した<INS>***監督は***、批評家から高い評価を得た。</INS>監督の巧みなストーリーテリングとユニークなビジョンにより、業界内で広く認知され、尊敬を集めた。)|<INS>The director produced the film, and ***it*** received critical acclaim.</INS> The captivating story, powerful performances, and striking visuals of the film captivated audiences and critics alike, making it a standout piece of cinema.（監督は映画を制作し、<INS>***その映画は***批評家の称賛を受けました。</INS> この映画の魅力的なストーリー、パワフルなパフォーマンス、印象的なビジュアルは、観客と批評家の両方を魅了し、映画の傑出した作品となっています。）|
|---|---|
|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892617/947d9c63-c34b-ef6e-af20-8960d2476ed6.png" width="300">|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892617/7ea15b38-7e3e-c55f-f52b-1bd3dedf168e.png" width="300">|


 
## 失敗例： itの指し示す対象
- 「it」の対象を適切に捉えられていない。

|<INS>The car collided with the tree, and ***it*** was severely damaged.</INS> The tree, however, remained largely unscathed. （<INS>車は木に衝突し、大破した。</INS> しかし、木はほとんど無傷のままだった。）|<INS>The car collided with the tree, and ***it*** was severely damaged.</INS> Surprisingly, the damage was inflicted upon the tree, not the car.（車は木に衝突し、<INS>木が大破した。</INS> 驚いたことに、被害は車ではなく木でした。）|
|---|---|
|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892617/45dcbf5a-b198-51ca-cab6-c02d5438b641.png" width="300">|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892617/09fbbcb6-8a30-5910-fb90-fedf259a5935.png" width="300">|


# アンケート評価： 実際「わかりやすく」なっているか
11人に対して以下のアンケートを行い、人間から見てメッセージが「わかりやすく」なっているかを確認しました（内訳は、語義曖昧性が4個、修飾語による意味の揺れが4個、照応表現の曖昧性が1個）。

<strong>アンケートイメージ</strong>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892617/5bdd92d3-2662-9d68-6ff1-b427be9d7528.png" width=52%> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892617/9c33e7f6-ce08-5cbb-9835-39f46ccd131b.png" width=45%>




## アンケート結果
語義曖昧性・修飾語による意味の揺れ・照応表現の曖昧性の全てにおいて、「文章だけ」の方が「文章と画像のペア」よりもわかりやすいという結果になりました(図１)。内訳をみると、「文章だけ」の方がわかりやすい派と「文章と画像のペア」の方がわかりやすい派が設問によらず二分された傾向も見られたので、文章に画像を添付することが有効と感じるのは状況以上に「人による」可能性があります。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892617/a9fbf3e9-f9f9-2a4a-f734-18a190da1b56.png" width="500">

<strong>図１：アンケート結果</strong>

# 考察
「文章と画像のペア」よりも、「文章だけ」の方がわかりやすかった理由について考察します。まず、考えられる要因として、文章がわかりやすかったことが挙げられます。今回のアンケートで提示した文章は1～2文ほどの文章しかなかったため、画像がなくても十分に読める（むしろ画像があるとノイズになる）可能性が考えられます。実際、アンケートでは文章の意味がわかるかどうかの設問をはじめに用意したのですが、ほとんどの方の回答が「意味がわかる」という結果になっていました。そのため今後の検証の方向性の1つとして、文章を長くすることや意味を難しくすることが考えられます。
　また、今回の方法では「曖昧さを生んでいる箇所」について重点的な説明を与える画像が生成されなかったことも挙げられます。その観点では、単語レベルでも曖昧性を解消しているとは言い切れないです。
　さらに、アンケートの設問内容にも改善の余地がありそうです。本件では「文章だけ」を見せたのち、「文章と画像のペア」を見せていました。そのため、順序効果については一切考慮できていません。今後の発展として、「文章だけ」と「文章と画像のペア」をランダムに提示する方法や「文章だけ」を見せる群と「文章と画像のペア」を見せる群の2通りを用意する方法が考えられます。
　最後に、失敗例が生じる原因については、「Stable Diffusionはキャプションを学習しているため、キャプションに見られないような複雑な文章はそもそもスコープ外となってしまうこと」が考えられます（原因を確定させるには詳細な検証が必要）。生成AIの制御可能範囲や発展可能性は今後も研究の余地が多くありそうです。


# まとめ
今回の検証を通して、stable diffusion ver1.4で文章にイメージ画像を生成させた場合、以下の結果となることが示唆されました。特別な工夫なくstable diffusion ver1.4で出力されるイメージ画像を添付しても、メッセージを「わかりやすく」させることは難しいと言えそうです。

- 単語レベルの曖昧性については、意味の判別を損なわない出力が多い
- 構文的な曖昧性については、意味に応じた出力も見られるが失敗例も散見される
- 文脈に依存する曖昧性については、ほとんど失敗してしまう

画像生成AIの「呪文」が単語中心になるのは、文の指示をうまく汲み取りきることができないという技術的背景がありそうです。また、人間が迷ってしまう複雑な文章に対して、わかりやすいイメージ画像を生成するには、他の仕組みを外付けしたり、より目的に応じた学習データによるモデル訓練を行ったりする必要がありそうです。今後も急速に発展することが予想される画像生成AIを評価する観点の1つとして参考にしていただければ幸いです。

改善点やご質問などあれば、コメントいただければ幸いです。



# その他やってみたこと
### １．「呪文」バリエーションについて
Stable Diffusionの「呪文」について、以下のバリエーションを設けましたが、
出力について有意な効果は見られませんでした。
* 文章をそのまま入力
* 名詞、形容詞など品詞に着目した入力
* 画像のキャプションを意識した入力（CLIPの学習ロジックを意識）

### ２．検証案について
今回検証しきれなかったものの、以下の案が検討に挙がりました。
* 常識をもとにした曖昧な文章（例：注文の際の「ぼくはうなぎ」）
* 曖昧な比喩
* 現実ではあり得ないものを対象とした文章（写真との差別化）
* 構文情報の付与
* 状況説明：人によって注目ポイントが異なるもの（絵本などが例になるか）
* 共参照解析
* 実世界接地（グラウンディング）


# 参考


1.  Labeling instructions matter in biomedical image analysis. An annotator-centric perspective. Tim Rädsch, Lena Maier-Hei, https://neurips.cc/virtual/2022/workshop/50008
2.  自然言語の意味的曖昧性の解消法, 奥村 学, https://www.jstage.jst.go.jp/article/jjsai/10/3/10_332/_pdf
3.  照応解析・表現　http://nlp.iit.tsukuba.ac.jp/topics/study/shouou/index.html
4.  “High-Resolution Image Synthesis with Latent Diffusion Models.” , Rombach, Robin et al., 2022 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) (2021): 10674-10685.
5.  AzureVMでお絵かきAI「Stable Diffusion」を構築する, 本田 匠, https://tech-blog.cloud-config.jp/2022-11-15-building-stable-diffusion-on-azure-vm

# 謝辞
本件は、@e-iさんと@shunsuke_onumaさんにモデル分析など検証の多くの部分についてご協力いただきました。

[^1]: 本件での検証内容は以下の2点を含み、後にそれぞれを確認します
  ・　生成AIが意図通りの出力をするか：出力を見比べて評価
  ・　実際に理解しやすいか：アンケート評価

[^2]: 出典では、アノテーション指示に画像を添付することによるエラー数の減少を報告

[^3]:生成AIの種類やバージョンが異なると、今回の検証結果と異なる挙動をする可能性が高いので、注意が必要です（同じモデルでも乱数によって出力は異なることも注意）