ニュース
モデル
製品
keyboard_arrow_down
読者
URL を読み取ったり検索したりすると、大規模なモデルのサポートが向上します。
ベクトルモデル
世界クラスのマルチモーダル、多言語埋め込み。
並べ替え者
検索の関連性を最大化する世界クラスのニューラルレトリーバー。
ディープサーチ
最善の答えが見つかるまで、検索し、読み、推論してください。
もっと
keyboard_arrow_down
分類子
画像とテキストのゼロショットおよび少数ショットの分類。
スライサー
長いテキストをチャンクまたはトークンに分割します。

APIドキュメント
AIプログラミングアシスタントIDEまたは大規模モデル用のコードを自動生成
open_in_new


会社
keyboard_arrow_down
私たちについて
営業担当者に問い合わせる
インターンプログラム
参加しませんか
open_in_new
ロゴをダウンロード
open_in_new
利用規約


ログイン
login
なぜ並び替えられた文章のコサイン類似度は驚くほど近いのか?
テキストの長さと語順は埋め込みの類似性にどのように影響するのか?
より大きなモデルで問題は解決するか?
実世界における単語の順序と単語の選択
キュレーションされたデータセットによるテキスト埋め込みモデルの微調整
結論
技術記事
12月 17, 2024

テキスト埋め込みが語順を捉えられない問題とその解決方法

テキスト埋め込みモデルは、単語の順序、方向性のある関係、時間の順序、因果関係、比較、否定など、微妙な言語的ニュアンスを捉えることに苦労しています。これらの課題を理解することが、モデルのパフォーマンス向上への鍵となります。
Bo Wang
Alex C-G
Bo Wang, Alex C-G • 12 読む時間

LAION AI の創設者である Christoph Schuhmann が最近、テキスト埋め込みモデルについて興味深い観察を共有しました:

文章内の単語をランダムに並び替えた場合でも、その文章の埋め込みの間のコサイン類似度は、元の文章と比べて驚くほど高い値を維持します。

例えば、2つの文章を見てみましょう:Berlin is the capital of Germany と the Germany Berlin is capital ofです。2番目の文章は意味を成しませんが、テキスト埋め込みモデルはこれらを区別することができません。jina-embeddings-v3を使用すると、これらの2つの文章のコサイン類似度は0.9295となります。

埋め込みが敏感ではないのは語順だけではありません。文法的な変換は文章の意味を大きく変えることがありますが、埋め込み距離にはほとんど影響を与えません。例えば、She ate dinner before watching the movieとShe watched the movie before eating dinnerは、行動の順序が逆であるにもかかわらず、コサイン類似度は0.9833です。

否定も、特別なトレーニングなしでは一貫して埋め込むことが難しいことで知られています。This is a useful modelとThis is not a useful modelは埋め込み空間ではほぼ同じように見えます。「today」を「yesterday」に変更するなど、同じクラスの単語に置き換えたり、動詞の時制を変更したりしても、期待するほど埋め込みは変化しません。

これには重大な影響があります。2つの検索クエリを考えてみましょう:Flight from Berlin to AmsterdamとFlight from Amsterdam to Berlinです。これらは、jina-embeddings-v3で0.9884というコサイン類似度を示すほど、ほぼ同一の埋め込みを持っています。旅行検索や物流などの実世界のアプリケーションにとって、この欠点は致命的です。

この記事では、埋め込みモデルが直面する課題を検討し、語順と単語選択に関する持続的な問題を調査します。方向性、時間性、因果関係、比較、否定などの言語カテゴリーにおける主要な失敗モードを分析しながら、モデルのパフォーマンスを向上させる戦略を探ります。

tagなぜ並び替えられた文章のコサイン類似度は驚くほど近いのか?

最初、これはモデルが単語の意味を結合する方法に起因するのではないかと考えました - 各単語(上記の例文ではそれぞれ6-7単語)の埋め込みを作成し、平均プーリングでこれらの埋め込みを平均化します。これは、最終的な埋め込みには語順の情報がほとんど含まれないことを意味します。平均は値の順序に関係なく同じです。

しかし、CLS プーリング(文全体を理解するために特別な最初の単語を見て、語順により敏感であるはず)を使用するモデルでも同じ問題があります。例えば、bge-1.5-base-enでも、Berlin is the capital of Germanyとthe Germany Berlin is capital ofの文に対して0.9304のコサイン類似度を示します。

これは、埋め込みモデルのトレーニング方法の限界を示しています。言語モデルは事前学習中に文の構造を学習しますが、埋め込みモデルを作成する対照学習の過程でこの理解の一部を失うようです。

tagテキストの長さと語順は埋め込みの類似性にどのように影響するのか?

