こんな夢を見た

修士学生による自然言語処理研究の記録。主にDeep LearningやEmbedding関連論文の軽い自分用まとめとして。内容に誤りが含まれている場合があります。お気軽にご指摘ください。

Weakly Supervised Memory Networks

Weakly Supervised Memory Networks
Sainbayar Sukhbaatar, Arthur Szlam, Jason Weston, Rob Fergus, 2015, arXiv

弱教師あり学習によるMemory Networks。
Memory Networksでは、「記憶→使う記憶を探索→取り出した記憶を活用」の3ステップで問題を解くため、学習時には、探索の教師ラベル(どの文が必要か)と活用の教師ラベル(どの解を出力すべきか)の2つが必要となっていた(元論文では)。前者のラベルがついてあるデータは少ないし手間だし、どうにか後者の普通の解のみのアノテート問題で学習できないか、という論文。

"大きな"変更は3つ。

  1. 多層化(というより一貫化?というイメージ)
  2. 文内の単語順序考慮の新たな方法
  3. 入力文の順序考慮の新たな方法

まず1から。
記憶の探索で証拠文を得るプロセスにおいて、多層NNを利用してごちゃごちゃ情報を混ぜあわせている。ちょっと分かりづらいけどFig.2を参照。具体的には、(元祖Memory Networks流がやっていたように)具体的に証拠文1, 証拠文2, ...のように列挙して一段落した後にそれを解答決定処理の入力にするのではなく、探索ベクトルというより各文への重みベクトルとして順々に足しあわせて重みかけて…を何回か繰り返していってできたベクトルを解答処理の入力とする感じ。

活性化関数抜いて雑に流れを説明する。入力文ベクトルxiからは、行列Cをかけてできた記憶ベクトルmi_Cと行列Aをできたmi_Aをそれぞれ記憶。質問文ベクトルqに行列Bをかけてできた質問ベクトルu1。そのu0にmi_Aをかけると各文の重みp1iをもつ重みベクトルp1ができる。重みベクトルp1によって各記憶ベクトルmi_Cを足しあわせてできた証拠ベクトルo1。そして、証拠ベクトルo1と先の質問ベクトルu1を足して、パワーアップした質問ベクトルu2(もはやなんと呼べばいいのか)が完成。これを繰り返して、本稿ではu3とo3が完成。最後にそれを足して(実質u4)できたベクトルに行列Wをかけて、最終的な解予想ベクトルa'ができる。このa'に最も近い(クロスエントロピー最小)ベクトルaを持つような単語waを解答。

上の過程でのAもBもCも一応(一般化されたモデルとしては)層ごとに別のA1,A2,...と分けて学習することもできるが、学習しんどそうなので本稿ではそれはしていない。また、A=Cとしている。どうなるんだこれは…というごちゃまぜ一般モデル案からの強い制約。ちょっぴり今のはなんだったのか感。一般化されたモデルとしては、AもCも記憶文xiにかけるが、Aは「被探索用」行列、Cは「情報抽出用」行列という感じだ。Bは「探索用」行列かな。

次に2。文内順序のエンコーディング
BOWだと文情報として質が低いので順序考慮したい。なので文内での出現位置で単語の重みがでかくなるような重みづけをしている。それで(単語セットは一緒だけど順番は違う2文の)違いは出るのだろうけど、そんなのでいいのだろうかという疑問は残る式、そして説明不足。さらにベクトルの各次元すらも各次元で謎の変化が起きるようになっている。よくわかりませんでした。

最後に3。入力順序のエンコーディング
QAの中には入力文(event)の順序を考慮せねばならないものもある。例えば、「Tomは公園に行きました。Tomは学校に行きました。」で、「Tomは今どこにいますか?」というようなQA。
入力された順序によってあるベクトルtiを足すような感じ。ti(をくっつけた行列T)は学習するそうな。なお、これもA用(mi_Aに足す用)のT_AとC用のT_Aを作れる(けど本稿では共有)。tiを学習する以上、入力文の数が決まっているような感じがして大丈夫だろうかと思う。2の文内順序エンコーディングのときには文内の相対位置で重み付けしていたのに対して、今度は絶対位置iでの決定的なtiを用いて調整している。これもまた大丈夫だろうかと思う。

