【自然言語処理】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の実装方法を以下の記事にまとめました。

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

Doc2Vecの実装で参考にした記事など

Doc2Vecなど自然言語処理を本格的に学びたい人へ

  • Udemy

1,200円でプロの講師から自然言語処理技術が無期限で学べます。

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

  • キカガク

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

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

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

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

コメント