618ZXW

埋め込み(ベクトル表現)の総合ガイド!

オリジナル記事:Du Xiaodong (Datawhale)

Datawhaleのヒント

著者: Du Xiaodong、Datawhaleメンバー

大規模モデルの時代では、埋め込み(ベクトル表現)の重要性がますます顕著になってきました。

これは、RAG システムとクロスモーダル タスクの両方で重要な役割を果たします。

この記事では、テキストベクターの歴史と発展について説明し、ベクターをより深く理解して使用できるようにします。

1. テキスト表現モデルの紹介

テキストは非構造化データの中でも非常に重要な種類であり、テキストデータをどのように表現するかは機械学習分野において常に重要な研究方向となっています。テキストベクトルは、ディープラーニングの時代に登場したテキスト表現手法です。

1.1 ワンホットエンコーディング

最も単純なテキスト表現モデルはワンホットエンコーディングです。これは語彙内の各単語を高次元スパースベクトルに変換します。ベクトル内の 1 つの位置のみが 1 で、残りは 0 です。N 個の一意の単語を含む語彙 (レキシコン) V があるとします。各単語は、長さ N のバイナリ ベクトルとして表すことができます。このベクトルでは、語彙内の単語の位置に対応する 1 つの位置のみが 1 であり、残りは 0 です。たとえば、語彙が ["I", "love", "machine", "learning"] であるとします。この場合、「I」の one-hot 表現は [1, 0, 0, 0]、「love」の one-hot 表現は [0, 1, 0, 0]、「machine」の one-hot 表現は [0, 0, 1, 0]、「learning」の one-hot 表現は [0, 0, 0, 1] です。

この表現方法の欠点:

  1. 高次元スパース性: 大規模な語彙の場合、ワンホット ベクトルは非常に高い次元を持ち、スパースであるため、計算効率とストレージ効率が低下します。
  2. 単語間の関係をとらえることができません: ユニークヒートとは、単語間の意味的な関係をとらえることができないことを意味します。すべての単語は独立しており、等距離にあるとみなされます。

1.2 Bag-of-WordsモデルとN-gramモデル

Bag-of-Words (BoW) モデルでは、各文書は固定長のベクトルとして表現されます。ベクトル内の各位置は語彙内の単語に対応し、ベクトルの値は文書内でのその単語の出現回数(または、Term Frequency-Inverse Document Frequency (TF-IDF) などの他の統計値)です。文書1:「私は機械学習が大好きです。」と文書2:「私は機械学習が大好きです。機械学習は素晴らしいです。」という2つの文書があるとします。

  • 語彙を構築する: ["私", "大好き", "機械", "学習", "は", "素晴らしい"]
  • 文書1のbag-of-wordsベクトルは[1, 1, 1, 1, 0, 0]である。
  • 文書2のbag-of-wordsベクトルは[1, 1, 2, 2, 1, 1]である。

Bag-of-Wordsモデルは語順と文脈情報を考慮しません。一方、N-gramモデルは、テキスト内のn個の連続する単語の列を考慮することで、語順と局所的な文脈情報を捉えます。N-gramは、ユニグラム(1グラム)、バイグラム(2グラム)、トライグラム(3グラム)などです。例えば、「私は機械学習が大好きです。」という文書を考えてみましょう。

  • バイグラム(2グラム)を生成: ["I love", "love machine", "machine learning"]
  • 語彙リストを作成する: ["大好き", "機械大好き", "機械学習"]
  • 文書のバイグラムベクトル: [1, 1, 1]

1.3 トピックモデル

Bag-of-WordsモデルとN-gramモデルに基づくテキスト表現モデルには、重大な欠点があります。それは、同じトピックを共有する2つの異なる単語またはフレーズを識別できないことです。そのため、同じトピックを持つ単語またはフレーズを同じ次元にマッピングする技術が必要となり、これがトピックモデルにつながります。トピックモデル(pLSAモデルとLDAモデルに代表される)は、主に以下の2つの問題に対処する特殊なタイプの確率的グラフィカルモデルです。

  • テキスト データベースは、代表的なトピックを識別します (トピックの数は、手動で定義する必要があるハイパーパラメータです) -> トピックと単語の対応関係を表す単語分布。
  • 各記事がどのトピックに対応しているか -> トピック分布。ドキュメントとトピックの対応関係を示します。