実験はTowards AI-Complete Question Answering: A Set of Prerequisite Toy Tasksの20個。
精度は勿論多少は落ちてしまったのだけど、弱教師ありとしてはなかなか頑張ったのではというスコア。ただし決定的に全然解けなくなってしまったタスクもあるように見える。具体的にはbasic inductionがかなり厳しそう。他に悪化が大きいのは3 supporting factや2 argument relations, positional reasoning, path finding。ちょっと不思議に思ったのが、2 argument relationsのスコアが3 argument relationsよりもかなり悪いこと。3の方の問題の癖に上手くフィットしたのだろうか。

なお、論文のFig.1は割と分かりづらい(自分はむしろ混乱した)ので式で理解ができたら無視したほうがいいかも。Fig.2に関しても同様。確率ベクトルと記憶ベクトル(をつなげて行列としたもの)が同じ長方形なのが紛らわしい。

最近更新されたっぽいStanfordの講義スライド -Memory Networks編-を見つけた。

Towards AI-Complete Question Answering: A Set of Prerequisite Toy Tasks

Towards AI-Complete Question Answering: A Set of Prerequisite Toy Tasks
Jason Weston, Antoine Bordes, Sumit Chopra, Tomas Mikolov, 2015, arXiv
bAbI project

AIの言語理解力を試すQAタスクについて細分類して20種のデータセットを作成/公開。そして、Memory Networksの新たな拡張とその実力を実証。
似たようなデータセットは幾つかあるけど、求められる能力ごとに独立したようなデータセットにはなっていなかった。これならちゃんとそれぞれが純粋な能力の実験&分析をしやすいよ。と言っている。それぞれ何文かのstatementsで構成されたストーリーがあって、その後にQuestionsがあるという形。各QuestionにはAnswerとそれを導く手がかりとなるstatementsがアノテートされている。データはBordesら(2010)のsimulated worldから簡素な文法と語彙で自動生成っぽい。どんどんバージョンアップさせていくと言っている。種類も増えるとか(難しいdeduction、inductionとか)。
Winograd Schema Challengeなんかはデータセット外の背景知識が必要なので理解力を試すという点では不適とも言っていて、反面、このデータセットではデータセット内で必要な情報が完結するんです、というようなことを主張している。

以下、20のタスク。

  1. Basic Factoid QA with Single Supporting Fact
  2. Factoid QA with Two Supporting Facts
  3. Factoid QA with Three Supporting Facts
  4. Two Argument Relations: Subject vs. Object
  5. Three Argument Relations
  6. Yes/No questions
  7. Counting @
  8. Lists / Sets @
  9. Simple Negation
  10. Indefinite Knowledge
  11. Basic Coreference
  12. Conjunction
  13. Compound Coreference
  14. Time Manipulation
  15. Basic Deduction
  16. Basic Induction
  17. Positional Reasoning @
  18. Reasoning about Size
  19. Path Finding @
  20. Reasoning about Agent’s Motivations

独立とは言ったもののある程度の難易度の推移性はあって、例えば1<2<3、4<5、11<13はほぼ当然だし、後半の方はYes/Noの問いであれば全て6よりも難しいと言える。
一覧にして見てみれば、なるほど確かにその能力は(知能というからには)欲しいという感じである。これらは個別であれば結構すぐできるのではと思っていると、そのとおりで、実験では大半のタスクが高精度だった。
(training examplesが1000以下で)正解率が95%以下だったタスクは上のリストで@がついている4つのみ。しかも、7Countingと8Lists/Setsはそれぞれ10000, 5000 examplesに増したら届いた。(17,19は10000あっても届かなかった。)

実験はMemory Networksのモデル幾つか、LSTM、N-gramsで各タスクに挑戦。

