Word2vec は、自然言語処理において単語のベクトル表現を取得する技術です。これらのベクトルは、周囲の単語に基づいて単語の意味に関する情報を捉えます。Word2vec アルゴリズムは、大規模なコーパス内のテキストをモデル化することでこれらの表現を推定します。一度学習すると、このようなモデルは同義語を検出したり、部分的な文に追加の単語を提案したりできます。Word2vec は、Google のTomáš Mikolov、Kai Chen、Greg Corrado、Ilya Sutskever、Jeff Deanによって開発され、2013 年に公開されました。[ 1 ] [ 2 ]
Word2vecは、単語を単語間の関係性を捉える高次元の数値ベクトルとして表現します。特に、類似した文脈で出現する単語は、コサイン類似度によって測定される近接したベクトルにマッピングされます。これは単語間の意味的類似性のレベルを示しており、例えば、「walk」と「 ran」のベクトルは近接しており、「but」と「however」、「Berlin」と「Germany」のベクトルも同様です。
Word2vecは、単語埋め込みを生成するために使用される関連モデル群です。これらのモデルは、単語の言語的文脈を再構築するように訓練された、浅い2層ニューラルネットワークです。Word2vecは、大規模なテキストコーパスを入力として受け取り、単語セットをベクトル空間(通常は数百次元)にマッピングします。コーパス内の各固有単語には、その空間内のベクトルが割り当てられます。
Word2vecは、単語の分散表現を生成するために、連続単語バッグ(CBOW)または連続スライディングスキップグラムという2つのモデルアーキテクチャのいずれかを使用できます。どちらのアーキテクチャでも、Word2vecはコーパスを反復処理する際に、個々の単語とスライディングコンテキストウィンドウの両方を考慮します。
CBOWは「空欄補充」タスクと見なすことができ、単語埋め込みは、その単語がコンテキストウィンドウ内の他の単語の相対的な確率にどのように影響するかを表します。意味的に類似した単語は、同様の文脈で使用されるはずなので、これらの確率に同様の影響を与えるはずです。コンテキスト単語の順序は予測に影響を与えません(単語の袋仮説)。
連続スキップグラムアーキテクチャでは、モデルは現在の単語を使用して、周囲のコンテキスト単語のウィンドウを予測します。[ 1 ] [ 2 ]スキップグラムアーキテクチャは、より遠いコンテキスト単語よりも、近くのコンテキスト単語に重きを置きます。著者の注記によると、[ 3 ] CBOW は高速ですが、スキップグラムはまれな単語に対してより優れた働きをします。
モデルのトレーニング後、学習された単語埋め込みはベクトル空間に配置され、コーパス内で共通の文脈を共有する単語、つまり意味的にも構文的にも類似している単語は、空間内で互いに近くに配置されます。[ 1 ]類似性の低い単語は、空間内で互いに遠くに配置されます。[ 1 ]
このセクションは解説に基づいています。[ 4 ] [ 5 ]
コーパスとは単語の並びのことです。CBOWとスキップグラムはどちらも、コーパスに現れる単語ごとに1つのベクトルを学習する手法です。
させて(「語彙」)は、コーパスに現れるすべての単語の集合とする。私たちの目標は、1つのベクトルを学習することです。各単語について。
スキップグラムの考え方は、単語のベクトルがその近傍の単語のベクトルに近くなるべきだというものです。CBOWの考え方は、単語の近傍の単語のベクトル和がその単語のベクトルに近くなるべきだというものです。


