分散表現ベクトルの説明法

卒業研究や修士研究の発表会で、分散表現ベクトル(埋め込みベクトル)を使った研究を発表するとき、分野外の先生方からいただく難問のひとつが、「そのベクトルにはどういう値が入っていて、どんな意味をもつのか」という質問。

「ベクトルを乱数で初期化して、近い単語を近づける更新を繰り返して自然に出来るベクトルです」と説明しても、なかなか理解してもらえない。ベクトルに良く分からない値が羅列されていて、それを使いますではイカン、まじめにやれ、という話になる(そんなにダイレクトに言う先生はいませんが)。ベクトルの中の数値の持つ意味を解析してキチンと理解しないで、適当に使うとは何事か、研究になっていない、と受け取られてしまうわけです。実際に単語ベクトルの値をじっと見つめても何もわからないので、元来、説明できるものではないのですが、ここは大学なので、使えれば良いという説明は通らないので、なんとか直感的にでも理解していただく必要がある。

とは言え、ベクトルの中身を説明することはできないので、うちの研究室では説明に工夫重ねて、やっと次のような説明で分野外の先生方の理解を得られるようになった。

分散表現ベクトル(埋め込みベクトル)と説明するのではなく、「単語をN次元の超空間中に配置します、このとき、Wikipediaの全部の文章など大量の文書データを参考に、似ている文脈に出てくる単語が同士の距離を近づけ、同じ文脈に出てこない単語同士の距離が遠ざけるような目的関数を設定し、それに従って文書中のすべての単語を超空間に配置したときの各単語の座標を取り出したものが分散表現ベクトル」です、ということで理解してもらえるようになった。

分散表現ベクトルの説明に困っているこの業界の方は、この説明を試してみてください。