# テキスト埋め込み ## 定義 テキスト埋め込み(text embedding)は、テキスト文字列を実数値の密ベクトルに変換する手法であり、意味的に類似したテキストが埋め込み空間でも近くなるよう学習される。BERT のようなエンコーダー型モデルは文全体を単一のベクトルに圧縮し、コサイン類似度で意味的近接性を測ることができる。文書検索、クラスタリング、分類など多様なタスクに応用される。(Source: [[joisino-否定文理解-2024]]) ## 構造的な制約と否定 テキスト埋め込みには構造上、否定文を正しく表現できないという根本的な制約がある。意味的に近い語(「東京」「京都」など)は埋め込み空間でも近接して配置されるため、「〇〇ではない」という否定に対し、〇〇だけに遠く他のすべての語に近いような単一ベクトルを求めることが幾何学的に不可能となる。その結果、肯定文と否定文が極めて高いコサイン類似度を示すケースが生じる。(Source: [[joisino-否定文理解-2024]]) 具体的な観測値(日本語 BERT: tohoku-nlp/bert-base-japanese-v3): - 「私はお寿司が好きです」 ↔ 「私の好きな食べ物はお寿司です」: 0.9695(同意) - 「私はお寿司が好きです」 ↔ 「私はお寿司が好きではないです」: 0.9762(正反対なのに高い) ## テキスト拡張による回避 LLM でテキストを数百文字に拡張すると、否定的な内容の文書は異なる肯定的な内容に展開され、同意・反意の区別が明確になる。拡張後の計測値: - A'(好き) ↔ B'(好き): 0.9494 - A'(好き) ↔ C'(嫌い): 0.9316 拡張後は単純な bag-of-words ベクトルでも同様の識別が可能になるほど効果が大きい。 ## 横断的知見 - 本ページは現時点で単一ソース([[joisino-否定文理解-2024]])のみに基づく。横断的比較は今後の ingest で追加する。 ## 未解決の問い - 出力層の単語埋め込みをコンテキスト依存にした場合、否定文の埋め込み表現は改善されるか? - 対照学習(contrastive learning)ベースの埋め込みモデルは否定文の区別に効果があるか? - 何文字以上のテキスト拡張があれば bag-of-words でも十分な識別精度が得られるか? ## 関連 - [[否定文理解]] — テキスト埋め込みの構造的制約が直接影響する問題 - [[LLM向け情報検索]] — 埋め込みが中核的な役割を果たす応用 - [[文脈付き検索]] — 埋め込みの限界を補う拡張手法 ## 出典 - [[joisino-否定文理解-2024]]