HOME/ AINOW編集部 /Word2vecとは|モデルの種類やその仕組み、活用事例まで紹介!
2021.04.08

Word2vecとは|モデルの種類やその仕組み、活用事例まで紹介!

自然言語処理とは、人間が日常的に用いている言語をコンピュータで分析する手法です。

SNSやブログをはじめ、インターネット上では膨大な量の文章が人間によって書き込まれています。それらを分析するためには途方もない処理が必要なため、より効率よく分析することが求められます。

2013年に公開されたWord2vecは、比較的仕組みが簡単であるにもかかわらず、自然言語処理にブレイクスルーをもたらしました。この記事では、Word2vecの概要やその技術の根幹である「意味ベクトル」などの基本概念、Word2vecの勉強方法まで紹介します。

Word2vecとは

Word2vecは、文章中の単語を数値ベクトルに変換してその意味を把握する自然言語処理の手法です。比較的学習の簡単なPythonを使って実装できるため、初心者でも利用しやすい自然言語処理の手法です。

Word2vec開発の経緯

Word2vecは、2013年にGoogleの研究者トマス・ミコロフ氏によって提案された手法です。Word2vecの手法は、従来の自然言語処理手法に比べて精度が高く、特に文章の意味把握においては以前より飛躍的に精度を向上させられるようになりました。

Word2vecは、「意味ベクトル」という単語のベクトル表現を可能にする手法です。そのため、Word2vec(word to vector)という名前が付けられました。「同じ文脈に現れる単語は類似した意味を持つ」という分布仮説がその設計思想にあります。

自然言語処理

自然言語処理の手法のうち、単語をベクトルで表現する代表的な手法には「one-hot表現」と「分散表現」の2つがあります。Word2vecの「意味ベクトル」は分散表現に該当します。

one-hot表現

例えば、ある文章中に登場する単語が「アリス、ボブ、キャロル、デイブ」の場合、one-hot表現では「アリス」は以下のように表します。

アリス

同様に、それぞれの単語は以下のように表現します。

アリス
ボブ
キャロル
デイブ

one-hot表現の欠点は2つあります。

1つ目はベクトル間の演算で意味のある結果を得られないこと、2つ目は文章中の単語数が増えると次元が膨大になってしまうことです。例えば文章中に出現する単語が1万の場合、上記のようなone-hot表現のテーブルは1万×1万のサイズになってしまいます。

分散表現

分散表現は、ひとつの単語をおよそ数百次元のベクトルで表現する手法です。先ほどの単語を分散表現で表すと以下のようになります。

アリス 0.23 0.14 0.85 0.55
ボブ 0.41 0.33 0.05 0.63
キャロル 0.02 0.07 0.76 0.12
デイブ 0.50 0.24 0.72 0.10

すべてのベクトル値を1か0で表すone-hot表現に対して、分散表現では単語同士の演算が可能になります。それにより、単語間の類似度が計算できるようになるのです。。

また、一つの単語は数百次元のベクトルで表現されているため、分散表現では文章中に出現する単語数が膨大であってもデータのサイズを抑えられます。このように、分散表現はone-hot表現のデメリットを克服できる手法なのです。

Word2vecでできること

出典:https://towardsdatascience.com/understanding-word2vec-embedding-in-practice-3e9b8985953

Word2vecは、分散表現によって単語の「意味」を数学的に表現することを可能にしました。

その「意味」は数値的に意味の近さを測ったり演算(足したり引いたりすること)ができるもので、私たちのように脳や心で把握する言葉の意味とは全く異なる仕方で把握されるものです。

感情分析

出典:https://commons.wikimedia.org/wiki/File:Plutchik-wheel.svg

Word2vecは、文章中に込められた感情を分析する「感情分析」に活用できます。

例えばアメリカの心理学者ポール・エクマンが提唱した6つの基本感情「怒り、嫌悪、恐れ、幸福、悲しみ、驚き」とある文章中に出現する単語間の意味ベクトルの大きさを比較することで、その文章が6つの基本感情に対してどのくらいの近さにあるのかを測れます。

演算処理

Word2vecは、文章中の単語を0-1だけではない実数値ベクトルで把握しているため、単語同士を足したり引いたりといった演算処理ができます。

これにより、有名な「King – Masculinity + Femininity = Queen(”王様” – “男” – “女” = “女王”)」という演算が可能になります。

RNNと組み合わせて文章を自動生成する

Word2vecはRNN(再帰型ニューラルネットワーク)と組み合わせることで、文章を自動生成できます。

例えば、夏目漱石の文章を学習させて”夏目漱石風”の新たな文章を作り出すことが可能です。RNNを用いることで、夏目漱石の「単語の並べ方」や「多用する表現」などの”癖”まで再現することができます。

