検索エンジンに日常の言葉で入力した際、検索語が一字一句一致していなくても意図通りのウェブページが見つかったり、AIが大量の文書から似た内容の記述を瞬時に探し出したりできるのはなぜでしょうか。その背後で中核的な役割を果たしている基盤技術が「埋め込み(Embedding)」です。
埋め込みとは、テキストや画像などの離散データを、AIが計算可能な連続ベクトル空間上の「数値の並び(ベクトル)」へと変換する表現技術を指します。コンピュータは言葉の「意味」そのものを人間のように直感的に理解することはできません。しかし、学習によってデータを広大な空間上の「位置(座標)」へと変換することで、データ同士の近さや関係性を数学的に計算できるようになります。
ただし、埋め込みは辞書的な意味や世界の真理をそのまま完璧に保存した魔法の技術ではありません。学習データの共起パターンに基づく幾何学的な近似値です。本稿では、埋め込みの基本概念から、位置に変換する統計的仕組み、計算方法、文脈依存型への進化、そして実務上の注意点までを体系的に解説します。
埋め込みとは何か:言葉やデータを「数値の並び」に変換する基本原理
埋め込み(Embedding)を一言で定義するなら、「学習した機械学習モデルが、テキストなどの離散データを連続的なベクトル空間上の数値の並びへ変換し、比較や予測などに利用できるようにした表現」です。
日常会話において、私たちは「犬」と「猫」はどちらもペットとして近い関係にあり、「犬」と「飛行機」はずっと遠い関係にあると直感的に理解しています。しかし、コンピュータにとっては「犬」「猫」「飛行機」は単なる文字コードの列に過ぎず、文字の並びそのものから意味の近さを読み取ることはできません。
そこでAIは、言葉やデータを多次元空間の中の「座標(位置)」として表します。たとえば、2次元平面上に「横軸:ペットらしさ」「縦軸:大きさ」という基準を仮定してみましょう。この平面の上では、「犬」と「猫」はペットらしさが高い領域の近い位置に点が打たれます。一方、「飛行機」はペットらしさが極めて低くサイズが大きい遠い場所に点が打たれます。このように位置として表現できれば、2点間の距離を測ることで「どれくらい似ているか」をコンピュータが数値として客観的に計算できるようになります。

