paragraph2vecの論文 要訳 (Distributed Representations of Sentences and Documents)

原文: [Distributed Representations of Sentences and Documents](https://arxiv.org/pdf/1405.4053v2.pdf)

# 要訳者からのお知らせ

* この要訳は[TSG](http://tsg.ne.jp/)の機械学習分科会での発表のために作られたものです。
* 雑に内容を理解するためのまとめであり、正確な内容を保証するものではありません。
* 致命的なミスはコメントか編集リクエストでお知らせください

# Abstract

* 機械学習するには入力を固定長のベクトルにする必要がある
* 既存手法で一番popularなのはbag-of-words
* だけどBOWはクソ
    * 順序の情報が失われる
    * 単語間のセマンティクスが失われる
* なので Paragraph Vector を提案する
    * 教師なし学習で任意長のテキストから固定長のベクトルを生成する
    * 文・段落・文書のレベルで適用可能
* Paragraph Vector から文書中に出現する単語を予測できるように学習する
* BOWの欠点を乗り越える潜在能力がある
* ResultsはBOWその他のアルゴリズムを上回る結果を示している
* テキスト分類やセンチメント分析などでstate-of-the-artな結果を得られる

# Introduction

* 機械学習するには入力を固定長のベクトルにする必要がある
* 既存手法で一番commonなのはBOWかbag-of-n-grams
    * 「驚くべき精度(surprising accuracy)を持っている」
* だがBOWはクソ
    * 順序の情報が失われる
        * bag-of-n-gramsは若干考慮するが、スパース性と次元の高さに問題がある
    * 単語間のセマンティクスが失われる
        * すべての単語が等間隔に扱われる
        * “powerful” は “Paris” よりも “strong” に近くなくてはいけない
* なので Paragraph Vector を提案する
    * 教師なし学習で任意長のテキストから固定長のベクトルを生成する
    * Paragraph Vector という名前だが文・段落・文書のレベルで適用可能
* Paragraph Vector から文書中に出現する単語を予測できるように学習する
    * Word Vector から Paragraph Vector を構成し、次に出現する単語を宛てられるようにする。
    * Paragraph Vector は Word Vector を修正し、収束するまで新たな Paragraph Vector を学習し続けることによって推測される
* Word Vector に関する先行研究 (省略)
* Paragraph Vector に関する先行研究
    * Word Vector の重み付き平均をとったり
        * 順序情報が失われる
    * 文構造に従って Word Vector をcombineしたり
        * パースが必要
* 既存の研究との違い
    * 文・段落・文書まであらゆるレベルで適用可能
    * task-specific tuning が不要
    * センチメント分析では error rate で16%の改善
    * 文書分類ではBOWとくらべて30%の改善

# Algorithms

* 既存手法の紹介

## Learning Vector Representation of Words

* word2vecのおさらい
    * CBOW
    * hierarchical softmax
    * 確率的勾配降下法と誤差逆伝播法
    * ベクトルの加法構成性
    * 異なる言語間の単語空間の線形写像の構成性
* みんな知ってるね

## Paragraph Vector: A distributed memory model

* Paragraph Vector はword2vecの「ベクトル表現から次の単語を予測するように学習する」というアイディアを採用
* 単語ともに段落も固有のIDによって行列Dによってベクトルに写像される
    * すなわち、1つの段落が1つのベクトルを持つ
    * 段落ベクトルといくつかの単語ベクトルを平均もしくは結合(concatenate)し、context中の次の単語を当てるように学習する
* 段落ベクトルは、現在のcontextから欠落した意味情報や段落のtopicを記憶していると考えられる
    * ゆえにこのモデルを Distributed Memory Model of Paragraph Vectors (PV-DM) と呼ぶ。
* contextは固定長であり段落中の移動窓 (a sliding window) からsampleされる
    * 段落ベクトルは段落固有であり同じ段落から生成されたcontextの間で共有される
    * 単語ベクトルは全ての学習で共有される
* これらのベクトルは確率的勾配降下法および誤差逆伝播法によって学習される
* 未知の段落に対してベクトルを推定するときは、単語ベクトルとsoftmaxの重みを固定し、学習時と同じ要領で段落ベクトルを推定する
* 計算量の話 (省略)
* 学習したベクトルは段落の素性ベクトルとして様々な用途に使用できる
    * ロジスティック回帰とか
    * SVMとか
    * K-meansとか
* Paragraph Vector の利点
    * 教師なし学習
    * 単語間のセマンティクスを考慮
    * 語順を考慮
        * bag-of-n-grams と比べて次元数が格段に低くて済む

## Paragraph Vector without word ordering: Distributed bag of words

* もう一つの手法
    * 段落ベクトルから、段落からランダムにサンプルされた単語を予測させる
    * これはランダムにサンプルされた単語を段落ベクトルから予測する分類タスク (classification task) を意味する
    * これを PV-DM と対比して Distributed Bag of Words version of Paragraph Vector (PV-DBOW) と呼ぶ
* このモデルはシンプルなだけでなく、データ容量も削減できる
    * PV-DM が単語ベクトルとsoftmaxの重みを記録しなければいけないのに対して、PV-DBOW はsoftmaxの重みだけで十分
    * word2vecのSkip-gramモデルに相当
* 以降の実験では PV-DM で学習したベクトルと PV-DBOW で学習したベクトルの2つを結合(combination)したものを用いた
    * 多くのタスクでは PV-DM で十分だが、PV-DBOW と組み合わせることによってより安定(consistent)する

# Experiments

* 固定ベクトル表現を要する2つの文意理解タスクで実験した
    * センチメント分析
    * 情報抽出

## Sentiment Analysis with the Stanford Sentiment Treebank Dataset

* データセット
    * 映画レビューから取得した11855個の文章
    * ネガティブかポジティブかで0.0から1.0のラベルが付されている
* タスクと基準値 (省略)
* Experimental protocols (省略)
* 結果
    * bag-of-words と bag-of-n-grams はクソ
    * 単語ベクトルの単純な平均も同じ
        * 語順を考慮しないので皮肉(sarcasm)などの複雑な言語現象を認識できない
    * 文章構造のパースを要するRNNは少しマシ
    * Paragraph Vector はそれよりスゴい
        * しかもパースを必要としない

## Beyond One Sentence: Sentiment Analysis with IMDB dataset

* 先行手法のいくつかは文にしか適用できない
* Paragraph Vector は文構造のパースを要しないので、複数文にも適用可能
* データセット
    * IMDBから抽出した100000の映画レビュー
    * ポジティブかネガティブかの2値のラベルが付されている
* Experimental protocols (省略)
* 結果
    * bag-of-words が好成績
    * Dahl et al, 2012 が制限付きボルツマンマシンと bag-of-words を用いて1.5%改善
    * Wang & Manning, 2012 がbigramの素性を用いたナイーブベイズSVMでさらに2%
    * Paragraph Vector はこの中で10%の壁をsignificantに超えた唯一の手法

## Information Retrieval with Paragraph Vectors

* 省略

## Some further observations

* 省略

# Related Work

* 省略

# Discussion

* Paragraph Vector によって、state-of-the-art な手法に劣らないテキスト分類精度を得ることができた
    * これは Paragraph Vector が段落のsemanticsを捕捉するのに長けているといえる
* この手法はテキストの表現手法にフォーカスを当てたが、任意の連続データの表現の学習にも応用可能だろう