単語の分散表現は現在の自然言語処理では不可欠な技術です。ニューラルネットワークベースのモデルで自然言語処理の問題を解く際は、入力としてよく使われています。最近ではElmoのような言語モデルと組み合わせて使うことでタスクの性能向上をはかっています。
単語分散表現はよく使われていますが、その次元数をどのくらいの値に設定すればよいかは自明ではありません。おそらく、ほとんどの場合に50次元〜300次元程度の値を設定しているのではないでしょうか?
本記事では、単語分散表現の最適な次元数について論じた以下の論文について紹介します。結論としては、単語分散表現の最適な次元数はタスクに依存するのですが、固有表現認識のような構文が重要なタスクでは次元数が低いほうが良い結果になります。
記事の構成としては、最初に論文の概要について簡単に述べ、そのあと最適な次元数について述べることにします。
論文の概要
論文について一言でいうと、単語分散表現を学習できるモデルの一つであるskip-gramの学習に異なるタイプの文脈を使って学習・評価を行ったという話です。モチベーションとしては、様々な文脈を使って学習したモデルの性能について調査した研究がないというところにあります。Skip-gramについては以下を参照。
実際に検証しているのは3つのタイプの文脈を使って、次元数を変化させた時の単語分散表現の性能を評価しています。性能については、大きく分けて以下の2通りで評価しています。
- 内省的評価
- 外省的評価
内省的評価と言うのは、単語分散表現の性能を直接評価する方法のことを指しています。たとえば、人間が判断した単語類似度と分散表現による単語類似度の相関によって性能を評価します。要するに、人間の評価に近い評価をできるようになれば良い分散表現に違いないということです。評価用データセットとしてはWordSim353やSimLex999がよく使われています。
外省的評価と言うのは、実際のタスクに単語分散表現を使って評価する方法のことを指しています。たとえば、文書分類の入力に単語分散表現AとBを使って、文書分類の性能によって単語分散表現の優劣を比較するということが行われます。このメリットは、実際のタスクにどれだけ役に立つのかがわかるということが挙げられます。デメリットとしては、評価に時間がかかることが挙げられます。
論文では外省的評価の対象タスクとして、以下の4つを使っています。
- 構文解析(PARSE)
- 固有表現認識(NER)
- 共参照解決(COREF)
- 評価分析(SENTI)
最適な次元数
内省的評価の結果は以下の図で表されます。内省的評価では特定の文脈と高次元の分散表現を好む傾向があります。全体的には文脈としては通常使われるウィンドウベースのものと依存関係ベースのものが性能が良い傾向にあり、次元数は高いほど性能が良い傾向があります。
外省的評価の結果は以下の通りです。外省的評価では内省的評価と違って高次元の分散表現が良いとは一概には言えない結果となっています。固有表現認識では次元数が低い方が性能が良い傾向があり、評価分析では次元数が高いほうが性能が良い傾向があります。
PARSEやCOREFは次元数に関してはなんとも言えない結果になっています。しかし、PARSEについては分散表現のタイプ的には面白い結果になっています。それは、PARSEではトピック的類似度(e.g. lion:zoo)より機能的類似度(e.g. lion:cat)を重視した分散表現が良い結果となっている点です。したがって、PARSEでウィンドウベースの分散表現を使う場合はウィンドウサイズを狭くしたほうが良いでしょう。
これらの結果はあくまでもskip-gramを使って分散表現を学習し、かつある分類器で分類した結果であることに注意する必要があります。しかし、単語分散表現の次元数を決める際の1つの指針にはなるのではないかと思います。
おわりに
単語分散表現は自然言語処理では不可欠な技術です。単語分散表現の次元数をどのくらいの値に設定すればよいかは自明ではありません。本記事では単語分散表現の最適な次元数について述べた論文を紹介しました。本記事が皆様のお役に立てば幸いです。
私のTwitterアカウントでも機械学習や自然言語処理に関する情報をつぶやいています。
@Hironsan
この分野にご興味のある方のフォローをお待ちしています。