Memory Networksは前回の論文からさらに拡張されている。元のモデルでの具体的な欠点は以下。

  1. 素性がBag-of-wordsだったので語順考慮できずargument関係把握(4,5)ができない
  2. 3つ以上の記憶を手がかりにすることができない(手がかり数kが固定だった)ため、もっと必要な問い(3,7)に答えられない
  3. RNNを使わないとR(esponce)の出力単語数が固定(1)だったため、複数解答が必要な問い(8,19)に答えられない

それに対してのそれぞれの改善のための拡張は以下。

  1. Non-linear sentence modeling。N-grams、multilinear mapなど、語順を考慮に入れたembeddingにして学習。
  2. memory探索の際に、新たに用意した特別なm'が選ばれるまで探索を続ける。m'は「これが選ばれたら"もう要りません"となる擬似メモリー(文)embedding」で、学習で決定する。
  3. 出力単語決定の際に、上と同様にしてループ&m''が選ばれたら終了。

実験結果としてはMemory Networksが圧勝。設定もまあMemNNに有利だとは言っている(LSTMとかはsupporting factを教師として用いていないため)。上で述べたが多くのタスクでほぼ100%近い精度を出せている。また、全タスクデータを用いて統一的にモデル学習したモデルでも精度はあまり落ちなかったので、変に尖った学習でなくとも解けているっぽい。強いていえば4のTwo argument relationsと19のPath findingでは20%くらいガクッと落ちていた(そこへは特にコメントはなし)。

感想。
個別の分かりやすいタスクに分けられていて、AIへの道を真面目に整備していてよい。大半をさくっと解いてしまったので組み合わせ的な問題を考えていくことになるだろうか。それとももっとノイジーな実データ寄りのデータを作るのかな。
Memory Networks強い。タスク自体はたぶん個々に精度よく出せるモデルは他にもあるだろうけど、ここまでサクッと適用して一般的に解いちゃっているというのがインパクト強い。形がいいのは認めるけどこんなにも上手くいくのか…という驚き。

Memory Networks

Memory Networks
Jason Weston, Sumit Chopra, Antoine Bordes, 2015, ICLR
Facebook - The bAbI project

記憶装置を持ったようなQA向けのフレームワーク
名前から誤解しがちだが、Neural NetworkはあくまでMemory Network内の1つのモジュールであるだけで、話の焦点自体はNNではない。また、NNを使わずともMemory Networksは実現できる(たぶん精度負けるからやられないだろうけど)。
本論文ではNNを利用したモデルを例に説明。
追記(15/6/1): Stanfordの講義スライド -Memory Networks編-。 追記(16/6/1): Stanfordの講義スライド更新。shibataさんコメントありがとうございます。

Memory Networksの要素は5つ。

  1. m: memory。記憶部。各オブジェクトにmjの配列。
  2. I: input feature map。入力変換部。外部からの入力を内部用の素性表現に変換する。
  3. G: generalization。記憶更新部。新たな入力で記憶を更新する。記憶を圧縮したり一般化したりできる。
  4. O: output feature map。内部出力部。新たな入力と今の記憶状態からある値(素性表現等)を出力(取得)する。名前はoutputとなっているが、「どの記憶を使うかを決める」という役割っぽい。
  5. R: responce。応答部。内部出力を実際に求められている形式に変換して出力する(e.g., テキスト、行動)。本論文では、選別された記憶と入力から出力を決定する役割。

そして実際に動かしたモデルの説明。今回は、テキスト処理によるQAモデル。複数の説明文を受け取った後に、1つの質問文を受け取り、それに対して1単語で解答する。以下にまとめる(リスト番号は上と対応していない)。

  1. I。文を順番に入力する。(パーズとか素性表現化とかするタイミングはIかG)
  2. G。それらは記憶部に順に文単位で記録する。(素の文を記録してもいいし、この時点で素性表現を記録してもよい)
  3. I。質問文xを入力する。
  4. O。質問文xに対する関連文をmemoryからk個探索する。
    1. 質問文xを素性化し、それに対する関連スコアs(x,mi)が最大となる文miを決定する。
    2. もし複数(k>1)の関連文を取得する場合は、s'(x,mi,mj)が最大となる文mjを決定する。本稿では最大のk=2。以下繰り返し。
  5. R。文x, mi, mj (, ...)から質問文xに対する答え(e.g., 1単語、生成した文)としての適切度スコアso(x,mi,mj)が最大となる単語wを出力する。

