画像検索サービスに写真を一枚入れると、似た雰囲気の商品が並ぶ。逆に「白いスニーカー」と打つだけで、意味的に関連の強い画像がずらりと出てくる。写真と文字は、片方は色や形の集まり、もう片方は文の並びで、そもそも別物です。それなのに、なぜ同じ土俵で「近い・遠い」を測れるんでしょう。
以前、似ているとは距離ではなく向きの話だ、という記事を書きました(「似ている」は距離ではなく、向きの話でした)。あのときは、すでに同じ空間に置かれたベクトル同士の近さを測る話でした。今回はその一段手前、画像と言葉という別々の座標系から、対応する変化をどう取り出し、現代のモデルではどう距離比較できる表現へつなぐのか、という橋渡しの部分を見てみます。
別々の物差しは、そのままでは比べられない
画像には画像の特徴があります。明るさ、色の分布、輪郭の向き、そういったものを数値化した束です。言葉には言葉の特徴があります。どんな単語がどんな並びで出てくるか、という別の束です。二つは測っている対象が違うので、画像の3番目の数値と言葉の3番目の数値を並べても、意味のある比較にはなりません。物差しの目盛りが最初から揃っていないからです。
単語と絵の対応表を人手で全部作る、というやり方も現実的ではありません。組み合わせは無数にあり、新しい商品が出るたびに表を書き足すことになります。画像検索で必要なのは、画像と言葉を比較できる表現へ変換することです。現代のモデルでは、変換後の距離や類似度を比べられるように、その変換自体を学習します。この記事では、その発想を理解する手前のモデルとして、画像側と言葉側の得点がどう連動するかを見てみます。
一緒に動く方向を、対応ペアから学ぶ
手がかりになるのは、正しく対応している画像と言葉のペアです。ある靴の写真と、その靴を説明した文。この二つは中身がそろっているはずです。こうしたペアをたくさん集めて、画像側の特徴をある方向に沿ってまとめた合成得点と、言葉側の特徴を別の方向に沿ってまとめた合成得点が、ペアごとに一緒に動くように、両側の方向を選びます。
この「二つのデータ群から、互いに最もよく連動する方向をそれぞれ取り出す」考え方が、正準相関分析(CCA)です。画像側と言葉側の特徴をそれぞれ平均からのずれとして $x$、$y$ とし、画像側の合成得点を $u = a^\top x$、言葉側の合成得点を $v = b^\top y$ と置きます。対応ペアの上で $u$ と $v$ の相関
が最大になるように、重み $a$ と $b$ を決めます。$\Sigma_{xy}$ は、画像側の各特徴と言葉側の各特徴が、どの組み合わせで一緒に変わりやすいかを並べた表(二つのグループ間の共分散行列)です。$\Sigma_{xx}$ と $\Sigma_{yy}$ は、それぞれの群の中で各特徴がどれだけばらつくかに加えて、群の内側で特徴同士がどう連動するかまで含めたものです。全体で「それぞれの群の動きに対して、群をまたいでどれだけ足並みがそろうか」を測り、その割合が最大になる方向を選んでいます。これは、画像側と言葉側にそれぞれ作られる、対応する第1軸です。先行する正準変量と各群内で無相関となる制約のもとで同じ計算を繰り返すと、第2軸、第3軸も順に作れます。
対応する二つの軸で、得点の連動を見る
こうして選んだ方向で画像と言葉をそれぞれ写すと、対応するペアの得点は同じ方向に増減しやすくなります。正準相関分析が直接そろえているのは、二つの空間の距離ではなく、対応する得点どうしの相関です。下の図では、1点が1つの画像と文のペアを表し、横軸に画像側の第1正準変量u、縦軸に言葉側の第1正準変量vを置いています。点の右上がりの並びと破線の傾向線が、対応ペアの得点が一緒に増減することを示します。これは点間距離の最小化を表す図ではありません。

ここまでで正準相関分析が作ったのは、画像側と言葉側で対応する得点の組です。得点間の相関が高いことは、両者の座標値が一致することや、点間距離をそのまま検索に使えることを保証しません。距離にもとづく相互検索が直接成立するのは、次節で扱う現代のモデルのように、画像と文を同じ埋め込み空間へ写し、距離や類似度を比較できるよう学習・設計した場合です。実際の検索では、候補となる商品のテキストや画像をあらかじめ埋め込みへ変換してデータベースにため、入力の埋め込みと近い候補を探します。この仕組みがあれば、写真から商品名を返したり、言葉から関連する画像を返したりできます。
線形の見取り図から、学習する共有空間へ
実際の画像検索が、この計算そのものを回しているとは限りません。正準相関分析が見せてくれるのは、二つの異なるデータ群で対応して変化する、線形な方向の組です。一方、今どきの画像・言語モデルは、大量の画像と文のペアから、ニューラルネットワークが共有埋め込みを学びます。その代表がCLIPと呼ばれるモデルで、対応するペアを近づけ、対応しないペアを離す対照学習を使い、検索時の近さはコサイン類似度などで測ります。線形な得点の相関を最大化する正準相関分析とは、学習する変換も目的も異なります。ここで正準相関分析を持ち出したのは、現代モデルの正確な内部実装としてではなく、異なる二つの表現から対応する変化を取り出す発想を読むための、線形の見取り図としてでした。
それに、この方向は同じデータで相関が最大になる組を探して選んだものなので、たまたまの並びまで拾って高く見えることがあります。見つけた対応が別のデータでも再現するかを確かめて、はじめて安定した橋だと言えます。ここは、あとで自分でも疑える余地として覚えておくとよさそうです。
別々のものを、同じ土俵に載せるには
次に写真から商品を探したり、言葉で画像を引いたりするとき、その裏側では、画像と文を比較できる表現へ変換する仕組みが働いています。正準相関分析で見えたのは対応する得点の相関で、CLIPのようなモデルが学ぶのは距離や類似度で比較できる共有埋め込みです。全然違うものを同じ検索に載せるには、何を「似ている」として学ばせるか。その設計まで少し覗いてみたくなりませんか?