なぜモデルは語順の処理に苦労するのでしょうか?まず思い浮かぶのはテキストの長さ(トークン数)です。テキストがエンコーディング関数に送られると、モデルはまずトークン埋め込みのリスト(つまり、各トークン化された単語にその意味を表す専用のベクトルがある)を生成し、それらを平均化します。

テキストの長さと語順が埋め込みの類似性にどのように影響するかを確認するために、3、5、10、15、20、30トークンなど、さまざまな長さの180の合成文からなるデータセットを生成しました。また、各文のトークンをランダムに並び替えてバリエーションを作成しました:

bwang0911/word-orders-triplet-random-shuffle · Datasets at Hugging Face
We're on a journey to advance and democratize artificial intelligence through open source and open science.

以下にいくつかの例を示します:

長さ(トークン)元の文章並び替えた文章
3The cat sleepscat The sleeps
5He drives his car carefullydrives car his carefully He
15The talented musicians performed beautiful classical music at the grand concert hall yesterdayin talented now grand classical yesterday The performed musicians at hall concert the music
30The passionate group of educational experts collaboratively designed and implemented innovative teaching methodologies to improve learning outcomes in diverse classroom environments worldwidegroup teaching through implemented collaboratively outcomes of methodologies across worldwide diverse with passionate and in experts educational classroom for environments now by learning to at improve from innovative The designed

私たちのjina-embeddings-v3モデルとオープンソースモデルのbge-base-en-v1.5を使用してデータセットをエンコードし、元の文章と並び替えた文章の間のコサイン類似度を計算します:

長さ(トークン) コサイン類似度の平均 コサイン類似度の標準偏差
3 0.947 0.053
5 0.909 0.052
10 0.924 0.031
15 0.918 0.019
20 0.899 0.021
30 0.874 0.025

コサイン類似度の傾向をより明確に示すボックスプロットを生成できます:

図1:jina-embeddings-v3とbge-base-en-1.5(ファインチューニングなし)を使用した並び替え文の文長別類似度分布

見て分かるように、埋め込みの平均コサイン類似度には明確な線形関係があります。テキストが長くなるほど、元の文とランダムに並び替えた文の間の平均コサイン類似度スコアは低くなります。これは「単語の移動」、つまりランダムな並び替え後に単語が元の位置からどれだけ移動したかによると考えられます。短いテキストでは、トークンが移動できる「スロット」が少ないため、大きく移動できませんが、長いテキストでは潜在的な順列の数が多く、単語はより遠くまで移動することができます。

図2:単語数による文の組み合わせ
💡
組み合わせの数は単語数の階乗になるため、ここで表を終えます。30単語になると、265ノニリオン(2.652528598 E+32)もの組み合わせになります。

下図(コサイン類似度 vs 平均単語変位)に示すように、テキストが長くなるほど、単語の変位は大きくなります:

図3:シャッフルされた文データセットにおけるコサイン類似度と平均単語変位の関係を示すグラフ。平均単語変位とコサイン非類似度の相関を表しています。

トークン埋め込みは局所的なコンテキスト(最も近い単語)に依存します。短いテキストでは、単語を並べ替えてもそのコンテキストはあまり変化しません。しかし、長いテキストでは、単語が元のコンテキストから大きく離れる可能性があり、それによってトークン埋め込みが大きく変化する可能性があります。その結果、長いテキストの単語をシャッフルすると、短いテキストよりも埋め込みの距離が大きくなります。上図は、平均プーリングを使用する jina-embeddings-v3 と CLS プーリングを使用する bge-base-en-v1.5 の両方で、同じ関係が成り立つことを示しています:長いテキストをシャッフルして単語をより遠くに移動させると、類似度スコアが小さくなります。

tagより大きなモデルで問題は解決するか?

通常、このような問題に直面した場合、よくある対処法は単により大きなモデルを投入することです。しかし、より大きなテキスト埋め込みモデルが本当に単語の順序情報をより効果的に捉えることができるのでしょうか?テキスト埋め込みモデルのスケーリング則(私たちの jina-embeddings-v3 リリース記事で参照)によると、より大きなモデルは一般的により良いパフォーマンスを提供します:

図4:埋め込みモデルのスケーリング則。パラメータ数に応じたMTEBパフォーマンスのスケーリングを示しています。

しかし、より大きなモデルが単語の順序情報をより効果的に捉えることができるのでしょうか?私たちは BGE モデルの3つのバリエーション:bge-small-en-v1.5、bge-base-en-v1.5、bge-large-en-v1.5をテストしました。それぞれのパラメータサイズは3,300万、1億1,000万、3億3,500万です。

先ほどと同じ180文を使用しますが、長さの情報は無視します。3つのモデルバリエーションを使用して、元の文とそのランダムシャッフルの両方をエンコードし、平均コサイン類似度をプロットします:

図5:シャッフルされた文データセットを使用した、モデルサイズが単語順序の感度に与える影響。bge-small-en-v1.5、bge-base-en-v1.5、bge-large-en-v1.5を使用。

