Doc2Vecとは何でしょうか? Word2Vecとの違いは何でしょうか? またDoc2Vecで何ができるのでしょうか?
Doc2Vecとは?
文章をベクトル化することができます。それによって文章の分散表現を獲得します。単語単位でベクトル化するのにはWord2Vecというものがありますが、文章単位でベクトル化するものがDoc2Vecになります。
- Word2Vec: 単語をベクトル化するもの
- Doc2Vec: 文章をベクトル化するもの
従来はTF-IDF、BoW等の手法がありましたが、Doc2Vecではそれらよりも圧倒的にパフォーマンスのよい結果が得られます。Doc2Vecと従来手法の大きな違いは文書の語順を意識して、文章全体をベクトル化することができます。
特定の自然言語処理タスクに依存しないため、アイデア次第で応用事例が多いのも特徴です。
できること
- 文書分類、文章分類
- 感情分析
- レコメンド
- など
メリット
Doc2Vecでは教師あり(ラベル付き)データを必要としません。学習には大量のデータが必要になりますので、ラベル付けが必要ないというのは大きなメリットですね。
ただし、ラベルが無いということは出力結果が正解かどうかは定性的に判断するしかありません。定量的な評価が必要な場合は、ラベル付きデータが必要となります。
Doc2Vecの仕組み
Doc2Vecでは2つの仕組みが利用されています。
- PV-DM(Distributed Memory)
- PV-DBOW(Distributed Bag of Words)
PV-DM(Distributed Memory)
PV-DBOWと比較してパラメータの数が多く複雑となります。その分メモリ消費量も多いようです。出力結果の精度は良い傾向にありますが、実行時間も比較的長くなります。
Word2VecではCBOWと似たようなタイプの仕組みになります。PV-DMではドキュメントIDも付与しています。
PV-DBOW(Distributed Bag of Words)
PV-DBOWのほうは、Word2VecでいうところのSkip-gramと似たタイプとなります。CBOWと違ってある単語からその周辺の単語を推測します。
特徴としては文書IDのみを入力としています。単語ベクトルを入力とする必要がないため、PV-DMと比較して実行時間が短くなります。その分精度は悪くなる傾向にあります。
コメント