ブログではないです

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

Adversarial Multi-task Learning for Text Classification [Liu+, arXiv'17]

概要

元論文

ACL'17採録予定の論文。Multi-task learningのText classificationタスクへの応用。よくあるMulti-taskもののモデルではhidden layerやembedding layer全体をタスク間で共有する事が多く、そうした際に上手くタスク共有(shared)のパラメータとタスク依存(private)のパラメータを分離して学習できないかという話。

モデル

f:id:jack_and_rozz:20170614170904p:plain:w200f:id:jack_and_rozz:20170614170907p:plain:w200
single-taskでのベースモデルはLSTMを用いた単純な分類モデル。筆者の言う従来のmulti-taskモデル(FS-MTL)が上図 (a), 提案モデルその1 (SP-MTL)が (b).これだけだと最近domain adapationの文脈なんかでもちょくちょく出てきているタスク(ドメイン)非依存の層をMLPなりRNNなりで独立に作ってタスク依存の出力とconcatという単純なモデルだけど,この論文では共有部分にタスク非依存の情報が現れやすくなるように最近流行りのAdversarial Trainingを応用している。最終的な提案モデル(ASP-MTL)は下図。

f:id:jack_and_rozz:20170614172012p:plain:w200

具体的には、このモデルでは目的関数に { \displaystyle  L_{adv} } (eq.13)と {  L_{diff} } (eq.14)が加わっている。
{ \displaystyle  L_{adv} }は「shared-LSTMの出力を使って今どのタスクを解いているのかを識別する」 タスクの損失。しかし、shared-LSTMの出力には当然タスクを識別出来るような情報は含まれて欲しくないので,shared-LSTMは損失を最大化するように,Discriminatorは最小化するようにmin-maxな学習を行う。
良く分からなかった部分としてはGANのようなモデルの場合は実データの分布(画像とか)が存在するためDiscriminatorとGeneratorのそれぞれの訓練時の目的関数は非対称になる。しかし,今回はいわばGeneratorの出力だけを用いて訓練を行なうようなケースであるため普通に交互に学習すると同じ形をした目的関数をそれぞれ逆側に引っ張り合うような状況になってしまうのではないか?と思ったがgradient reversal layer [Ganin+, ‘15] とかいうのを使うらしい。後で読む。

また、{  L_{diff} = \sum^K_{k=1} ||{\textbf{S}^k}^{\mathrm{T}} \textbf{H}^k ||^2_F } はOrthogonality Constraintsと呼ばれており,S, Hはそれぞれshared, private-LSTMからの出力を1列として横に並べたもの。つまり同じ入力に対するshared, privateの出力がどれだけ近くなってるかを損失としている? フロベニウスノルムを使っているのは最適化が楽だから? その辺は[Bousmalis+, ‘16]にあるらしい。。

評価実験

データセットとしてアマゾンの商品に関するレビューのAmazon product review dataset, 映画のレビューに関するIMDB dataset, MR dataset. を用いたポジネガ判定。

比較モデルは MT-CNN [Collobert and Weston, ‘08], MT-DNN [Liu+, ‘15]. 前者は入力として単語IDを変換する部分だけembedding layerを共有したmulti-taskモデル, 後者は読んだこと無いので詳しくは分からないが入力はBOW, 隠れ層を共有した普通のMLPらしい。

結果(tbl.2)としてはやはりsingle-task <= 比較手法 <= FS-MTL <= SP-MTL < ASP-MTL で、特にadversarialな学習とOrthogonality Constraintsの効果が大きい。 各単語ステップごとのポジネガの分析では、例えば 赤ちゃんがよく眠れる〜という文脈で'sleepy' が出てきた時、映画の文脈ではこれはネガティブな単語なのでSP-MTLでは他タスクでの学習結果を引きずってネガティブ寄りに動いてしまうが、ASP-MTLではそれが解決されている (fig.5)。 また、あるタスクのshared-LSTMをn-1個のタスクでpre-trainingして固定した状態で学習させた所、多少劣るものの十分な精度が出ている(tbl.3) ことから十分タスク非依存で汎用的な情報が捉えられていそう。