より大きなモデルの方が単語の順序の変化に対してより敏感であることが分かりますが、その差は小さいものです。はるかに大きな bge-large-en-v1.5 でさえ、シャッフルされた文とシャッフルされていない文を区別する能力はわずかに優れている程度です。埋め込みモデルが単語の並べ替えにどの程度敏感であるかを決定する要因には、特に訓練方法の違いなど、他の要因が関係しています。さらに、コサイン類似度はモデルの区別能力を測定するための非常に限られたツールです。しかし、モデルサイズは主要な考慮事項ではないことが分かります。単純にモデルを大きくするだけではこの問題を解決できません。

tag実世界における単語の順序と単語の選択

💡
この記事の大部分では、jina-embeddings-v2(最新モデルの jina-embeddings-v3 ではありません)を使用しています。これは v2 の方がはるかに小さく、ローカルGPUでの実験が速いためです。パラメータ数は v3 の5億8,000万に対して1億3,700万です。

序論で述べたように、単語の順序は埋め込みモデルにとって唯一の課題ではありません。より現実的な実世界の課題は単語の選択についてです。文の中で単語を入れ替える方法は多くあり、それらは埋め込みにうまく反映されません。「She flew from Paris to Tokyo」を「She drove from Tokyo to Paris」に変更しても、埋め込みは類似したままです。私たちはこれをいくつかのカテゴリーに分けて調査しました:

カテゴリー 例 - 左 例 - 右 コサイン類似度(jina)
方向性 She flew from Paris to Tokyo She drove from Tokyo to Paris 0.9439
時間的 She ate dinner before watching the movie She watched the movie before eating dinner 0.9833
因果関係 The rising temperature melted the snow The melting snow cooled the temperature 0.8998
比較 Coffee tastes better than tea Tea tastes better than coffee 0.9457
否定 He is standing by the table He is standing far from the table 0.9116
💡
これらは私たちの作業中に観察された一般的なケースであり、必ずしもカテゴリーの包括的な分類を表すものではありません。

上の表は、テキスト埋め込みモデルが微妙な単語の変更を捉えられない「失敗ケース」のリストを示しています。これは私たちの予想通りです: テキスト埋め込みモデルには推論する能力が欠けています。例えば、モデルは"from"と"to"の関係を理解できません。テキスト埋め込みモデルは意味的なマッチングを行いますが、その意味は通常トークンレベルで捉えられ、プーリング後に単一の密なベクトルに圧縮されます。一方、より大規模なデータセット(兆トークン規模)で訓練された LLM(自己回帰モデル)は、推論のための新たな能力を示し始めています。

これにより私たちは、クエリとポジティブを近づけ、クエリとネガティブを遠ざけるように、トリプレットを使用した対照学習で埋め込みモデルを微調整できるのではないかと考えました。

図 6:対照学習の効果:クエリとポジティブを近づけ、ネガティブを遠ざける

例えば、「Flight from Amsterdam to Berlin」は「Flight from Berlin to Amsterdam」のネガティブペアと考えられます。実際、jina-embeddings-v1 の技術レポート(Michael Guenther ら)では、この問題に小規模に取り組みました:大規模言語モデルで生成した 10,000 例の否定データセットで jina-embeddings-v1 モデルを微調整しました。

jinaai/negation-dataset · Datasets at Hugging Face
We're on a journey to advance and democratize artificial intelligence through open source and open science.

上記のレポートに記載された結果は有望でした:

全てのモデルサイズで、トリプレットデータ(否定訓練データセットを含む)による微調整が、特に HardNegation タスクにおいてパフォーマンスを劇的に向上させることが分かりました。
図 7:jina-embeddings の各サイズモデルにおける、ペアワイズ学習とトリプレット/ペアワイズ組み合わせ学習の EasyNegation および HardNegation スコアを示す表
図 8:jina-embeddings の異なるバージョン間における訓練戦略のパフォーマンス比較

tagキュレーションされたデータセットによるテキスト埋め込みモデルの微調整

前のセクションでは、テキスト埋め込みに関するいくつかの重要な観察を探りました:

  1. 短いテキストは単語の順序を捉えるのに失敗しやすい
  2. テキスト埋め込みモデルのサイズを大きくしても、単語の順序の理解は必ずしも改善されない
  3. 対照学習がこれらの問題に対する潜在的な解決策となりうる

これを踏まえて、否定と語順のデータセット(合計約 11,000 の訓練サンプル)で jina-embeddings-v2-base-en と bge-base-en-1.5 を微調整しました:

bwang0911/word-order-jina · Hugging Face
We're on a journey to advance and democratize artificial intelligence through open source and open science.
bwang0911/word-order-bge · Hugging Face
We're on a journey to advance and democratize artificial intelligence through open source and open science.

