テキストを単語で分けるFacebookの「fastText」の仕組み

Facebookの保有する”Facebook AI Research”という人工知能研究所から、2016年8月18日にリリースされた人工知能「faxtText」がエンジニアたちの間で注目を集めています。その名の通りとにかく高速の言語学習を実現しているようです。

今まで5日かかっていた処理も、10秒ほどで終わってしまうというのですから驚きですね。今回はfastTextで可能になったことや、内部で行われている処理など、その概要に迫っていいきたいと思います。

fastTextでできること

自然言語処理を行う人工知能はこれまでも多数リリースされており、それぞれが可能な処理は異なります。その中でもとりわけfastTextが注目され得ている理由は「単語のベクトル化」と「文章のクラス分け」を可能にした点にあるでしょう。この2つの処理が、高評価を集めることとなった高速処理を実現しいています。それぞれについて以下でご説明します。

■単語のベクトル化

fastTextはひとつの単語にベクトル(数字の組み合わせ)を割り振り、意味の理解に役立てます。抽象的な定義を数字の組み合わせで表現しているということです。このことにより単語の意味が数字に置き換わるだけではなく、「王様−男+女=女王」といった単語同士の演算が可能となります。これはgoogleが開発したニューラルネットワーク「word2vec」をベースとした技術です。

■文章のクラス分け

Amazonやyelpといったレビューサイトのレビューを、クラスによって分けてくれるようです。つまり、「☆2のレビュー」なら、文章を参照しただけで「☆2である」と判断するということですね。レビューサイトによっては精度が低いときがあるものの、おおむね高精度でデータを出力してくれます。

fastTextの仕組み

fastTextによって可能になった処理については上述しました。実際にfastTextで行われている内部処理はどういったものなのでしょうか。もう少し具体的に突き詰めていきましょう。

■活用系をまとめる

先述した通り、fastTextはGoogleが発表したWord2Vecの延長戦に上にあるものです。Word2Vecも抽象的な単語の意味をベクトルでとらえ、単語同士の距離の理解や演算を行っていましたが、いわゆる「活用形」の部分については考慮されていませんでした。「goes」や「going」に「go」との関連性を見出すことができなかったのです。

一方、fastTextはひとつの単語の活用系までを包括してまとめることができます。つまり、「going」も「goes」も「go」に紐づいて考えることができるということですね。内部処理としては、「go」という要素と「ing」や「es」というように、分散して考慮しています。

■言語部分のモデル

fastTextで採用されている言語モデルは既存のモデルを少し改良したものです。
– CBOW
周辺の単語から、対象の単語の意味を予測するモデルです。表現能力が評価されている一方、精度に関しては不安視する声も少なくありません。
– skip-gram
対象単語からその周辺単語を推測するモデルです。CBOWが行っている処理とは、真逆になります。複数の周辺単語に対してそれぞれ学習を行います。

次のページ:
fastTextの活用事例

 

関連する記事

facebook

案件情報や最新記事をお届けします。
ぜひチェックしてみてください。