CBOWの考え方は、各単語をベクトルで表現し、その近傍のベクトルの合計を用いて単語を予測できるようにすることです。具体的には、各単語についてコーパスでは、単語のワンホットエンコーディングがニューラルネットワークへの入力として使用されます。ニューラルネットワークの出力は辞書上の確率分布であり、近傍の個々の単語の予測を表します。トレーニングの目的は、どこは、近くにある単語の相対的な位置を表す (ゼロ以外の) インデックスのセットです。の近所。
例えば、コーパス内の各単語が、4単語の短い範囲にある他のすべての単語によって予測されるようにしたい場合、隣接単語の相対インデックスのセットは次のようになります。目的は最大化することです。
標準的な単語袋モデルでは、単語の文脈は、その単語の近傍にある単語の出現回数(単語ヒストグラムとも呼ばれる)によって表されます。例えば、「the cat sat on the mat」の「sat」は、{"the": 2, "cat": 1, "on": 1} と表されます。最後の単語「mat」は近傍の単語の範囲外にあるため、「sat」を表すために使用されないことに注意してください。。
連続バッグオブワードでは、ヒストグラムは行列で乗算されます。単語の文脈を連続的に表現するため。行列辞書とも呼ばれます。列は単語ベクトルです。列、は辞書のサイズです。各単語ベクトルの長さをとする。。
例えば、単語ヒストグラム{"the": 2, "cat": 1, "on": 1}に我々は得る。
これは次に別の行列と乗算されます形状各行は単語ベクトルですこれにより、長さのベクトルが生成されます。辞書エントリごとに1つのエントリを作成します。次に、ソフトマックス関数を適用して、辞書全体の確率分布を取得します。
このシステムは、図に示すように、オートエンコーダーに似たニューラルネットワークとして視覚化でき、そのアーキテクチャは線形-線形-ソフトマックスです。システムは、交差エントロピー損失を最小化するように勾配降下法によって学習されます。
完全な式で表すと、交差エントロピー損失は次のようになります。外側の総和コーパス内の単語の数、は、単語の近傍のベクトルの合計などです。
このようなシステムがトレーニングされると、2 つのトレーニング済み行列が得られます。列ベクトルはまたは行ベクトル辞書として機能します。たとえば、「sat」という単語は、「sat」番目の列として表現できます。または「sat」行目また、単純に定義することも可能です。そうなれば、もはや選択肢はなくなるだろう。