これで訓練データに対して上手くいくように(設定した目的関数を最大化するように)、素性表現化、関連スコア算出、解答適切度スコア算出のためのパラメータ(行列)を学習する。ただし今回の実験では素性表現は単なるBag-of-wordsで固定。

実験は主に2つ。(最後におまけ実験で未知語対応能力を調べている)
1つはFaderら(2013)のQAデータセットでの実験。14Mのstatements(subject, relation, tripletの組)をmemoryに記録してからquestionに解答。Q&Aは35Mペア(WikiAnswerから作成)あるらしい。train-testの分割とかは書かれていないので、たぶんfollow先であるFaderらとかBordesら(2014b)に書かれている。結果は、Faderらに大差で勝ってBordesらにもフルモデルでは勝った(O部の処理で文字列マッチも行うようにしないと僅差敗北)。
2つめはBordesら(2010)考案のsimulated world QAというもの。4人と3物体と5つの部屋でそれぞれが物を持ったり落としたりしながら移動しするような世界に関してQA。行動の文起こしは自動的に単純な文法規則で変換生成。7k statements(文数かシナリオ数かは(本論文では)不明)と3kのquestions。こちらの結果も優秀。問いの難易度(言及先がactor/actor+object、手がかり文までの距離が1/5)も変えると、RNNやLSTMと大きな差がつく(MemNNは変わらずほぼ100%で他は17〜50等)。LSTMとかとの記憶性質の違いが分かる実験。

その他。

  • ヒント記憶の探索をハッシュで効率的にする方法。これがおそらく実用上かなり重要かつ工夫のしがいがあるポイント。今回試されているのは、単語クラスタごとにバケットを用意しておき、文に含む単語のクラスタを求めて該当するバケット全てに文を入れ、関連文探索時にはgiven文の各単語のクラスタのバケットの記憶のみ探索する、という方法。これはかなり効果的で、14Mの文を記憶した上でのQAタスクにおいて精度がほぼ落とさずに速度は80倍になったとのこと。
  • 記憶部への書き込み時刻(入力の時刻)を考慮に入れる方法。素性表現上に時刻を表すような素性(素朴にはmiのインデックスi)を追加して利用するためのあれこれ。
  • 文でなく各単語を順に受け取って(受け取れないような状況で?)適当なsegmentを行って記憶していくモデルもある。複文等に強いのかな。
    未知語への対応について。隣接単語も合わせたBOWのベクトルとして各単語を表現する方法。探索では素性類似度スコアだけでなく単純に単語一致も確認できるようにする方法。

どのmemoryを使うかの探索で着目する粒度と、実際の詳細な処理に用いる粒度の差がとてもいい塩梅に感じる。膨大な記憶から関連記憶のみを取り出してくるステップは(必要だと思うし)無論軽量に行わなければならないだろう。これができるとなったとしても無尽蔵に記憶するわけにはいけないので、このアプローチで行くとすればその選別もかなり重要だ。言い換え認識とかの(新たな?)フィールドだ。

モデルとしては整然としていて拡張性も高い。なかなか精度もいいし期待がかかる。
記憶するものを文そのものではなく知識とかに拡張することも可能なはず。

雑読論文まとめ

  1. Efficient Non-parametric Estimation of Multiple Embeddings per Word in Vector Space
  2. A Fast and Accurate Dependency Parser using Neural Networks
  3. Learning to Distinguish Hypernyms and Co-Hyponyms
  4. Relation Classification via Convolutional Deep Neural Network
  5. Don’t count, predict! A systematic comparison of context-counting vs. context-predicting semantic vectors
  6. Neural Word Embedding as Implicit Matrix Factorization
  7. Retrofitting Word Vectors to Semantic Lexicons

