paragrach vectorに関して個人用に雑にまとめる

前置き

数週間前くらいちょっと話題になってた、Distributed Representations of Sentences and Documents (paragraph vectorってやつ)軽く読んでみた
非リアなので土日暇だから読んでみたけど個人的はそこまで刺さらなかったので、わりかし雑な理解しかしてない
2.Algorithmsの部分しか読んでないのであしからず

あと、word2vec やら、その元の 論文 やらは前提になってるっぽいが、その辺の知識は皆無である
故に間違ってる部分も多々あると思われるのでこの記事を見た人はあまり信用しないほうがいい

それと、基本的に私は英語が読めないのもあって結構間違って読んでる部分も多いかもしれない

なにかあればコメントで指摘いただけると修正するかもしれない(めんどくさがって放置する可能性も否定できない)

論文中にもそんなにないから数式はあまり使わない予定なのでその辺は安心してね☆
(MathJaxのモジュールを追加したのにうまく動かなかったなんて言えない。。。)

というわけで本題

word vectorとかの話

さて、前置きにword vectorのことわからんとか書いたが、前提知識として必要なので 結構しっかり触れてある

文章中の単語の並びも使うので、bag of wordsより俺TUEEEE!って話はAbstractやらIntroductionやらで触れているのだが、じゃあ何をするんだって話

例えば「ミク/さん/マジ」があったとき次に「天使」がくることを予測する
という話

文章中にその単語が確率をsoftmax関数を使って求める
文章全体での確率の積(対数の和)をとったきの値を最大化するように学習するようだ

実際には確率計算際に範囲kがあったり、1/Tで割ってたりする

softmaxでexpの中に入る関数はyは
y = b + Uh(w; W)
でbとUを学習で求めるようだ

Wは文書単語行列的なもの?っぽい
every word in mapped to a uqiue vecotr, represented by column in a matrix W.
と書いてあるのでたぶんそんな感じ

hに関しては具体的な数式は記載されていないが、 concatenation or averageとのことなので、その辺の計算しとけばいいんじゃないかな(適当)
あとsoftmaxじゃなくてhierarchical softmax使ったほうが早いよとか書いてある

学習はニューラルネットSGDつかって学習しろとさ

似た単語が空間上の近い位置に配置されて、そうじゃない場合は遠い位置に配置されるらしい

まぁ、この辺はもっと詳しい人たくさんいると思うんでそういう感じの人に聞いてください
この辺の記事とかみるといいのかも

んで、paragraph vectorって?

下記は論文中の図を引用させてもらった。

f:id:test1025:20140531225027p:plain

簡単に言うと図にあるように、
各単語だけではなく、パラグラフをそのままぶち込んだものも学習させてしまうようだ

すべてのパラグラフをmaxrixにいれて覚えておくことでそのなかでの
単語のコンテキストやトピックを失わないとのこと
PV-DM(Distributed Memory Model of Paragraph Vecotors)と呼ぶらしい

固定長の幅でパラグラフの長さを決めてスライドさせながら見ていけば
おなじコンテキストではおなじパラグラフを共有するけど、違う物には出てこないよね
んで、単語はかぶることもあるよね
ってことらしい

すでにわかってるparagraph matrixに対してはword vectorと一緒に同じ方法で計算しちゃって、
未知のパラグラフがきたらword vectorのパラメータを固定した状態で学習させるらしい

学習させた物は他のアルゴリズムの素性として使えるよ
とのこと

paragraph vectorの俺TUEEE!な所は他の手法ではラベル付けに十分なサイズの正解データが無くても
なんとかしてくれるらしい
n-gram modelより強いぜとかって話がアドバンテージとして書いてある

bag of wordsの生成

的なことも出来るっぽいことが書いてある
この辺ちゃんと読んでないです。ごめんなさい

その他

たぶんだいたいあってない気がする上にわかりづらく適当な説明になってますね。ごめんなさい・・・
まぁ、個人的メモなのでその辺はご愛嬌ということで

あと、3.Experiments以降を全く読んでないんで精度とかその辺のことはわかりません

面白そうだったら実装とかもしてみようかと思ったけど、個人的にそこまで刺さらなかったのでたぶんしないです

to 自分: はてなダイアリーから移住してきて最初の記事で数式がどうしていいかわからなかったのでその辺ちゃんと調べとくこと