ここで、埋め込みの概念を直感的に把握するために上記の模式図をご覧ください。言葉が空間上に配置され、似た性質を持つものが近くに集まり、検索や分類などの用途へと活用される全体の流れを示しています。
ただし、この図を見る際には3つの重要な前提と注意点があります。
第1に、この図に描かれている2次元平面の点配置は、高次元データをt-SNEやUMAPなどの次元削減アルゴリズムで圧縮した実測データではなく、概念をわかりやすく伝えるための「説明用の概念的模式図」です。実際の埋め込みモデルが扱う空間は2次元ではなく、数百から数千次元にも及ぶ高次元空間です。
第2に、図中に示されているベクトル([0.21, -0.45, ...]のような数値列)は、各成分に特定の属性名(「大きさ」「ペットらしさ」など)が割り当てられているわけではなく、学習パラメータそのものでもない「説明用の架空値」です。
第3に、図の右側に示されている類似度比較や検索といった用途は、すべて「同一のモデルによって同一の空間内に変換されたデータ同士」を比較することが絶対の前提条件となります。異なるモデルで生成されたベクトル同士を直接比較することはできません。
番号付け(ID)やワンホット表現の限界と実装の実態
コンピュータで言葉を扱うにあたって、なぜわざわざ多次元の連続ベクトル空間に配置する必要があるのでしょうか。最も素朴な発想は、辞書に載っている単語に「リンゴ=1」「ミカン=2」「飛行機=3」のように通し番号(ID)を割り振ることです。
しかし、単純なID番号の割り当てには決定的な欠点があります。番号の差の大きさが、意味の近さを全く反映しないという点です。1番の「リンゴ」と2番の「ミカン」は番号が隣り合っていますが、それは単に辞書順や登録順で並べただけに過ぎません。3番の「飛行機」との差が「3 − 1 = 2」だからといって、「飛行機からリンゴを引いたらミカンになる」というような意味的な関係は成り立ちません。番号の大小や差分に、概念としての意味が宿っていないのです。
そこで自然言語処理の初期に広く用いられたのが「ワンホット表現(One-Hot Representation)」です。語彙数が1万語あるとすれば、1万個の要素が並んだベクトルを用意し、該当する単語の位置だけを「1」、それ以外の9,999個をすべて「0」にします。
- リンゴ:
[1, 0, 0, 0, ...] - ミカン:
[0, 1, 0, 0, ...] - 飛行機:
[0, 0, 1, 0, ...]
ワンホット表現は、どの単語であるかを曖昧さなく区別できる利点を持っています。しかし、幾何学的に見ると重大な限界を抱えています。
ワンホット表現のベクトル同士で内積(対応する要素同士を掛け合わせて合計した値)を計算してみましょう。自分自身との内積を計算すると、1 \times 1 = 1 となります。ところが、異なる単語同士の内積を計算すると、必ず「0」になります。「1」が立つ位置が互いに完全に異なるため、どの要素を掛け合わせても 1 \times 0 = 0 となってしまうからです。
数学的に内積が0であるということは、多次元空間において2つのベクトルが「直交(90度の角度で交わる)」していることを意味します。つまり、ワンホット表現では、すべての単語が互いに直角に独立した軸として配置されているのです。
ただし注意しなければならないのは、この直交性は表現形式上の幾何学的な性質に過ぎず、「リンゴとミカンが現実世界で無関係である」ことを証明しているわけではありません。リンゴとミカンも、リンゴと飛行機も、等しく内積が0になってしまい、単語同士の類似度を比較する手掛かりが失われてしまう点こそが幾何学的な限界なのです。さらに、語彙数が10万、100万と増えるにつれてベクトルの次元数も膨大になり、そのほとんどが0で埋め尽くされる疎(スパース)な表現となるため、メモリ効率や計算効率の面でも大きな負担となります。
ここで誤解してはならないのは、ワンホット表現やIDによる管理が完全に捨て去られたわけではない点です。現代の大規模言語モデルや埋め込みモデルにおいても、入力テキストはまずトークンごとに固有の語彙ID(インデックス)へと変換されます。そして、ニューラルネットワークの最初の層である「埋め込み層(Embedding Lookup Table)」において、そのID番号を参照して対応する密なベクトルを取り出すという実装が標準的に行われています。
理論上、疎なワンホットベクトルを行列に掛け算する処理は、実装上は「ID番目の行ベクトルを瞬時に引き抜く(Lookup)」処理と完全に等価です。現代の埋め込み技術は、IDという離散的な識別子を基礎として活用しながら、各単語を数百〜数千次元の「密な連続ベクトル(分散表現)」へと変換することで、意味の近さを計算できる幾何学的空間を実現しているのです。
単語を位置に変える統計的仕組み:分布仮説と学習モデル
では、AIモデルはどのようにして「似た意味の単語同士が近くに配置される」ようなベクトルを獲得するのでしょうか。人間が辞書を読んで「リンゴとミカンはどちらも果物だから数値を近くしよう」と手作業で設定しているわけではありません。
その根底にあるのが、言語学者ジョン・R・ファース(John Rupert Firth)が1957年に提唱した「分布仮説(Distributional Hypothesis)」です。分布仮説とは、「語の意味は、その周囲に現れる単語(文脈)によって知られる(You shall know a word by the company it keeps)」という考え方です。
たとえば、「リンゴを食べる」「ミカンを食べる」「リンゴの皮をむく」「ミカンの皮をむく」という文を考えてみましょう。「リンゴ」と「ミカン」という単語は、周囲に「食べる」「皮」「むく」といった共通の単語を伴って出現する傾向が非常に高くなります。人間が言葉の意味を直接定義しなくても、膨大なテキストデータの中で「どのような単語の並びの中で一緒に使われやすいか(統計的な共起パターン)」を観察すれば、似た文脈に現れる単語同士を機械的に特定できるというのが分布仮説の核心です。
この分布仮説をニューラルネットワークによって高速かつ効果的に実現したのが、トマーシュ・ミコロフ(Tomas Mikolov)らが2013年に発表した「Word2Vec」(arXiv:1301.3781)です。Word2Vecでは、単語の分散表現を学習するために2つの代表的なモデル構造が提案されました。
- CBOW(Continuous Bag-of-Words):
周囲の文脈語から、中央に位置するターゲット単語を予測する手法です。「[美味しい][甘い][?]を[食べる]」という文脈から、中央に入る単語「リンゴ」を予測します。CBOWの特徴は、周囲の文脈語の順序を保持せず、単純に文脈語ベクトルの平均値を取って入力とする点です。語順を厳密に考慮しない分、計算が非常に軽量で、大規模なデータセットでも高速に学習できる強みを持ちます。
- Skip-gram:
CBOWとは逆に、中央の単語を入力として、その周囲(前後数単語のウィンドウ内)に現れる文脈語を予測する手法です。「リンゴ」という単語が与えられたときに、その周辺に「美味しい」「食べる」といった単語が出現する確率を最大化するように学習します。中央の1単語から周辺の共起語を1つずつ予測するため、出現頻度が低い稀少な単語に対しても精度の高いベクトルを獲得しやすい特徴があります。
さらにミコロフらは、語彙全体に対する確率計算の膨大なコストを劇的に削減する「ネガティブサンプリング(Negative Sampling)」(arXiv:1310.4546)を導入しました。数万〜数十万語におよぶ語彙全体から正規化定数を計算するのではなく、テキスト中で実際に共起した「正例(ターゲット語と文脈語のペア)」の確率を上げつつ、ランダムに選んだわずか数個の共起していない単語「負例」との確率を下げる二値分類タスクへと問題を置き換えたのです。
このように、埋め込みモデルは「赤さ」「果物度」といった人間が作った意味ラベルを教師データとして学習しているのではありません。大量の文章をそのまま読み込み、単語の出現パターンを予測する自己教師あり学習を通じて、単語ベクトルを調整していきます。その結果として、多次元空間の中で、似た文脈で使われる単語同士が自然と近い位置に寄り集まる幾何学的配置(埋め込み空間)が自己組織化されるのです。
空間内の位置関係をどう計算するか:コサイン類似度とベクトル演算の実態
多次元空間の中に単語や文章がベクトルとして配置された後、AIはそれらをどのように比較し、活用するのでしょうか。ベクトルの近さを測る尺度と、埋め込み空間で見られる幾何学的演算の実態を整理します。
1. 類似度の計算尺度:コサイン類似度と内積・ユークリッド距離
高次元空間において、2つのベクトルがどれくらい似ているかを判定する際、最も頻繁に用いられる尺度が「コサイン類似度(Cosine Similarity)」です。
コサイン類似度は、空間の原点から2つの点へと伸びる矢印(ベクトル)が「どれくらい同じ方向を向いているか」、すなわち2つのベクトルのなす角度 \theta の余弦(\cos \theta)を計算します。数式としては、2つのベクトルの内積を、それぞれのベクトルのノルム(ベクトルの長さ)の積で割ることで求められます。
コサイン類似度が取る値の範囲は -1 から +1 までです。
- +1:2つのベクトルが全く同じ方向を向いている状態。
- 0:2つのベクトルが直交(90度の角度)している状態。
- -1:2つのベクトルが正反対(180度の角度)を向いている状態。
ここで極めて重要なのは、「数学的な定義」と「意味的な解釈」を混同しないことです。
高次元空間においてコサイン類似度が0であることは、幾何学的に直交していることを意味しますが、現実世界の概念として「完全に無関係である」ことを保証するわけではありません。高次元空間では、ランダムに選んだ2つのベクトルがほぼ直交に近い角度を取りやすいという幾何学的性質(直交性の集中)が存在します。また、コサイン類似度が -1 だからといって、それが「完全な対義語」であることを意味するわけでもありません。
また、類似度を測る尺度にはコサイン類似度のほかに「ユークリッド距離(空間上の2点間の直線距離)」や「内積(ドット積)」もあります。もし、すべてのベクトルの長さ(ノルム)が 1 になるように正規化されている場合、コサイン類似度が高いこと、ユークリッド距離が短いこと、内積が大きいことは数学的に全く同じ順序関係になります。しかし、ベクトルの長さに単語の出現頻度や重要度が反映されている未正規化のモデルでは、向きだけを比べるコサイン類似度と、大きさも考慮する内積とで結果が異なります。そのため、モデルの学習目的(対照学習の損失関数など)や検索システムの設計に応じて、適切な尺度が選定されます。
2. ベクトル演算と線形関係の実態
埋め込み技術を一躍有名にしたのが、ベクトル同士の足し算や引き算によって概念の関係性を計算できるという現象です。最も代表的な例が、「王 − 男 + 女 ≈ 女王」という関係式です。また、文法的な規則性を示す作例として「歩いた − 歩く + 泳ぐ ≈ 泳いだ」(過去形と現在形の関係)なども挙げられます(これらは関係の向きを説明するための概念的な作例であり、特定の日本語モデルの実測値を保証するものではありません)。
初心者が陥りがちな誤解は、「王という概念から男性性という部品を物理的に引き抜き、そこに女性性という部品をパズルのように合体させた」と解釈してしまうことです。しかし、分散表現の各次元に「性別」や「君主度」といった独立した名前が付いているわけではありません。
この現象の幾何学的な実態は、「高次元空間における差分ベクトルが、別の単語の組の間でも近似的に平行を保っている」ということです。
空間の中で「男」の座標から「女」の座標へと向かう矢印(差分ベクトル \vec{v}_{\text{女}} - \vec{v}_{\text{男}})を作ると、この矢印はある特定の方向と長さを持ったベクトルになります。そして、「王」の座標から「女王」の座標へと向かう矢印(\vec{v}_{\text{女王}} - \vec{v}_{\text{王}})も、空間内でこれとほぼ同じ向きと大きさを持っています。数式を変形すれば、
\vec{v}_{\text{王}} + (\vec{v}_{\text{女}} - \vec{v}_{\text{男}}) \approx \vec{v}_{\text{女王}}$ となります。「男から女への関係ベクトル」を「王」に足し合わせると、「女王」の近傍に到達するという幾何学的な現象に他なりません。
ただし、この線形関係がいつでも成立するわけではありません。差分ベクトルによる類推が成り立つ範囲は、学習データ中の共起構造、語彙の出現頻度、モデルの学習目的、そして近傍探索に用いる類似度尺度に強く依存します。すべての概念を自由に足し引きして新しい意味を作れるわけではない点に留意が必要です。
「固定の単語」から「文脈に応じた表現」へ:Transformerと文埋め込みへの進化
Word2Vecに代表される初期の埋め込み手法は画期的でしたが、言語を扱う上で避けて通れない根本的な壁に直面しました。それが「多義語」の問題です。
Word2Vecは、単語1つに対して空間上の固定された位置(単語ベクトル)を1つだけ割り当てる「固定型埋め込み(Static Embedding)」です。しかし現実の言葉では、同じ単語でも文脈によって意味が異なります。
たとえば、英語の「bank」には「川の岸」と「銀行」の意味があります。日本語でも、「右の手」という身体部位と、「囲碁の次の一手」という戦略では意味が全く異なります。固定型埋め込みでは、どのような文章の中にあっても「手」は全く同じ1つのベクトルとして扱われてしまうため、文脈による意味の多義性を解釈することが困難でした。
文脈依存型埋め込みの発展とTransformer
この限界を克服するために登場したのが、「文脈依存型埋め込み(Contextualized Embedding)」です。
文脈依存型の概念はTransformerによって突然生まれたわけではありません。それ以前にも、双方向LSTM(BiLSTM)を用いて前後の文脈を取り込む「context2vec」(Melamud et al., 2016)や、文脈に応じた深層表現を事前学習する「ELMo」(Peters et al., 2018)などが開発され、文脈に応じて単語の表現を動的に変化させる道筋が切り拓かれていました。
そして2017年、アシック・ヴァスワニ(Ashish Vaswani)らによって発表された「Transformer」(arXiv:1706.03762)により、文脈依存型表現の精度とスケーラビリティは飛躍的な進化を遂げました。
Transformerにおける埋め込み処理は、原論文(§3.2, §3.4, §3.5)に示されている通り、段階的なステップを踏んで行われます。
- トークン埋め込み(Token Embedding):
入力文はまずトークン(単語やサブワード)に分割されます。そして従来の単語ベクトルと同様に、埋め込み表(Embedding Lookup Table)を参照して固定次元の初期ベクトルへと変換されます。この段階ではまだ文脈は考慮されていません。
- 位置エンコーディング(Positional Encoding):
Transformerの自己注意機構はすべてのトークン間の関係を並列に計算するため、そのままでは語順(前後の並び順)を認識できません。そこで、トークンが文の何番目にあるかを示す位置ベクトル(Positional Encoding)を初期ベクトルに足し算します。
- 多層の自己注意機構(Self-Attention)による文脈化:
初期埋め込みと位置情報が合わさったベクトルは、多層のTransformerブロックを通過します。各層の自己注意機構において、文中のすべてのトークン同士がどれくらい関連しているか(注意の重み)を計算し、周囲のトークンの情報を重みづけして統合します。
何層もの自己注意機構と順伝播ネットワークを経ることで、各トークンのベクトルは周囲の文脈を取り込んだ動的な表現へと更新されます。同じ「手」という単語であっても、周囲に「指」「腕」があれば身体部位としての特徴を強く帯びたベクトルへ更新され、周囲に「対局」「指す」があれば戦略としての特徴を強く帯びたベクトルへと変化します。これにより、多義語の壁が乗り越えられたのです。
トークン表現から「文埋め込み(Sentence Embedding)」へ
ここで整理しておくべき重要な区別があります。「固定型単語ベクトル」「文脈化されたトークン表現」、そして「文全体の埋め込み(Sentence Embedding)」の違いです。
Transformerが出力するのは、文中の各トークンに対応する文脈化ベクトル群です。しかし、検索システムや文書分類タスクでは、文や段落全体を1つのベクトルとして要約し、文同士の類似度を比較したいケースが多々あります。
各トークンのベクトルをそのまま文全体の比較に使うことはできないため、一般的には以下のアプローチが取られます。
- プーリング(Pooling):各トークンの文脈化ベクトルの平均値(Mean Pooling)を計算したり、文頭の特殊トークン(BERTの
[CLS]トークンなど)の出力を代表ベクトルとして取り出したりします。 - 文対照学習(Contrastive Learning):単純な平均化だけでは文全体の意味の類似度を適切に捉えられないことがあるため、文同士のペアを学習データとし、「意味が近い文同士は近く、意味が異なる文同士は遠く」なるよう直接学習させた専用モデル(SimCSEなど)が活用されます。
そして、文埋め込みを扱う上での絶対的な前提条件は、「比較が成立するのは、同一モデルによって同一空間内に変換されたベクトル同士に限られる」という点です。異なるモデルで生成された文ベクトルは、次元数が同じであっても空間の基準系が全く異なるため、直接内積やコサイン類似度を計算して比較することはできません。
埋め込みの限界と注意点:幾何学的近似がもたらす特性とよくある誤解
埋め込みはAIの応用を支える強力な技術ですが、その幾何学的な性質ゆえの限界や実務上の落とし穴が存在します。客観的事実とよくある誤解を解説します。
1. 辞書的な意味や世界の真理の保存ではない
最も根本的な注意点は、「埋め込み空間は、世界の真理や論理的な意味構造を完全に再現したものではない」ということです。
埋め込みはあくまで、与えられた学習データにおける単語やトークンの共起統計に基づいた「幾何学的な近似値」に過ぎません。学習データに出現しなかった関係性や、統計的共起だけでは捉えきれない厳密な論理的包含関係(AはBの前提である、等)を完全に保証するものではありません。
2. 対義語が近くに配置されやすい理由
実務で多くの人が直面する現象の一つに、「対義語同士の類似度が高くなってしまう」という問題があります。
たとえば、「熱い」と「冷たい」、「買う」と「売る」といった正反対の意味を持つ単語同士のコサイン類似度を計算すると、非常に高い値を示すことが珍しくありません。
これはモデルの欠陥ではなく、分布仮説に基づく埋め込みの構造的な必然です。「お湯が[熱い]」「お湯が[冷たい]」、「車を[買う]」「車を[売る]」というように、対義語は同じ主語、同じ目的語、同じ文脈(共起パターン)の中で使われる傾向が酷似しています。周囲の環境が似ているため、モデルから見れば「同じような文脈に出現する仲間」と判定され、多次元空間内で近い位置に配置されてしまうのです。コサイン類似度が高いからといって必ずしも「同義語」を意味するわけではないという点は、検索システムを設計する上で常に留意すべき重要な特性です。
3. 解釈性の難しさと学習データのバイアス
埋め込みが採用している「分散表現」では、意味情報が数百〜数千の次元全体に分散して保持されます。そのため、人間が個々の次元を取り出して「第42次元は果物度を表している」などと直感的に解釈することは困難です。
さらに、埋め込みモデルは学習データに含まれる偏りや偏見(バイアス)をそのまま吸収してしまいます。特定の職業と特定の性別が結びついて書かれた文章を大量に学習すれば、ベクトル空間でもその職業と性別が空間的に近い位置に配置されます。AIの出力が中立に見えても、埋め込み空間自体が偏った幾何学構造を抱えている可能性があるため、公平性の検証が実務上の重要な課題となっています。
4. マルチモーダル埋め込み(CLIP等)の正確な理解
近年では、テキストだけでなく画像や音声を同一のベクトル空間に写像する「マルチモーダル埋め込み」(OpenAIのCLIPなど)が普及しています。画像エンコーダとテキストエンコーダを対照学習させ、「犬の写真」と「犬」というテキストが同じ空間の近い位置に配置されるように学習する技術です。
ここで混同してはならないのは、CLIPのようなマルチモーダル埋め込みモデルは「画像とテキスト候補の類似度を比較・検索(ゼロショット分類など)するためのモデル」であり、それ単体で自由な説明文章を執筆・生成するキャプション生成モデルではないということです。マルチモーダル埋め込みが提供するのは、異なる種類のデータを共通の尺度で測るための「整合された共通空間」であり、そこでも比較が成立するのは共同学習によって空間が一致している場合に限られます。
埋め込みに関するよくある質問(FAQ)
Q1. ベクトルの次元数は多ければ多いほど性能が高くなるのでしょうか? A. 単純に次元数を増やせば良いわけではありません。次元数を増やすと表現力が高まり細かな差異を分離しやすくなる反面、ベクトルの保存メモリが増加し、検索時の計算負荷やベクトルデータベース(ANNインデックス)の負荷が急増します。また、データ量に対して次元数が過大になると過学習や「次元の呪い」が生じるリスクもあります。実務では、用途やコスト、要求される検索速度に応じて最適な次元数が選択されます。
Q2. 異なるAIモデルで作った埋め込み同士を直接比較・検索することはできますか? A. 原則として直接比較することはできません。埋め込み空間の軸の向きや数値の意味は、モデルの構造、初期値、学習データ、最適化過程によって個別に決まります。たとえ次元数が同じであっても、見ている空間の基準系が全く異なります。異なるモデルの埋め込みを比較・検索したい場合は、データをすべて同一のモデルで再計算(再埋め込み)するか、両者の空間を整合させる変換学習を行う必要があります。
Q3. 長い文章を埋め込みに変換した場合、ベクトルの長さはどうなりますか? A. 文章の長さにかかわらず、埋め込みベクトルの次元数(要素数)はあらかじめ設定された固定値に保たれます。また、類似度検索の前には正規化(長さを1にする処理)が行われることが一般的であるため、長文だからといってベクトルの幾何学的な大きさが巨大になるわけでもありません。ただし、長い文章をたった1つの固定次元ベクトルに圧縮しようとすると細部の文脈が失われる「情報損失」が生じます。そのため実務では、文章を適切な長さの段落(チャンク)に分割してから埋め込む設計が標準的です。
まとめ:意味の幾何学を理解してAIを活用する
埋め込み(Embedding)とは、曖昧で多様な言葉やデータを、コンピュータが計算可能な多次元空間上の「位置(ベクトル)」へと変換する基盤技術です。
単純なIDや直交するワンホット表現の限界から、分布仮説に基づくWord2Vec、そして多層の自己注意機構によって多義性を克服したTransformerの文脈依存型表現へと、埋め込み技術は着実に進化してきました。検索システムやRAG(検索拡張生成)、大規模言語モデルの高度な処理は、この幾何学的変換の上に成り立っています。
埋め込み空間の位置関係は、学習データの出現パターンに基づいた幾何学的な近似値です。対義語が近くなりやすい性質や、データの偏り、同一空間内での比較という前提条件を正しく把握することこそが、AI技術を実務において最大限に活用するための確かな道筋となります。
---
出典・参考資料
- Mikolov, T., Corrado, G., Chen, K., & Dean, J. (2013). Efficient Estimation of Word Representations in Vector Space. arXiv:1301.3781. https://arxiv.org/abs/1301.3781
- Mikolov, T., Sutskever, I., Chen, K., Corrado, G. S., & Dean, J. (2013). Distributed Representations of Words and Phrases and their Compositionality. arXiv:1310.4546. https://arxiv.org/abs/1310.4546
- Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, Ł., & Polosukhin, I. (2017). Attention Is All You Need. arXiv:1706.03762. https://arxiv.org/abs/1706.03762