トピックモデルの利点:

  • グローバルトピックモデリングは、長距離の単語の依存情報を検出できます。
  • 文書をトピックの確率分布として表現することで(通常は低次元(トピックの数に等しい))、データのスパース性を効果的に低減できます。ベイズ学派と頻度論派の間での「正統性」に関する議論(https://www.zhihu.com/questio...)。

1.4 単語ベクトル

単語埋め込みは、各単語を低次元空間にマッピングする密ベクトルです。この低次元空間の各次元は、トピックモデルにおけるトピックとして捉えることもできますが、トピックモデルほど直感的ではなく(解釈可能性にも欠けます)、単語埋め込みは学習時に現在の単語の文脈情報を考慮に入れます。Word2Vecを例に挙げると、これは実際には浅いニューラルネットワークモデル(入力層、マッピング層、出力層)であり、下図に示すように、CBOWとSkip-gramという2つのネットワーク構造を持っています。

CBOWとSkip-gramはどちらも、文脈単語の出現確率を最大化することでモデルを最適化します。その他の一般的な単語埋め込み手法としては、GloVe(Global Vectors for Word Representation)やFastTextなどがあります。

単語埋め込みの幾何学的性質:単語埋め込みのベクトル空間は幾何学的性質を持つため、ベクトル間の距離と角度を用いて類似度を測定できます。一般的に用いられる類似度測定法には以下のものがあります。

  • コサイン類似度: 2 つのベクトル間の角度を測定します。類似度が高いほど、角度は小さくなります。
  • ユークリッド距離:2つのベクトル間の直線距離を測定します。距離が小さいほど、単語の類似性が高くなります。

単語ベクトルの問題:

  1. 文脈非依存:単語ベクトルは静的ベクトルであり、同じ単語が異なる文脈で同じベクトル表現を持つことを意味します。そのため、単語ベクトルは「多義性」の問題を解決できません。
  2. OOV問題:語彙外問題。トレーニング中に単語埋め込みモデルは固定の語彙を構築し、その語彙に含まれない単語はすべてOOVとみなされます。
  3. 文法および意味情報の取得が不十分:単語埋め込みモデルは主に単語の共起情報をキャプチャしますが、単語間の複雑な文法および意味の関係を完全に取得できない可能性があります。

1.5 文ベクトル

文埋め込みは、文全体を固定長のベクトル表現に変換する手法です。文ベクトルを取得する最も簡単な方法は、平均単語ベクトル法に基づいています。つまり、文中の各単語を単語ベクトルに変換し、それらの単語ベクトルを平均化して文ベクトルを取得します。

1.5.1 単語ベクトル + SIF または USIF

上述の方法は、単語ベクトルを平均化して文ベクトルを求めるものですが、すべての単語の重みが同じであるため、文中の単語間の重要度の違いが考慮されないという欠点があります。実際には、TF-IDFを用いて単語の重み付けを試みた例もありますが、改善効果は限定的です。2016年に提案されたSIF重み付けアルゴリズムは、ランダムウォークを用いて文生成確率を推定します。2018年にACLで発表されたUSIF(教師なしランダムウォーク文埋め込み)アルゴリズム(https://aclanthology.org/W18-...)は、SIF重み付けアルゴリズムを改良したものです。興味のある方は、こちらの記事(https://zhuanlan.zhihu.com/p/...)をご覧ください。

1.5.2 ドキュメント2ベク

Doc2vecはWord2Vecモデルの拡張版です。違いは、入力層に新しい文ベクトルである段落ベクトルが追加されていることです。段落ベクトルは、別の単語ベクトルと見なすことができます。Doc2vecの各トレーニング反復では、文の一部をスライスしてトレーニングを行います。段落ベクトルは、同じ文の複数のトレーニング反復間で共有されます。このプロセスにより、トレーニングされた段落ベクトルは、各文内で複数のトレーニング反復を通じて徐々に安定し、最終的に文の主題を形成します。

Word2Vec と同様に、次の 2 つのトレーニング方法も含まれています。

  1. PV-DM(段落ベクトルの分散メモリモデル)モデル
  • 文書 D とウィンドウサイズwが与えられた場合、ターゲット単語w_tとそのコンテキスト単語w_{t-1}、...、w_{t+w} を選択します。
  • 文書 D のベクトルとコンテキスト ワードのベクトルをモデルに入力し、それらを加算して平均または合計を計算し、新しいベクトルXを形成します。このベクトルに基づいて、ターゲット ワードw_t を予測します。

  1. PV-DBOW(段落ベクトルの分散バッグオブワード)モデル
  • 文書Dが与えられた場合、ランダムにターゲット単語w_tを選択する。
  • 文書 D のベクトルを使用してターゲット単語w_tを予測します。

Doc2vecの推論最適化:新しい文ベクトルを予測(推論)する際、まず段落ベクトルをランダムに初期化し、モデルに入力した後、確率的勾配降下法を用いて反復計算を行い、最終的な安定した文ベクトルを得ます。学習時と比較すると、投影層から出力層への単語ベクトルとソフトウェイトは固定され、勾配降下法を用いて得られた段落ベクトルのみが残ります。そのため、新しい文を予測するにはモデル内で反復計算が必要になりますが、学習時よりもはるかに高速になります

2. BERTに基づくテキストベクトル

2.1 バートベクトルの異方性

BERT モデルにテキストを入力した後、テキストのベクトル表現は通常、最後の隠し層の [CLS] マーカーに対応するベクトルを使用するか、最後の隠し層で MeanPooling を実行することによって取得されます。

なぜ BERT ベクトル表現は類似度計算に直接使用できないのでしょうか。その主な理由は異方性です。異方性とは物理学および材料科学の概念で、もともとは材料またはシステムが方向によって異なる物理的特性を示す現象を指します。食通の私たちは、これは確かによく知っています。木目に沿って切った肉は、木目を横切って切った肉よりも噛み応えがあります。同様に、木目に沿って切った木材と木目を横切って切った木材の圧縮強度と引張強度は異なり、グラファイト単結晶の電気伝導率は方向によって大きく異なります。ベクトル空間では、異方性とは分布が方向に関連していることを意味し、等方性とは 2 次元空間などですべての方向が同じであることを意味します。異方性と等方性の比較は次のとおりです (左の画像: 異方性、右の画像: 等方性)。

BERTの異方性とは、単語埋め込みがベクトル空間で狭い円錐を占めるという事実を指します。簡単に言うと、単語ベクトルはベクトル空間で狭い円錐を形成します。空間におけるBERT単語ベクトルの分布は円錐形です。研究者らは、高頻度単語は原点(すべての単語の平均)に近いのに対し、低頻度単語は原点から遠いことを発見しました。これは、高頻度単語と低頻度単語が意味的に同等であっても、単語頻度の差によって大きな差が生じる可能性があり、単語ベクトル間の距離が単語間の意味的関連性を不正確に表現する可能性があることを意味します。さらに、高頻度単語の分布がコンパクトで、低頻度単語の分布がスパースであるという問題があります。スパースな分布は、意味的間隔の定義が曖昧になり、低頻度単語ベクトルのトレーニングが不十分になるため、ベクトルの類似性を計算するときに問題が発生します。

BERTだけでなく、Transformerアーキテクチャの事前トレーニング済みモデルのほとんどは、同様の問題を持つ単語ベクトル空間(GPT-2を含む)を学習します(興味のある方は、「Gao et al. 2019」https://arxiv.org/abs/1907.12009、「Wang et al. 2020」https://openreview.net/pdf?id...、「Ethayarajh, 2019」https://arxiv.org/abs/1909.00512を参照してください)。

異方性の欠点:優れたベクトル表現は、整列性均一性の両方を満たす必要があります。前者は、類似するベクトルが近い距離にあることを意味し、後者は、ベクトルが空間的に可能な限り均一、理想的には等方性であることを意味します。異方性には問題があります。学習されたベクトルは最終的に密集し、それらの間のコサイン類似度が高くなり、これは適切な表現とは言えません。

異種問題に対する最適化手法:

  1. 教師あり学習の最適化では、ラベル付きコーパスを用いてデュアルタワーまたはシングルタワーのBERTレイヤーを構築し、モデルを微調整します。これにより、下流のタスクに近いBERTレイヤーのベクトルが文のような埋め込みに近づき、ベクトル空間が平滑化されます。SBERT教師あり学習の最適化の代表的な例です。
  2. 教師なし学習の最適化:
  3. 異方性の問題は、BERTのベクトル空間に線形変換を施すことで軽減されます。代表的な教師なし学習最適化手法としては、BERT-flowBERT-whiteningが挙げられます。
  4. 対照学習の考え方に基づき、テキスト自体を拡張(翻訳、削除、挿入、並べ替え、Dropoutなど)します。拡張された文を正例とし、拡張された文を負例とします。正例ペア間のベクトル距離を狭め、負例ペアとのベクトル距離を広げることで、モデルを最適化します。これは自己教師あり学習最適化とも呼ばれ、 SimCSEはその代表例です。

2.2 教師あり学習最適化 - センテンスBERT(SBERT)

BERT ベクトル モデル (SBERT モデル) と BERT インタラクティブ セマンティック モデル (BERT バイナリ分類モデル) の違い:

SBERT モデルは、事前トレーニング済みの BERT 構造を変更し、自然言語推論や意味テキストの類似性などの教師ありタスクで微調整することにより、BERT ベクトルを使用して類似性を直接計算するパフォーマンスを最適化します。

SBERT モデルは、シャム ネットワークトリプレットネットワークで構成され、異なるネットワーク構造に対して 3 つの異なる目的関数が設定されています。

  1. 分類目的関数:分類問題のためのSiameseネットワークの学習。左上の図において、 uvは2つの入力文のベクトル表現を表し、*|uv|*は2つのベクトルの要素ごとの絶対値を表します。このモデルは、学習中にクロスエントロピー損失関数を用いて損失を計算します。

  1. 回帰目的関数:回帰問題のためのSiameseネットワーク学習。右上の図は、ベクトルuとv間のコサイン類似度を直接計算する様子を示しています。学習中の損失計算には平均二乗誤差(MSE)が使用されます。3.トリプレット目的関数:モデルが3つの文を入力として受け取るトリプレットネットワーク学習。アンカー文𝑎 、肯定文𝑝 、否定文𝑛が与えられた場合、モデルは𝑎𝑝間の距離が𝑎𝑛間の距離よりも小さくなるように最適化します。

ここで、 𝜖はマージンを表します。論文では、距離指標はユークリッド距離であり、マージンサイズは1です。

同時期に行われた文ベクトルに関する研究、「USE (Universal Sentence Encoder)」(https://arxiv.org/abs/1803.11175) や「InferSent」(https://arxiv.org/abs/1705.02364) などは、いずれも「ダブルタワー」構造を採用しているという共通の特徴を持っています。

自然言語推論タスクについてはどうでしょうか?自然言語推論(NLI)は、自然言語処理(NLP)における重要なタスクであり、与えられた2つの文間の論理的な関係を決定することを目的としています。具体的には、NLIタスクでは通常、3つの主要な論理的関係が考慮されます。

  1. 含意: 前提は仮説を暗示します。つまり、前提が真であれば仮説も真です。
  2. 矛盾: 前提が仮定と矛盾します。つまり、前提が真であれば、仮定は偽になります。
  3. 中立: 前提と仮定は暗示されておらず、矛盾もありません。つまり、前提が真であれば、仮定は真の場合もあれば偽の場合もあります。

NLI 注釈付きデータセット (SNLI、MNLI など) を使用してトレーニングされたセマンティック ベクトル モデルは、優れたセマンティック スケーラビリティと堅牢性を示し、ゼロ ショットまたは少数ショットの処理に適しています。

2.3 教師なし学習による最適化

2.3.1 バートフロー

BERTベクトル空間は非一様であるため、このベクトルを標準的なガウス分布などの一様空間にマッピングする方法を見つける必要があります。「BERT-flow」(https://arxiv.org/abs/2011.05864)は、BERT表現を標準的なガウス分布に可逆的にマッピングするストリーミング生成モデルに基づいています。具体的には、フローモデルがBERTに追加されます。フローモデルの学習は教師なし学習であり、BERTのパラメータは学習に関与せず、フローモデルのパラメータのみが最適化されます。学習の目的は、事前に計算されたBERT文ベクトルの尤度関数を最大化することです。簡単に言えば、学習プロセスは可逆マッピングλを学習します。これは、ガウス分布の変数λをBERTでエンコードされたλにマッピングします。そして、λ⁻¹はλを一様ガウス分布にマッピングします。ガウス分布から BERT 表現を生成する確率を最大化することで、このマッピングを学習します。

ストリーミング生成モデルの原理に興味がある人は、自分で調べてみてください。

  1. ICLR 2015 NICE-非線形独立成分推定
  2. ICLR 2017 実NVPを用いた密度推定
  3. NIPS 2018 Glow: 可逆1×1畳み込みによる生成フロー

2.3.2 バートホワイトニング

「Bert-whitening」(https://spaces.ac.cn/archives...)の著者は蘇申(@苏剑林、https://www.zhihu.com/people/...)です。彼はまず、コサイン類似度の仮定を分析しました。コサイン類似度は2つのベクトルの内積をそれぞれの大きさで割ることで計算されますが、この式は正規直交基底のもとでのみ成立します。さらに、仮定分析を通して、彼は「等方性」を満たす空間は正規直交基底に由来すると考えられると結論付けました。彼は、Bert-flowは効果的であるものの、flowモデルの学習が煩雑すぎると考え、より簡便な空間変換方法があると考えました。標準正規分布の平均は0で、共分散行列は単位行列です。このアプローチは、Bertベクトルの平均を0に、共分散行列を単位行列に変換するというものであり、これは従来のデータマイニングにおける**whitening**操作に相当します。

2.3.3 シムCSE

対照学習は、意味的に近い近傍をグループ化し、非近傍を押しのけることで、効果的な表現を学習することを目的としています (Hadsell et al.、2006、https://ieeexplore.ieee.org/d...)。 SBert モデル自体は対照学習の現れですが、教師ありトレーニングが必要であり、ラベル付きデータに依存するため、大規模コーパスでのトレーニングには適していません。テキスト準備に基づいて SBert モデルトレーニング用のデータを自動的に生成する方法が見つかれば、データラベル付けの依存性の問題を解決できます。対照学習に基づく教師なし学習方法では、テキスト自体に従来のテキスト拡張 (翻訳、削除、挿入、並べ替えなど) を実行し、拡張テキストを正のサンプルとして使用し (拡張前後の意味的な類似性を想定)、同時に同じバッチ内の他の文の拡張結果を負のサンプルとして使用します。これにより、SBert(または類似モデル)のトレーニングに使用できる準備が生成されます。SimCSE …(https://arxiv.org/abs/2104.08821)、事前トレーニング済みモデルに「拡張手法」として組み込まれたドロップアウトマスクを使用して取得された文埋め込みは、従来のテキスト拡張手法よりも大幅に優れた品質であることを発見しました。

  1. モデルにドロップアウトマスクを適用すると、各サンプルは2回の順方向伝播を経て、2つの異なる埋め込みベクトルが生成されます。同じサンプルのベクトルペアは正のサンプルペアとみなされます。各ベクトルについて、同じバッチ内のサンプルによって生成されたすべての埋め込みベクトルが負のサンプルとして選択されます。このプロセスを用いてモデルを学習します。学習損失関数は以下のとおりです。

  1. SimCSEは、NLIラベル付きデータセットを用いた教師あり学習の訓練パラダイムも提供します。各例とそれに対応する含意は正のサンプルペアとして扱われ、同じバッチ内の他の例の含意は負のサンプルとして扱われます。各負のサンプルに対応する含意は、訓練のためのハードネガティブとして使用されます。訓練損失関数は以下のとおりです。

3. 大型モデルの時代の展望

LLMモデル時代の到来に伴い、LLM時代におけるベクトルモデルの学習パラダイムはどうなるのでしょうか?オートエンコーダか、それとも対照学習か?私たちはこの問題を引き続き追っていきます。

参考文献:

1. https://zhuanlan.zhihu.com/p/...

2.https://www.yeahchen.cn/2022/...

3.https://www.zhihu.com/questio...

4.https://blog.csdn.net/qq\_48314528/article/details/122760494

いいね (3件のいいね!)↓