本文へ移動
世界と暮らしの疑問を整理する知識ポータル
人工知能の仕組みと歴史

単語ベクトルからニューラル翻訳へ AIが言葉の関係を学ぶ仕組み

公開日

「犬」と「猫」は違う単語ですが、「餌を与える」「飼い主」「動物病院」といった文脈を共有します。ところがコンピュータの中で、それぞれを単なる番号にしてしまうと、犬と猫が、犬と冷蔵庫より近いことは表せません。番号の大小に意味の近さは入っていないからです。

単語を数値の組として表し、似た使われ方をする語の関係を学ぶ。単語ベクトルや分散表現は、言語処理を大きく変えた発想でした。その後、文全体を扱うニューラル翻訳、必要な場所を参照する注意機構へと進み、Transformerにつながる道が開かれます。

単語の番号では表せない、意味と使い方の近さ

単語に1番、2番、3番と番号を付けても、2番が1番に似ているとは限りません。番号は識別には使えても、意味の関係を表すものではないからです。単語ごとに別の位置だけを1にする表現でも、異なる単語同士の近さは直接には表せません。

そこで、一つの単語を複数の数値からなるベクトルとして表します。各数値が必ず「生き物らしさ」「大きさ」といった分かりやすい性質に対応するわけではありません。全体として、似た文脈で役立つ語が近い表現を持つように調整されるのです。

地図の座標なら、この違いを具体的に確かめられます。建物番号が近くても、場所まで近いとは限りません。一方、位置の座標からは距離を計算できる。単語ベクトルも関係を計算できる表現を目指しますが、その空間が人間の意味の世界と完全に一致するわけではないのです。

周囲の単語を予測することで得られる表現

2013年のword2vecの研究では、単語の表現を大規模な文章から効率よく学ぶ方法が示されました。代表的な方法は、周囲の語から中心の語を予測したり、中心の語から周囲の語を予測したりするものです。単語の意味を人が一語ずつ数値で定義するわけではありません。

たとえば「朝、カップに○○を注いだ」という文脈には、飲み物に関係する語が入りやすいでしょう。似た文脈に登場する語の予測を通じて、その関係が数値の表現へ反映されます。一つの文だけでは決まらなくても、多様な用例を重ねることで、使い方の傾向を学べるのです。

「暑い」と「寒い」は反対の意味でも、似た位置に登場します。したがって、文脈が似た語を同義語とみなすことはできません。純粋な意味の辞書ではなく、言語の中での関係を学んでいる点に、表現の強さと限界があります。

有名な単語の引き算が、万能の意味計算ではない理由

単語ベクトルは、王と女王、国と首都のような関係を数値上の方向として捉える例で知られています。ある関係を別の語に適用すると、対応する語の近くへ移る場合がある。単語の対応を、単なる記憶とは違う形で扱えることが注目されました。

しかし、どんな意味でも足し算や引き算で正確に操作できるわけではありません。結果はデータ、学習法、語の頻度、評価の仕方に左右されます。うまくいった例だけを示すと、言葉の意味がすべて直線的な計算へ還元されたように見えてしまうでしょう。

さらに、学習する文章に偏りがあれば、その偏りも表現に残り得ます。社会で頻繁に結び付けられる語が近くなることは、その関係が自然や能力の本質を表す証明ではありません。使用例から得た統計的な関係と、現実についての正しい主張を分ける必要があるのです。

2003年から続く、未知の文へ知識を広げる課題

ニューラルネットワークで単語の表現と言語モデルを一緒に学ぶ研究は、word2vec以前にもありました。2003年のヨシュア・ベンジオらの論文は、似た単語の表現を利用して、学習中に見ていない語の並びへ一般化する方法を示した代表例です。

文章の組合せは膨大なので、可能な文をすべて収集することはできません。「赤い車が走る」を見た経験が「青い車が走る」にも役立つなら、一文ごとに独立して覚えるより効率的でしょう。共有できる関係を表現に持たせることが、データの不足を補う方向になります。

