ブログではないです

読んだ論文と実験・研究のメモ書き

COLING2016 6日目

Bilingual Autoencoders with Global Descriptors for Modeling Parallel Sentences (Biao Zhang; Deyi Xiong; jinsong su; Hong Duan; Min Zhang)

ある文を多言語で表した時(例:你是谁? <-> "Who are you?") 、それらの文にAutoEncoderを使って構築される分散表現をより近いものにしよう、という研究。そうすることによって、同じく対応し得る別の文と遠くなってしまう欠点はあるが・・・と言っていた。

まずタイトルにある Golobal Descripter とは、単語のembedding列から各次元の min/max/avg/std(standard deviation) をそれぞれ取り出す操作のこと。 提案手法では、AutoEncoder中で自身の min/maxをinputとしてavg/stdを出力とするタスク(もしくはその逆)を学習させている。 どうしてこうすることでAutoEncoderの学習がより良くなると思ったのだろう?よくわかっていない。

この設定のもと、筆者が行った工夫としては以下の2つ。
1. Decoder側のパラメタ(W, b)を言語共通にする
2. 両言語のベクトル空間全体(もしくはバッチ毎)の中心距離を最小化すること

1についてはそうすることで Encodeされた時点で言語共通のパラメタになっていなければいけない、という制約を与えることができ、ついでにDecode側の行列に対して与えられるデータも増える。 2についてはそもそも言語間での文の対応は一対一ではなく多対多なところがあったり、データ中でもきっちり対応関係が有るとは言えないものが大量にあるので文単位では制約として厳しすぎてノイズになってしまう。そのためバッチごとに緩く全体で距離を近づけており、そこも既存研究との違いだと言っている。

最終的な目的関数は以下の通り。 (論文式(10)より)

 E_{ae} がそれぞれの言語でのAutoEncoderの損失、

 E_{sem} が言語間の距離。

f:id:jack_and_rozz:20161216111358p:plain

Joint Embedding of Hierarchical Categories and Entities for Concept Categorization and Dataless Classification (Yuezhang Li, Ronghuo Zheng, Tian Tian, Zhiting Hu, Rahul Iyer, Katia Sycara)

Posterより。 ある単語が属するカテゴリについてもembeddingがあるとクラスタリングや学習の素性として便利なのでどうにかして作ろうというのがモチベーション。既存研究で提案されているCE(Category Embedding)Modelでは、Wikipediaの記事タイトルをTarget word ( e_t), 記事に含まれるentity (同じく記事が存在する単語) をContext word( e_c)とした時、 あるtargetの記事内におけるcontext wordの出現率に加えて、targetの記事カテゴリ( c_i) のもとでののcontext wordが出現する確率の和を最大化している。

f:id:jack_and_rozz:20161216132256p:plain
f:id:jack_and_rozz:20161216132300p:plain

これに加えて、カテゴリの階層的情報も考慮した HCE (Hierarchical Category Embedding) Model が提案手法。 やっていることは目的関数の中でtargetの上位カテゴリについても条件付き確率をそれぞれ計算して、重み付け和を取っているだけ。

f:id:jack_and_rozz:20161216133922p:plain

この重みをどう決めているかというと、target word/context wordのカテゴリは同じくらいの粒度で考えるべき、というアイディアからtarget wordのそれぞれのカテゴリについて、context wordのカテゴリとの階層の差に反比例する形で和が1になるように定義している。(つまりcontext wordについてはカテゴリの階層構造を考えていない?)

Neural Machine Translation with Supervised Attention (Lemao Liu, Masao Utiyama, Andrew Finch and Eiichiro Sumita)

Posterより。NMTでの入力単語へのAttentionは厳密には入力単語に対するものではなく (入力単語 + その時点までの入力の畳み込み) に対するものなので、 PBTモデルにおけるalignmentほどしっかり単語の並びを学習している訳ではない。AERを比較するとGIZA++が30.6%, NMTで50.6%と結構差が有る。 そこで、attentionの部分だけGIZA++の結果に対して教師あり学習してやるというのが提案手法。学習したweightは(おそらく)翻訳モデル全体の訓練の中では更新されない。
実際の翻訳システムでそれやるか?と聞かれるとうーんという感じだけど、NMTの中で最適化されたattentionよりもきっちりword alignmentを外部で学習した方が結果が良くなる、というのは面白かった。

A Character-Aware Encoder for Neural Machine Translation (Zhen Yang, Wei Chen, Feng Wang, Bo Xu)

入力とその前後の文字(窓幅  \tau )を重み付け+concatしてcontext vector  c_iを作り、

Sequence to Backward and Forward Sequences: A Content-Introducing Approach to Generative Short-Text Conversation(Lili Mou; Yiping Song; Rui Yan; Ge Li; Lu Zhang; Zhi Jin)

対話において、入力が十分な情報を持ってない・複数の応答が考えられる・汎用的な応答が単純に多く登場しているなどの理由から何を言っても 'I don't know. ' のような応答が返ってくる、という話は大きな問題となっており、Diversity-promoting objective function [Li+, '16]、Variational encoding the source [Serban+, '16] をはじめとして手法が検討されている。

この研究における手法としては入力文の各単語とのPMI平均が最も高いキーワード(名詞)を先に推定し、その後そのキーワードを起点としてRNNで前後の文を生成するというもので、3種類の生成方法を提案しており、3.のasyn-B/Fが最も自然だと考えている。

  1. sep-B/F:前の文・後ろの文を独立に生成する
  2. syn-B/F:前の文・後ろの文を1単語ずつ同時に生成する
  3. asyn-B/F :後ろ向きに生成した後、その文を入力して続きを前向きに生成する

(下図は論文fig1より) f:id:jack_and_rozz:20161216162549p:plain:w400

データセットについて

Chinese dataset of human conversation crawled from the Baidu Tieba1 forum. We used 500,000 query-reply pairs to train the seq2BF model

評価は人手評価・BLEU・生成文のEntropy平均で行っている。人手評価は0/1/2の3段階(Pointwise)と、純粋なseq2seqと比べてどっちが良いか(Pairwise)結果は下図。(論文table1より) )

f:id:jack_and_rozz:20161216162841p:plain

A Neural Network Approach for Knowledge-Driven Response Generation(Pavlos Vougiouklis; Jonathon Hare; Elena Simperl)