論文紹介されたorスライドを読んだ等+さくっと論文で補完したのみのやつ。

  1. Arvind Neelakantan, Jeevan Shankar, Alexandre Passos, Andrew McCallum, 2014, EMNLP
    word2vecを拡張して、1つの単語に対してsenceごと複数のベクトルを学習させる。ざっくばらんに言うと、ある単語ベクトルを学習するときに、その周りの文脈ベクトルとの類似度が高いようなsenceベクトルを選び、それで学習を行う。各単語のsence数を決め打ちするモデルと、唯一のsenceから始めていってある事例の文脈ベクトルに対して類似度が閾値以下ならば新しいsenceベクトルを作成するようなモデルの2つを提案。まあまあの実験結果っぽい。アイデアは非常に自然。word2vecを多義性に対応するということも絶対すぐやられることだと思うし、この手法もすぐ考えつくものではある。

  2. Danqui Chen, Christopher D. Manning, 2014, EMNLP
    既存のDependency Parsingは職人的な凝った素性がたっぷりで処理が遅いし入力もsparseなので、それを改善すべくembeddingとNNでやったら速度は爆上がりだったし精度もちゃんと肩を並べた。transition-basedモデルというのが流行りらしく、既存もそれで提案もその枠組の中でやっている。NNの入力は普通のword embedding、POSタグ、arcラベル。arcラベルはあまり生きなかった。活性化関数にはシグモイド関数より、cube関数=x3とかいうのを使ったほうが精度がよかった。

  3. Julie Weeds, Daoud Clarke, Jeremy Reffin, David Weir and Bill Keller, 2014, COLING
    分布類似度を捉えた単語ベクトルに対して、SVMを学習させると2単語についてHypernymsなのかとCo-hyponymsなのかがある程度判定できたという話。2つのベクトルに対して、和・差・積・結合等したものを素性とするSVMをそれぞれ学習してみたら、和はCo-Hyponymの判定に効いて、差はHypernymの判定に効いたらしい。(なお、単語ベクトルはword2vecとかCollbertのでなく単語共起のPMIを使ったもの)
    SVMの重みの調整次第で、和モデルと差モデルは結合モデルで表現できてしまうはず(後者は前者2つの一般化)なので、ハマる局所最適解が異なるということだろうか。であれば、このようにシンプルな変更で精度が上がることもあると思うとなかなか面白い。

  4. Daojian Zeng, Kang Liu, Siwei Lai, Guangyou Zhou and Jun Zhao, 2014, COLING 文を与えられたときに素性を得るのに品詞タグ付や構文解析したりするのをやめて、 (Max-Pooled) Convolutional DNNを使う。普通に解析したりするとエラーがどんどん積み重なっていって良くないですよという理由付けは若干腑に落ちないが(CDNNが超頑健なわけでもあるまい)、結果的に既存モデルとかSocherのMVRNNより精度が良くなっているので終良全良な話。SemEval 2010の文内単語間関係認識のタスクでの実験。
    ささっと文内単語のうちの幾つかのword embeddingをつなげて作るLexical level featuresと、凝ったことをしてCNNを通して作るSentence Level Featuresをつなげたものが最終的なfeature vector(そこに1つ行列かけてソフトマックス関数適用して分類)。前者は、単語AとB、それぞれの左右の単語のembeddingをつなげただけのシンプルさ(とりあえず今回のタスクならこれでよさそう)。後者について。まず文内の各単語についてwindow幅だけ周りの単語も結合させたembeddingsをそれぞれ作成する(n-gram embeddingとでも呼べば分かりやすそう)。また、各単語の2つの単語A、Bに対する相対的な位置を求めてそれをembeddingにしたものを作成(v_+1、v_-3とかそれぞれの距離用embeddingsは5次元でランダム初期化から学習する)。この時点で各単語(列)に対してn-gram embと距離 embが割り当てられた行列ができる。これに重み行列を1つかけたものから、(各単語を示す方向ではなく)各要素成分に対してmax poolを適用してベクトルを作成、そこに別の重み行列をかけてtanhで終わり。これでSentence Level Featuresが完成。

  5. Marco Baroni and Georgiana Dinu and German Kruszewski, 2014, ACL
    タイトルでのネタバレが酷い。PMIのような共起カウント+行列分解で作る(count)モデルと、word2vecの(predict)モデルについて、パラメータをあれこれ変えてタスクもあれこれ用意してしっかり調べたという論文。結果から言えば、どのタスクでもword2vecが勝ってしまった。関係ないstate-of-the-artモデルと比べると勝ったり負けたりされど健闘という感じ。またword2vecはパラメータによる性能のブレが比較的少なく、countモデルはその点でも白旗だった(逆にパラメータを上手くすれば匹敵できる時もあった)。ただ、両モデル特性が異なるので組み合わせて使うといいときがありそう。
    論文の最後で投げかけられていた疑問は以下のとおり。
    Do the dimensions of predict models also encode latent semantic domains?
    Do these models afford the same flexibility of count vectors in capturing linguistically rich contexts?
    Does the structure of predict vectors mimic meaningful semantic relations?
    Does all of this even matter, or are we on the cusp of discovering radically new ways to tackle the same problems that have been approached as we just sketched in traditional distributional semantics?

    predictモデルの各次元は潜在的に意味を表しているのか?
    predictモデルは言語的に豊かに文脈を捉えるカウントモデル同様の柔軟性があるのか? predictベクトルの構造は重要な意味関係を模倣しているのか? これらは重要なのか? それとも実際には今までの分布意味論でやってきたアプローチと同様の問題に挑んでいる新しい方法というだけで今はその一部しか見えていないだけなのか?
    どうなのかはわからないけども、この問には、次の6の論文が関連しているはず。
    参考: 小町さんslide高瀬さんslide

  6. Omer Levy and Yoav Goldberg, 2014, NIPS
    word2vecはPMIの行列分解したのと同じだったんだよ!ナンダッテー!論文。
    これだけ言い切ると詐欺っぽい。内容としてはしっかりと証明がなされているよう。あくまで"同じ"なんて言えるのは色々特殊な状況下での話らしい。conclusionでは単なる行列分解じゃなく重み付き行列分解なのではとも言っている。
    参考: 東大 橋本さんNTT数理 白川さんslide

  7. Manaal Faruqui, Jesse Dodge, Sujay K. Jauhar, Chris Dyer, Eduard Hovy, Noah A. Smith, 2015, NAACL (Best student paper)
    predictモデルなりなんなりでベクトルを大量のコーパスからまず作成。それを軸にして外部知識を使って再学習するとよりよいベクトルになった話。
    元のベクトルはGlove、Skip-gram、Global Context vector、Multilingual vector。外部知識はParaphrase DB、WordNet、FrameNet。タスクは単語類似度、TOEFLの同義語選択問題、syntacticアナロジー、素性につかってsentiment analysis。
    学習は、(1)自身の元のベクトルと近く、(2)外部知識上で同義/上位下位/言い換え単語と互いに近くなるように。
    この辺まで見るととても良さそうで、実験しても先行研究よりよくなっている。けども目的関数がちょっと腑に落ちない。見た感じ"単語ベクトル"であって、senceベクトルではないので、遠く離れた2つの意味を持つような単語に関してはかなりベクトルが荒らされるように見える(特に重み付けとかもしていないので)。
    Global Context Vector (Huang et al., 2012) … 局所的な文脈と文書単位の大局的な文脈を組み合わせてRecursive NNで学習。
    Multilingual Vector (Faruqui+, 2014)複数言語でそれぞれベクトル作って正準相関分析を活用して1つの多言語用ベクトルに。
    参考: 高瀬さんslide

