【自然言語処理】doc2vecとは何か?dmpv, DBOWも解説

【自然言語処理】doc2vecとは何か?dmpv, DBOWも解説



本記事では、doc2vecというものについてまとめてみます。


✓目次

doc2vecとは、word2vecを拡張したもの

doc2vecとは、word2vecを単語レベルではなく、文または文章でも扱えるように拡張したものです。

word2vecって何?何ができるの?という方は、以下の記事を参照いただければと思います。

doc2vecを用いることで何ができるのかというと、文や文章をベクトル化することができます。word2vecを学んだ人向けに言い換えれば、文や文章に対して、分散表現を獲得することができる、ということです。

分散表現とは、単語を200個ほどの実数ベクトルで表現する方法でしたね。

word2vecでは、CBOWとskip-gramという、2つのニューラルネットワークを用いますが、doc2vecでは、下記2つのいずれかのニューラルネットワークが用いられます。

  • dmpv(distributed memory)
  • DBOW(distributed bag-of-words)

以降、dmpv, DBOWについてまとめたいと思います。

dmpv

dmpvは、入力層、中間層、出力層があり、入力層と中間層の間と、中間層と出力層の間に重みを表す行列が存在します。

dmpv概略

word2vecのCBOWに似ているように見えますが、違いは、入力に各単語とは別に、緑色の四角の文書IDがあることです。

文書IDというのは、この図でいうと、「となりのトトロ」という文章に付与されているID(“012”)というものをone-hot表現で表したものを指しています。※ちょっとややこしい。

文書IDを入力層に加えることで、文書自体をベクトルとして表すことが可能となり、文脈を加味した学習が可能となったのです。

図2. one-hot表現の概略

簡単な例で述べましたが、これはあくまでイメージとしてとらえていただければと思います。実際は大量の文章と、文書IDを用いて学習され、dmpvをはじめとする学習モデルが作成されることで、文章のベクトル化がされます。

DBOW

DBOWは、word2vecのskip-gramに似ており、入力は文書IDのone-hot表現のみであるのが特徴です。

該当文章内に含まれる単語を予測するように学習が行われ、dmpvと同様に、文書自体を分散表現で表すことができる。

DBOW概略

dmpvとDBOWの比較

DBOWの方が、シンプルなモデルでメモリをあまり使わないため、高速に計算することが可能と報告されています。しかし、dmpvの方が精度の面で優れているとされています。

[1507.07998] Document Embedding with Paragraph Vectors

Doc2Vecの実装

Doc2Vecの実装方法を以下の記事にまとめました。

こちらの記事も参照して、理解を深めていただければと思います。

参考にした記事など

  • 自然言語処理の学習に役立つ教材

基礎から応用まで、より詳細に自然言語処理を学びたいという方は、以下のUdemy(オンライン学習プラットフォーム)の講座がおすすめです。不定期で頻繁に開催されるセールの時期は、1000円前後で購入できますし、30日間の返金保証もあるため低コストで高度な技術を学ぶことができます。

自然言語処理とチャットボット: AIによる文章生成と会話エンジン開発

  • 本格的にAIを学びたい人へ

以下の何れかに該当する方は、キカガクさんのオンラインスクールがおすすめです。まずは無料のカウンセリングに参加し、自分が目指すキャリアや身に着けたいスキルが学べるか、等確認してみてください無料カウンセリング予約はこちら

・プログラミング初学者(Pythonで機械学習を学びたい方)
・機械学習を学び、キャリアに活かしたい方
・何かAIサービスを企画、開発したい方
・技術を身に着けて転職したい方
・E資格を取得したい方



  • Aidemyのプレミアムプランもオススメ

AIを学ぶならアイデミープレミアムプラン

コメント