FastText

FastText

FastTextとは

FastText(ファストテキスト)とは、2016年にFacebook AI Research(現Meta AI)が開発した単語埋め込みおよびテキスト分類のためのライブラリです。Word2Vecを拡張し、サブワード(文字n-gram)の情報を活用することで、未知語への対応力を大幅に向上させています。

表:FastTextの要点まとめ
ひとことで言うと単語を文字の並び(部分文字列)に分けて学習する、未知語に強い埋め込み手法。
何がうれしいか学習時に無かった単語でも、文字の組み合わせからベクトルを作れる。
注意点部品を扱うぶんモデルが大きくなり、メモリを多く使う。

サブワードによる学習

FastTextは各単語を文字n-gramに分解し、それぞれのn-gramのベクトルの合計として単語ベクトルを構成します。例えば「apple」は「」などに分解されます。これにより、学習データに含まれない未知語でも、類似するサブワードの情報から合理的なベクトルを推定できます。

図:FastTextが未知語に強い理由
1単語を分解文字N-gramに分ける
▶
2部品ごとに学習「-ing」なども1単位
▶
3部品を足し合わせ単語ベクトルを合成
▶
4未知語も表せる部品が既知なら計算可

形態素が豊富な言語への対応

日本語やドイツ語のように語形変化が豊富な言語では、Word2Vecでは異なる活用形が別の単語として扱われてしまいます。FastTextはサブワード情報を共有することで、活用形の違いに柔軟に対応できます。

テキスト分類機能

FastTextにはテキスト分類の機能も備わっており、高速で軽量な分類器として実用性が高いです。数十億語のテキストでも短時間で学習でき、157言語の事前学習済みベクトルが公開されています。