もちろん、単語を取り替えても意味が保たれるとは限りません。「重い箱」と「重い責任」では、同じ語の働きが違います。言語の一般化には、単語単体の近さだけでなく、文脈の中でどう使われているかも必要でした。

seq2seqが扱った、長さの違う文どうしの変換

2014年の系列から系列への学習、seq2seqは、入力の並びを別の出力の並びへ変換する重要な方法です。翻訳では、入力文と訳文の長さも語順も一致しません。一つの入力位置に一つの出力を機械的に対応させるだけでは足りないのです。

初期の代表的な構成では、エンコーダが入力文を内部表現にまとめ、デコーダがそこから訳文を順に作ります。長さの違う文を扱える点が大きな利点でした。一方で、長い文の情報を限られた表現へまとめることが難しくなります。

旅行の予定を人に伝える場面で、長いメモを一度だけ聞いて、その後は原文を見ずに別の言語で説明するとしたら、細部を落としやすいでしょう。これは計算の仕組みを説明する比喩ですが、入力のどこを参照すべきかという問題をよく表しています。

ニューラル翻訳における入力の利用
固定表現中心入力をまとめ、その表現から訳文を生成
注意機構あり出力の各段階で、入力の表現を重み付きで参照

初期seq2seqと注意機構の違いを簡略化しています。

注意機構が可能にした、必要な場所の参照

2014年に公開されたバフダヌーらの研究は、翻訳を生成する各段階で、入力側のどの部分を重視するかを学ぶ方法を示しました。一つの固定された要約だけに頼るのではなく、出力しようとしている語に応じて、入力の表現を重み付きで参照するのです。

日本語と英語では語順が違うため、出力が進む順に入力を一方向へなぞるだけではうまくいきません。主語を作るときは主語に関わる部分、動作を表すときは別の部分が役立つ。必要な情報へ、その都度異なる重みを付ける仕組みが有効でした。

この「注意」は、人間が意識を向ける経験をそのまま再現したという意味ではありません。どの表現をどれほど混ぜて使うかを計算する技術上の名称です。また、重みが大きい場所だけで、モデルの判断理由がすべて説明できるとは限りません。

文脈で変わる単語の意味

英語のbankには、銀行と川岸という異なる意味があります。一つの固定ベクトルだけでは、どちらの意味で使われたかまで十分に表せません。周囲の語を取り込み、今の文に合う表現を作る必要があるのです。

日本語でも「足が速い」と「商品の足が速い」では、同じ語の結び付きから異なる意味が生まれます。単語の辞書的な知識だけではなく、文全体や話題の関係が手がかりになります。言語モデルの発展は、単語を固定の部品として扱うところから、文脈の中で表現を変える方向へ進みました。

ただし、文脈に応じた表現を作れることと、現実の状況を正しく把握していることも別です。文章に書かれていない出来事や、誤った前提が含まれている場合には、自然な解釈を作れても事実と一致しないことがあります。

Transformerにつながった、表現と参照の組合せ

単語ベクトルは、語の関係を計算できる形へ変えました。seq2seqは、長さの違う並びの変換を学習に含めました。注意機構は、出力の各段階で必要な入力を参照する方法を与えます。それぞれ別の課題への答えが、後のモデルの材料になったのです。

したがって、Transformerを「2017年に突然言語を理解する機械が現れた」と捉えると、この積み重ねが見えなくなります。単語、文、文脈、参照先をどう数値で表すかという研究が、その前にありました。

Transformerの転機は、注意機構を付け足すのではなく、系列を扱う中心へ据えたことです。どの語がどの語を参照するかを、より直接に計算する。その設計が、学習の並列化や、後の大規模な事前学習と結び付いていきます。

参考資料

人工知能の仕組みと歴史

人工知能の仕組みと歴史