スキップグラムの考え方は、各単語をベクトルで表現することで、ある単語のベクトルを使ってその単語の近傍にある単語のベクトルを予測できるようにすることです。
アーキテクチャは依然として線形-線形-ソフトマックスであり、CBOWと同じですが、入力と出力が入れ替わっています。具体的には、各単語についてコーパスでは、単語のワンホットエンコーディングがニューラルネットワークへの入力として使用されます。ニューラルネットワークの出力は辞書上の確率分布であり、近傍の個々の単語の予測を表します。トレーニングの目的は、。
完全な式で表すと、損失関数は次のようになります。CBOWと同様に、このようなシステムがトレーニングされると、2つのトレーニング済み行列が得られます。列ベクトルはまたは行ベクトル辞書として使用できます。また、単純に定義することも可能です。そうなれば、もはや選択肢はなくなるだろう。
基本的に、スキップグラムとCBOWはアーキテクチャが全く同じです。両者の違いは、学習時の目的関数のみです。
1980年代には、単語や概念をベクトルとして表現するためにニューラルネットワークを使用する初期の試みがいくつかありました。[ 6 ] [ 7 ] [ 8 ]
2010年、トマーシュ・ミコロフ(当時ブルノ工科大学)は共著者らとともに、単一の隠れ層を持つ単純なリカレントニューラルネットワークを言語モデリングに適用した。 [ 9 ]
Word2vec は、 Googleの Mikolov 氏率いる研究チームによって2 つの論文で作成、特許取得され[ 10 ] 、2013 年に発表されました。 [ 1 ] [ 2 ]元の論文はICLR カンファレンス2013の査読者によって却下されました。また、コードがオープンソースとして承認されるまでに数か月かかりました。[ 11 ]他の研究者がアルゴリズムの分析と説明に協力しました。[ 4 ]
Word2vec アルゴリズムを使用して作成された埋め込みベクトルは、n-gram や潜在意味解析を使用するアルゴリズム[ 1 ]と比較していくつかの利点があります。GloVeは、特に競合としてスタンフォード大学のチームによって開発され、元の論文では GloVe が word2vec よりも複数改善されていると指摘されています。[ 12 ] Mikolov は、GloVe はより多くのデータでトレーニングされているため比較は不公平であり、fastTextプロジェクトでは同じデータでトレーニングした場合、word2vec の方が優れていることが示されたと主張しました。[ 13 ] [ 11 ]
2022年時点では、単純なWord2vecアプローチは「時代遅れ」と評されていました。Word2vecに似た単語埋め込みモデルの上に複数のニューラルネットワーク注意層を追加するELMoやBERTなどのTransformerベースのモデルは、自然言語処理の最先端技術と見なされるようになりました。[ 14 ]
word2vecの学習結果は、パラメータ設定に大きく左右される可能性があります。以下は、word2vecの学習における重要なパラメータの一部です。
word2vec モデルは、階層的ソフトマックスおよび/またはネガティブ サンプリングを使用してトレーニングできます。モデルが最大化しようとする条件付き対数尤度を近似するために、階層的ソフトマックス法はハフマン木を使用して計算を削減します。一方、ネガティブ サンプリング法は、サンプリングされたネガティブ インスタンスの対数尤度を最小化することによって最大化問題にアプローチします。著者らによると、階層的ソフトマックスはまれな単語に対してより効果的であり、ネガティブ サンプリングは頻出単語や低次元ベクトルに対してより効果的です。[ 3 ]トレーニング エポックが増加すると、階層的ソフトマックスは役に立たなくなります。[ 15 ]
高頻度語と低頻度語は情報が少ないことが多い。一定の閾値を超える頻度の単語、または一定の閾値を下回る頻度の単語は、トレーニングを高速化するためにサブサンプリングまたは削除されることがある。[ 16 ]
単語埋め込みの品質は次元数が増えるにつれて向上しますが、ある点を超えると、限界利得は減少します。[ 1 ]通常、ベクトルの次元数は100から1,000の間に設定されます。
コンテキストウィンドウのサイズは、特定の単語の前後の単語のうち、その単語のコンテキスト単語として含まれる単語の数を決定します。著者の注記によると、推奨値は skip-gram の場合は 10、CBOW の場合は 5 です。[ 3 ]
word2vecには様々な拡張機能があります。
doc2vec は、文、段落、文書全体など、可変長のテキストの分散表現を生成します。 [ 17 ] [ 18 ] doc2vec は、 C、Python、Java / Scalaツールで実装されており(下記参照)、Java および Python バージョンでは、新しい未知の文書に対する文書埋め込みの推論もサポートしています。
doc2vec は、word2vec が単語の表現を推定するのと非常によく似た方法で、文書の分散表現を推定します。doc2vec は 2 つのモデル アーキテクチャのいずれかを利用しますが、どちらも word2vec で使用されているアーキテクチャの類推です。1 つ目の分散メモリ モデル段落ベクトル (PV-DM) は、CBOW と同一ですが、追加のコンテキストとして一意の文書識別子も提供します。2 つ目のアーキテクチャである分散バッグ オブ ワード バージョン段落ベクトル (PV-DBOW) は、skip-gram モデルと同一ですが、現在の単語ではなく段落識別子から周囲のコンテキスト単語のウィンドウを予測しようとします。[ 17 ]
doc2vec は、単語の周りの追加の「コンテキスト」の意味を捉える機能も備えています。doc2vec は、話者または話者の属性、グループ、および期間の意味埋め込みを推定できます。たとえば、doc2vec は、米国と英国のさまざまな議会や国会における政党の政治的立場[ 19 ]、およびさまざまな政府機関[ 20 ]を推定するために使用されています。
word2vec のもう 1 つの拡張は top2vec であり、文書と単語の埋め込みの両方を利用してトピックの分散表現を推定します。[ 21 ] [ 22 ] top2vec は doc2vec モデルから学習した文書埋め込みを受け取り、それをより低い次元に削減します(通常はUMAP を使用)。次に、 HDBSCANを使用して文書の空間をスキャンし、[ 23 ]類似した文書のクラスタを見つけます。次に、クラスタで識別された文書の重心がそのクラスタのトピック ベクトルとみなされます。最後に、top2vec は意味空間を検索して、トピック ベクトルに近い単語埋め込みを見つけ、トピックの「意味」を確認します。[ 21 ]トピック ベクトルに最も類似した埋め込みを持つ単語がトピックのタイトルとして割り当てられる可能性があり、遠く離れた単語埋め込みは無関係とみなされる可能性があります。
LDAなどの他のトピックモデルとは異なり、top2vecは2つのトピック間、またはトピックと他の埋め込み表現(単語、文書など)間の標準的な「距離」指標を提供します。HDBSCANの結果と組み合わせることで、ユーザーはトピック階層、つまり関連するトピックとサブトピックのグループを生成できます。
さらに、ユーザーはtop2vecの結果を利用して、サンプル外の文書のトピックを推論することができます。新しい文書の埋め込みを推論した後、トピック空間内で最も近いトピックベクトルを検索するだけで済みます。
バイオインフォマティクスアプリケーション向けに、生物学的配列 ( DNA、RNA、タンパク質など)の n-gram のワード ベクトルの拡張がAsgari と Mofrad によって提案されています。[ 24 ]一般的に生物学的配列を指すためにバイオ ベクトル ( BioVec ) と名付けられ、タンパク質 (アミノ酸配列) にはタンパク質 ベクトル (ProtVec)、遺伝子配列には遺伝子 ベクトル (GeneVec) があり、この表現はプロテオミクスやゲノミクスの機械学習アプリケーションで広く使用できます。結果は、BioVectors が、基礎となるパターンの生化学的および生物物理学的解釈の観点から生物学的配列を特徴付けることができることを示唆しています。[ 24 ]同様のバリアントである dna2vec は、 Needleman–Wunsch類似度スコアとdna2vec ワード ベクトルのコサイン類似度の間に相関があることを示しました。[ 25 ]
非構造化放射線レポートの密なベクトル表現を作成するための単語ベクトルの拡張が、Banerjee らによって提案されている[ 26 ] 。Word2vecの最大の課題の 1 つは、未知の単語や語彙外の単語 (OOV) および形態的に類似した単語をどのように処理するかである。Word2vec モデルが特定の単語に遭遇したことがない場合、ランダムなベクトルを使用せざるを得ず、これは一般的に理想的な表現とはかけ離れている。これは、放射線科医の好みのスタイルに応じて同義語や関連語が使用される可能性があり、単語が大規模なコーパスでまれにしか使用されていない可能性がある医学などの分野では特に問題となる可能性がある。
IWEは、Word2vecと意味辞書マッピング技術を組み合わせることで、臨床テキストからの情報抽出における主要な課題、すなわち自由記述形式の曖昧さ、語彙の多様性、文法的に正しくない表現や電報のような表現の使用、単語の恣意的な順序、略語や頭字語の頻繁な出現といった問題に対処します。特に注目すべきは、IWEモデル(ある機関のデータセットで学習済み)が別の機関のデータセットにも正常に適用できたことであり、このアプローチが複数の機関にわたって高い汎用性を持つことが実証されました。
word2vecフレームワークにおける単語埋め込み学習の成功の理由は十分に理解されていない。GoldbergとLevyは、word2vecの目的関数によって、類似した文脈で出現する単語は類似した埋め込み(コサイン類似度で測定)を持つようになると指摘し、これはJR Firthの分布仮説と一致していると述べている。しかし、彼らはこの説明は「非常に曖昧」であると指摘し、より形式的な説明が望ましいと主張している。[ 4 ]
Levy et al. (2015) [ 27 ]は、word2vec や同様の埋め込みが下流タスクで優れたパフォーマンスを発揮する理由の多くは、モデル自体によるものではなく、特定のハイパーパラメータの選択によるものであることを示しています。これらのハイパーパラメータをより「従来型」のアプローチに転用すると、下流タスクで同様のパフォーマンスが得られます。 Arora et al. (2016) [ 28 ]は、word2vec および関連アルゴリズムは、対数線形トピックモデルに基づくランダムウォーク生成プロセスを含む、テキストの単純な生成モデルの推論を実行するものであると説明しています。彼らはこれを利用して、類推を解決するために使用するなど、単語埋め込みのいくつかの特性を説明しています。