微調整の評価を助けるため、query、positive (pos)、negative (neg) からなる 1,000 のトリプレットのデータセットを生成しました:

bwang0911/word-orders-triplet · Datasets at Hugging Face
We're on a journey to advance and democratize artificial intelligence through open source and open science.

以下は例の行です:

Anchor The river flows from the mountains to the sea
Positive Water travels from mountain peaks to ocean
Negative The river flows from the sea to the mountains

これらのトリプレットは、単語の順序の変更による方向、時間、因果の意味の変化を含む、様々な失敗ケースをカバーするように設計されています。

これで、3 つの異なる評価セットでモデルを評価できます:

  1. 180 の合成文(この投稿の前半から)をランダムにシャッフルしたセット
  2. 手動でチェックした 5 つの例(上の方向/因果関係などの表から)
  3. 先ほど生成したトリプレットデータセットから選んだ 94 のキュレーションされたトリプレット

以下は、微調整前後でのシャッフルされた文の違いです:

文の長さ(トークン数) 平均コサイン類似度(jina) 平均コサイン類似度(jina-ft) 平均コサイン類似度(bge) 平均コサイン類似度(bge-ft)
3 0.970 0.927 0.929 0.899
5 0.958 0.910 0.940 0.916
10 0.953 0.890 0.934 0.910
15 0.930 0.830 0.912 0.875
20 0.916 0.815 0.901 0.879
30 0.927 0.819 0.877 0.852

結果は明確です:ファインチューニングのプロセスはわずか5分しかかかりませんでしたが、ランダムにシャッフルされた文のデータセットにおいて劇的なパフォーマンスの向上が見られました:

図9:シャッフルされた文の文長による類似度分布(jina-embeddings-v3およびbge-base-en-1.5(ファインチューニング済み)の比較)。

また、方向性、時間的、因果関係、比較のケースでも改善が見られました。モデルは平均コサイン類似度の低下に反映されるように、大幅なパフォーマンスの向上を示しています。最大のパフォーマンス向上は否定のケースで見られ、これはファインチューニングのデータセットに10,000の否定訓練例が含まれていたためです。

カテゴリー 例 - 左 例 - 右 平均コサイン類似度(jina) 平均コサイン類似度(jina-ft) 平均コサイン類似度(bge) 平均コサイン類似度(bge-ft)
方向性 She flew from Paris to Tokyo. She drove from Tokyo to Paris 0.9439 0.8650 0.9319 0.8674
時間的 She ate dinner before watching the movie She watched the movie before eating dinner 0.9833 0.9263 0.9683 0.9331
因果関係 The rising temperature melted the snow The melting snow cooled the temperature 0.8998 0.7937 0.8874 0.8371
比較 Coffee tastes better than tea Tea tastes better than coffee 0.9457 0.8759 0.9723 0.9030
否定 He is standing by the table He is standing far from the table 0.9116 0.4478 0.8329 0.4329

tag結論

この記事では、テキスト埋め込みモデルが直面する課題、特に語順を効果的に処理することの困難さについて詳しく説明しました。具体的には、5つの主要な失敗タイプを特定しました:方向性、時間的、因果関係、比較、そして否定です。これらは語順が本当に重要なクエリのタイプであり、もしあなたのユースケースにこれらが含まれている場合、これらのモデルの限界を知っておく価値があります。

また、否定に焦点を当てたデータセットを5つの失敗カテゴリーすべてをカバーするように拡張する簡単な実験も行いました。結果は有望でした:慎重に選択された「ハードネガティブ」でファインチューニングを行うことで、モデルはどのアイテムが関連しているか、していないかをより適切に認識できるようになりました。とはいえ、まだやるべきことは残っています。今後のステップには、データセットのサイズと品質がパフォーマンスにどのように影響するかをより深く調査することが含まれます。

カテゴリー:
技術記事
rss_feed
オフィス
location_on
カリフォルニア州サニーベール
710 Lakeway Dr、Ste 200、サニーベール、CA 94085、アメリカ合衆国
location_on
ドイツ、ベルリン(本社)
Prinzessinnenstraße 19-20、10969 ベルリン、ドイツ
location_on
中国、北京
中国北京市海淀区西街48号ビル6号5階
location_on
深セン、中国
ルーム 402、4 階、福安テクノロジービル、深セン、中国
検索ベース
読者
ベクトルモデル
並べ替え者
ディープサーチ
分類子
スライサー
APIドキュメント
Jina APIキーを取得する
レート制限
APIステータス
会社
私たちについて
営業担当者に問い合わせる
ニュース
インターンプログラム
参加しませんか
open_in_new
ロゴをダウンロード
open_in_new
条項
安全性
利用規約
プライバシー
Cookieを管理する
email
Jina AI © 2020-2025.