Word2vecの仕組み

出典:https://arxiv.org/abs/1301.3781

Word2vecは、モデルの種類や文章中から抽出する単語の分布、ベクトルの次元数など、いくつかのパラメーターを調整して使用します。

以下では、Word2vecに搭載されているCBoW(Continuous Bag-of-Words Model)とSkip-gram(Continuous Skip-Gram Model)の2つのニューラルネットワーク・モデルの仕組みを紹介します。

CBoWモデルとSkip-gramモデル

CBoW Skip-gram
仕組み 周囲の単語からある単語を予測 ある単語からその周囲の単語を予測
処理速度
精度

Word2vecの基本的な仕組みは、2層のニューラルネットワーク(出力層→中間層→出力層)を用いて文章中の単語を予測するというものです。その予測の仕方には、全く手法が反対の2つのモデルが存在します。

CBoWでは周辺の単語(コンテキスト)からある単語を予測し、Skip-gramではある単語から周辺の単語(コンテキスト)を予測します。つまり、それぞれのモデルは以下のような穴埋め問題を解いているのです。

なお、一般的にはSkip-gramの方が処理時間がかかるものの、精度に優れているとされています。

Word2vecの活用事例

レコメンドの分析

レコメンドでは、「協調フィルタリング」という仕組みのアルゴリズムが広く用いられています。協調フィルタリングは、「このユーザーは商品Aに興味があるが、商品Aに興味のある人は商品Bにも興味を示す傾向があるので、このユーザーに商品Bをおすすめしよう。」といった仕組みです。

ユーザー数と商品数が急速に膨れ上がっている現代のインターネット空間で、協調フィルタリングを実現するには途方もない処理が必要となります。

しかし、商品IDとユーザーIDのデータにWord2vecを導入することで、商品IDとの「ベクトルの大きさ」が「推奨度合い」を表すようになるため、レコメンドシステムの処理を大幅に簡略化できるようになります。

レビュー分析

あるサービスのレビューをWord2vecの「感情分析」の技術を用いて分析することで、そのレビューの感情を把握することができます。

そのため、大量の口コミを直接読まなくても大まかな感情の傾向を掴むことが可能です。これらのデータは商品の改善や新規商品の開発、流行の予測などに活用できます。

機械翻訳

Word2vecの開発者トマス・ミコロフ氏は、Word2vecの技術を機械翻訳に応用することに興味を示していました。Word2vecの周囲の単語からある単語を予測する(あるいは逆の)システムは、ディープラーニングと組み合わせることで機械翻訳の精度を飛躍的に向上することに成功しました。

Googleの開発したディープラーニング・フレームワーク「TensorFlow」の公式チュートリアルでは、TensorfFlowとWord2vecを組み合わせてスペイン語から英語へと翻訳を行うモデルの構築を体験できます。

質疑応答システム

また、Word2vecは質疑応答システム、いわゆるチャットボットにも応用されています。

ここでは、先述の文章を自動作成する技術が活用されており、企業のQ&Aシステムなどに導入することで、より自然かつ的確な返答をする質疑応答システムが実現できます。

Word2vecの勉強方法

最後に、Word2vecの詳細な使い方を勉強するための教材を紹介します。

以下の書籍は、Word2vecの理論的な仕組みだけではなく、他の自然言語処理の方法についても勉強できるおすすめの書籍です。

また、かなり応用的ですがWord2vecも含めた自然言語処理一般について、しっかりと理論から学びたい人は、YouRubeでスタンフォード大学が無料公開しているCS224N: Natural Language Processing with Deep Learning | Winter 2019という講義を参考にするといいでしょう。

まとめ

Word2vecの登場によって自然言語処理にブレイクスルーが起こりました。その仕組みはシンプルかつ幅広く応用可能であるため、まさに天才的な発明であると言えるでしょう。

Word2vecは自然言語処理に詳しくない人であっても比較的簡単に導入することができます。ぜひ一度実際にWord2vecを動かしてみて、自然言語処理の魅力に触れてみてはいかがでしょうか。

無料メールマガジン登録

週1回、注目のAIニュースやイベント情報を
編集部がピックアップしてお届けしています。

こちらの規約にご同意のうえチェックしてください。

規約に同意する

あなたにおすすめの記事

生成AIで“ウラから”イノベーションを|学生起業家が描く、AIを活用した未来

特許技術×AIでFAQを次のステージへ|Helpfeel

GPUの革新からAI時代の主役へ|NVIDIA

あなたにおすすめの記事

生成AIで“ウラから”イノベーションを|学生起業家が描く、AIを活用した未来

特許技術×AIでFAQを次のステージへ|Helpfeel

GPUの革新からAI時代の主役へ|NVIDIA