メタデータとか

FAIR の Piotr Bojanowski, Edouard Grave, Armand Joulin, and Tomas Mikolovの論文.TACLに通ってる.

1行要約: skip-gramの単語ベクトルの作り方を変えたら低頻度語とOOVに対応できるようになった.

実装はfasttextに入ってる.

本題

単語自体にmorphologicalな (語形?) 情報 (1) が含まれる.それをskip-gramに組み込むのがこのモデル.

skip-gramは注目する単語からその周囲に出現する単語を予測するようなNNを学習することで単語ベクトルを得る.このモデルでは,入力側の単語の作り方をskip-gramから少し変える.

どうするかというと,skip-gram における入力ベクトルの計算に、単語に含まれる文字 gram のベクトルを加える.

例えば とする場合, の単語ベクトルは以下で定義される 2

ここで はそれぞれ単語の開始記号と終了記号を表す文字.

これによって -gram さえあれば単語ベクトルが構築できるようになるので,未知語(OOV)や低頻度語の問題に対処できる.欠点としては,学習に時間がかかる(論文では skip-gram の約 1.5 倍かかるとのこと)

この論文のあとに同チームが学習したモデルを157言語くらい配布したり,embeddings の圧縮した論文があったりでいろいろありがたい.

  1. 例えば[~tion: 名詞, ~ed: 過去形, sub~: 部分的] といったものだと思う. 

  2. ここinput.size() で割ってて、ここで subwords 変換前の単語が inputs に追加されている.