人工知能講座25人工知能が会話できる秘密:ニューラル言語モデル天馬「では次に、自然言語処理にニューラルネットワークの考え方を取り入れた手法を紹介しよう。先ほども説明したと思うが、言葉は離散的な『記号』だ。数値やベクトルのような連続値ではない。コンピューターは数値処理しかできないので、言葉を扱うときには1つ1つの文字に数値(コード)を単純に割り当て、その記号を表示することしかできなかった。ところがニューラルネットワークが扱うのは、ベクトルや行列のような連続値だ。言葉もニューラルネットワークが扱えるように、ベクトルに変換する必要がある。天馬「この図のように、文のすべての単語に、ベクトルを割り当てる。ここでは単純化したので、単語は6種類だから6次元ベクトルとなる。このような表現方法を『0ne-hotベクトル』とか『1-of-N表現』と呼んでいる。天馬「そうなんだが、それほど長くなければ計算機パワーでなんとかなる。愛さん「それにしても、例文がひどすぎます。天馬「例えばだ、色を『情熱的な赤』とか『鮮やかな緑色』と表現したとする。何となくイメージすることは分かる気もするが、曖昧だ。これをRGBで、(255,0,0)とか(9,255,9)と表現すれば明確だろう。天馬「そう理解してくれればよい。この0ne-hotベクトルでの表現は、どうしてもデータ量が大きくて扱いづらい。天馬「上図のように、bag-of-wordsでは各要素の数値が、どの単語がいくつ含まれているかを表している。それがbag-of-wordsの名前の由来だからな。文章に含まれている単語をバラバラにして、1つの袋に入れたような表現形式となる。天馬「1つの文に含まれている『意味』は、一般的に1つだと考えられている。ある文に含まれている単語は、互いに近い意味を持つはず、という考えが基本にある。文と文を比較する際に、このbag-of-wordsを利用することで、似たような意味の文を見つけられる。同じ単語があったら、同じようなベクトル値になるからだ。この講義の最初の頃で、『データの距離』という考え方を説明したはずだ。自然文をこのようにベクトル化することで、データの距離が測れる。文の持つ『意味』が分からなくても、文をベクトル化することで、計算問題に置き換えたんだ。