単語埋め込みアプローチは、単語間のさまざまな類似度を捉えることができます。Mikolov ら (2013) [ 29 ]は、ベクトル演算を使用して意味的および構文的パターンを再現できることを発見しました。「男性と女性の関係は、兄弟と姉妹の関係と同じ」などのパターンは、これらの単語のベクトル表現に対する代数演算によって生成できます。「兄弟」-「男性」+「女性」のベクトル表現は、モデル内の「姉妹」のベクトル表現に最も近い結果を生成します。このような関係は、さまざまな意味的関係 (国と首都など) および構文的関係 (現在形と過去形など) に対して生成できます。
word2vecのこの側面は、他のさまざまな文脈で活用されてきました。たとえば、word2vecは、ある言語の単語のベクトル空間を、別の言語から構築されたベクトル空間にマッピングするために使用されています。両方の空間における翻訳された単語間の関係は、新しい単語の機械翻訳を支援するために使用できます。[ 30 ]
Mikolov ら (2013) [ 1 ]は、上記で説明した意味的および構文的パターンを利用して word2vec モデルの品質を評価するアプローチを開発しました。彼らは、モデルの精度をテストするためのベンチマークとして使用する 8,869 個の意味的関係と 10,675 個の構文的関係のセットを開発しました。ベクトルモデルの品質を評価する際、ユーザーは word2vec [ 31 ]に実装されているこの精度テストを利用するか、モデルを構成するコーパスにとって意味のある独自のテスト セットを開発することができます。このアプローチは、与えられたテスト単語に最も類似する単語が直感的に妥当であると単純に主張するよりも、より困難なテストを提供します。[ 1 ]
異なるモデルパラメータと異なるコーパスサイズを使用すると、word2vec モデルの品質に大きな影響を与える可能性があります。精度は、モデルアーキテクチャ (CBOW または Skip-Gram) の選択、トレーニングデータセットの増加、ベクトル次元数の増加、アルゴリズムで考慮される単語のウィンドウサイズの増加など、さまざまな方法で向上させることができます。これらの改善にはそれぞれ、計算の複雑さの増加、ひいてはモデル生成時間の増加というコストが伴います。[ 1 ]
大規模コーパスと多数の次元を使用するモデルでは、スキップグラムモデルが全体的な精度が最も高く、意味関係の精度も一貫して最も高く、ほとんどの場合、構文精度も最も高くなります。ただし、CBOWは計算コストが低く、同様の精度結果が得られます。[ 1 ]
全体的に、精度は使用する単語数と次元数とともに向上します。Mikolov ら[ 1 ]は、トレーニングデータの量を 2 倍にすると、ベクトル次元数を 2 倍にした場合と同等の計算複雑度の増加が生じると報告しています。
Altszyler と共著者 (2017) は、異なるコーパスサイズでの 2 つの意味テストで Word2vec のパフォーマンスを調査しました。[ 32 ]彼らは、中規模から大規模のコーパスサイズ (1000 万語以上) でトレーニングした場合、Word2vec は急な学習曲線を持ち、別の単語埋め込み技術である潜在意味解析(LSA) を上回ることを発見しました。しかし、トレーニング コーパスが小さい場合は、LSA の方が優れたパフォーマンスを示しました。さらに、最適なパラメータ設定はタスクとトレーニング コーパスによって異なることも示しています。それにもかかわらず、50 次元の中規模コーパスでトレーニングされた skip-gram モデルの場合、ウィンドウ サイズ 15 と 10 個のネガティブ サンプルが適切なパラメータ設定のようです。
{{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)