Mikolovのword2vec論文3本(2013)まとめ

  1. Linguistic Regularities in Continuous Space Word Representations.
  2. Efficient estimation of word representations in vector space
  3. Distributed representations of words and phrases and their compositionality
  1. Tomas Mikolov, Wen-tau Yih, Geoffrey Zweig, 2013, NAACL
  2. Tomas Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean, 2013, ICLR
  3. Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S Corrado, Jeff Dean, 2013, NIPS

一応ちゃんと読んでおこうと思って改めて3つ読んでみたものの説明の雑さにもやもやは残ったままだ(引用をちゃんと読んでいないからかも)。

  1. まだword2vecは提案していない。既に発表済みのRecurrent Neural Network Language Modelで作られたベクトルについて、実験してみたらよかったですという話。
    アナロジータスクの詳細はこれに載っている。
    syntactic taskではコーパス320M wordsに対して1600次元がベストになっている(他80,320,640も単調増加)。語彙数を他モデルに合わせて半部以下にして次元も80に落として比較実験してみると、nouns以外は他(Collobert&Weston, Mnih&Hinton)に勝った。nounsだけMnihがしっかり勝った。その2つの差は、全体を見るとそこまで大きくない。Mnihらのが良かった理由は学習データでかかったから、という身も蓋もないことを言っているが(37M wordsらしい)、Collobertらの学習データもTurianのものなら多分37Mだし(元のやつなら660M)だと思うので、筋が通らない(そもそも学習データ量の話に帰結してしまってはまともなモデル比較になっていないのでは)。自分の解釈が間違っているのかもしれない。なお、semanticでもまたstate of the artに勝っている。

  2. ここでSkip-gramとC-BOWが登場。モデルの説明がかなり端折られていて厳密性が薄いように見える。このモデルを支えている並列計算とかハフマン木とか使っての高速化(とそれにより可能になる高次元化)をむしろアピールしたいのかも。高次元化するならばコーパスでかくすることによる性能向上がより見込めるので、1.でのデータサイズ云々はこれを見越して、ついついそう結論付けちゃったのかもしれない。
    あとはモデルの各パラメータによる性能比較。アナロジータスクは新しく作られている。文の穴埋め問題ではSkip-gramのベクトルとRNNLMでのベクトルを併用(?)すると性能が一番(Skip-gram, RNNLM, LBLM, LSAよりも)よかったらしい。他の併用モデルはやらなかったのか。

  3. C-BOWの話題はなし。Skip-gram、ハフマン木、ネガティブサンプリング、サブサンプリング、シンプルなフレーズ自動認識、そして実験。 2.よりもSkip-garmの説明は細かい(といっても簡素だが)。
    雑に言ってしまえばハフマン木よりネガティブサンプリングの方が性能がよさそう(サンプリング数は15にしている)。またサブサンプリングはやったほうがまず確実にいいようだ。
    ある程度word2vecに関して耳にしているのならば、たぶんこの論文だけ読むのが一番効率良さそう。
    word2vec Explained: Deriving Mikolov et al.’s Negative-Sampling Word-Embedding Method
    こんな資料を読むのもいいかも。

  1. @inproceedings{mikolov2013linguistic, title={Linguistic Regularities in Continuous Space Word Representations.}, author={Mikolov, Tomas and Yih, Wen-tau and Zweig, Geoffrey}, booktitle={HLT-NAACL}, pages={746--751}, year={2013} }

  2. @article{DBLP:journals/corr/abs-1301-3781, author = {Tomas Mikolov and Kai Chen and Greg Corrado and Jeffrey Dean}, title = {Efficient Estimation of Word Representations in Vector Space}, journal = {CoRR}, volume = {abs/1301.3781}, year = {2013}, url = {http://arxiv.org/abs/1301.3781}, timestamp = {Thu, 07 May 2015 20:02:01 +0200}, biburl = {http://dblp.uni-trier.de/rec/bib/journals/corr/abs-1301-3781}, bibsource = {dblp computer science bibliography, http://dblp.org} }

  3. @incollection{NIPS2013_5021, title = {Distributed Representations of Words and Phrases and their Compositionality}, author = {Mikolov, Tomas and Sutskever, Ilya and Chen, Kai and Corrado, Greg S and Dean, Jeff}, booktitle = {Advances in Neural Information Processing Systems 26}, editor = {C.J.C. Burges and L. Bottou and M. Welling and Z. Ghahramani and K.Q. Weinberger}, pages = {3111--3119}, year = {2013}, publisher = {Curran Associates, Inc.}, url = {http://papers.nips.cc/paper/5021-distributed-representations-of-words-and-phrases-and-their-compositionality.pdf} }