ブログではないです

ブログでなくはないです

COLING2016 5日目


Fast Gated Neural Domain Adaptation: Language Model as a Case Study (Jian Zhang, Xiaofeng Wu, Andy Way, Qun Liu)

General-domain / in-domain で訓練したNNの出力(embedding、隠れ層など)がそれぞれある時に一般的なdomain-adaptationの手法としては * concat
* sum
* weighted concat
* weighted sum
などが考えられる。

提案手法のGatied adaptation ではGRUのゲートの調節を両方のベクトルの重み付け和で行い、 ゲートの解放具合によってin-domainのベクトルをgeneral-domainのベクトルを混ぜて用いる、ということをしている。評価は言語モデル

Phrase-based Machine Translation using Multiple Preordering Candidates (http://www.aclweb.org/anthology/C/C16/C16-1134.pdf)

Phrase-based MTで翻訳を行う際には対象言語へのそれぞれの単語の並び替えが発生する。 その際に並び替えのラティスを複数候補用意して、デコード時にはその確信度と合わせて生成を行う。 全体のラティスを一度に用意しているわけではなくて部分的な翻訳結果+パスの確信度を組み合わせていたようだが、その部分が一度聞いただけでは理解しきれなかった・・・。

Direct vs. indirect evaluation of distributional thesauri(Vincent Claveau; Ewa Kijak)

Word embeddingの評価方法についての論文。シンプルな方法としては他の類義語辞書などを使って似た単語のembedding同士が近くなるかを確かめるような方法(Intrinsic)が一般的。それは評価のために参照する単語間の関係が正しいものであるということが前提となっているが、それは必ずしも保証されるようなものではない。そのため、構築したembeddingを使った他のタスクによる評価(Extrinsic)を用いるべきだ、という主張。 実験でintrinsic / extrinsic な評価を色々試して比較している。

Time-Independent and Language-Independent Extraction of Multiword Expressions From Twitter(Nikhil Londhe; Rohini Srihari; Vishrawas Gopalakrishnan)

Twitterのようなコーパスでは"state-of-the-art" みたいに連語ハイフン繋ぎなんてしてくれないしその連語自体も辞書に無いような俗語が頻出する。特に、ハッシュタグとして登録される際に連語がバラけてしまう事が問題となる。こうしたものを検知したい。

手法としては単語の共起と頻度を元にグラフ構造を作り、よく出てくる組み合わせの中でもそれが検知したい連語(例:Hong Kong)なのか、一般的な熟語(例:is about to)のグラフなのかを区別している。下記のハイパーパラメータを元にエッジが張られているか・いないかの閾値を設定して、そのパターンからハッシュタグになりそうかつ連語になっている組み合わせを判別。この辺りの単語のエッジのパターンからどうグラフをバラしていくのか追いきれていない。

グラフの構築に関する以下のハイパーパラメータは普通に結果をプロットしながら探索していた。
• Enrichment parameter η : Determines which vertices in the current neighborhood will be considered
• Word rarity parameter ζ : Determines the level of rarity for a vertex to be considered
• Co-occurrence parameter κ : Determines the co-occurrence probability for an edge to be considered

COLING2016 4日目

今日は午前で終了。


CharNER: Character-Level Named Entity Recognition (Onur Kuru; Ozan Arkan Can; Deniz Yuret)

タイトルの通り、NERをChar-based RNNでやったという話。手法としては各文字をRNNに通す時に、その文字が構成している単語のタグ情報 (PER, ORG, LOC, ...)を文字と一緒に入力してやるというもの。テストの時には同じ単語の中で文字毎にバラバラのタグが出力される事も当然あるが、そこは多数決で決めるとのこと。

スライドでは微妙に分からなかったが、タグを入力として追加する時にどう追加してるんだろう?文字毎に(a_PER, a_ORG) みたいにしてるのか、それともtag-embeddingのようなものを用意して、入力とconcatしているのか。

[Building a Monolingual Parallel Corpus for Text Simplification Using Sentence Similarity Based on Alignment between Word Embeddings](Tomoyuki Kajiwara; Mamoru Komachi)

Poster発表より。 文のsimplificationタスク。ある文とその簡単バージョンを入出力とした翻訳モデルを訓練している。 その際に、input-output間の文の類似度を計算して、それが高いものを訓練に使うという工夫。 文の類似度についてはいくつか手法を比較しているが、良かったのは入力側のそれぞれの単語について出力側から最もembeddingのcos類似度が近いものを集めて平均を取るというもの(Maximum Alignment)。文中単語のembeddingを平均的に比較する(Average Alignment)よりもこのタスクではこっちの方が良かったとのこと。

Automatic Labelling of Topics with Neural Embeddings (Shraey Bhatia; Jey Han Lau; Timothy Baldwin)

文書に対するトピック分類、対象ラベルはWikipediaの記事タイトル。 Wikipedia中のタイトルをword2vec, 本文をdoc2vecでembedding化して入力文書と類似度比較(wordの方はtopic-wordだけ?)して、100候補くらい選出した後にそれを別の手法(いろいろfeatureを変えてSVR使っていた)でリランキング。

トピックに対して分類するというなら階層的・構造的に規定されたラベルである記事カテゴリの方が良いんじゃないだろうか(Wikipediaに記事が存在する単語の数レベルで細かくトピックの種類が欲しい場合ってどういう時だろう?)とも思ったが、既存研究でそうしているので精度比較がしやすいということなのだろう。

COLING2016 3日目

発表が短いので前2日より更に理解が合ってるか怪しめ。。。


Expanding wordnets to new languages with multilingual sense disambiguation [Mihael Arcan, John Philip McCrae and Paul Buitelaar]

面白かった。英語しかないwordnet を他の言語に翻訳する話。ただし単語は複数の意味(synset) を持つため、wordnet上での対応を取るのが大変。 手法としては、対応する言語との間でパラレルコーパスが存在しているという前提の上で 通常の翻訳システムを用いて対象となる単語を含んだ文を翻訳し、alignmentを取って単語単位での翻訳を行うというもの。この際、翻訳元で対象の単語がどのsynsetで使われているか分からないのでWSDも同時に行っている。

コーパス中で殆ど使われないような意味や、そもそも対象言語に単語として存在していないような概念はどうするのだろう?後者についてはwordnetを翻訳したいという話なのだから英語の概念の方に合わせる形になるんだろうか。

Generating Video Description using Sequence-to-sequence Model with Temporal Attention [Natsuda Laokulrat; Sang Phan; Noriki Nishida; Raphael Shu; Yo Ehara; Naoaki Okazaki; Yusuke Miyao; Hideki Nakayama]

ビデオのキャプション生成について。 [Venugopalan+'15] では動画の各フレームをCNNに通して全部まとめて(平均化?)1つのキャプションを生成。 ただ、「オーブンの中にパンを入れた」→「取り出した」みたいに、動画の中ではそれぞれの動作に繋がりがあるので、その順番も使いたい。 やってることは翻訳のattentionモデルを動画の時間軸に対してに対して適用する、ということだと思う。

生成結果を見せていたけど、普通に1動画1キャプションだったのでそのtemporal-attentionがどう効いているのかいまいち。 これはある動画の中でキャプションの切り替わりをする時に活きる話なんじゃなかろうか。

使ってるデータセットメモ
1. microsoft video descreption corpus
2. montrial video annotation dataset

Task-Oriented Intrinsic Evaluation of Semantic Textual Similarity [Nils Reimers; Philip Beyer; Iryna Gurevych]

STS (Semantic Textual Similarity) systemは数多く有るが、そのどれがいいのか、という評価は難しい。 ピアソンの相関係数が一般的だが、大きく外れた値があるとそれに引っ張られがちで今ひとつ信用ならない。 SemEval'12の結果を用いて、異なる2種類の評価指標を用いてシステムを評価した時どの程度順位が変わるかを示している。

筆者の主張としては、そもそもSTSを適用するアプリケーションによってその類似度が異なるのだから用いるべき指標もtask-orientedに決定するべきであり、3つの観点(Cardinality, Set of interest, Information) からどの評価基準を用いるか慎重に選択すべきだ、と述べている。 下図(論文table3より)は筆者が提案する状況毎に用いるべき評価指標。 (Pearson correlation, Spearman rank correlation, normalized (discounted) cumulative gann (nCG/nDCG), F1-scoreやその平均などから選択)

f:id:jack_and_rozz:20161214061005p:plain

memo: 実験に使ったコーパス
1. Wikipedia rewrite corpus
2. related article classification
3. related article retrieval

memo: SemEval'16 の結果を後で確認する, 追いきれなかったので後で論文読む

Exploiting Sentence and Context Representations in Deep Neural Models for Spoken Language Understanding [Lina M. Rojas Barahona; Milica Gasic; Nikola Mrkšić; Pei-Hao Su; Stefan Ultes; Tsung-Hsien Wen; Steve Young]

“i am looking for a moderately priced restaurant in the north part” → inform(area=north,pricerange=moderate)

のように、テキスト+その発話行為の情報(context)からなる連続した会話データに対してある発言をCNN, その発言以前のcontextをLSTMでエンコードしたものの重み付け和を取ってfeatureとして、そのテキストの発話行為の推定をcontextなし・あり・onlyの場合で比較。評価尺度はラベルに対するaccuracyやcross entropy.

自分も気になっていた、テキスト部分はCNNで解釈しているけどLSTMそっちでは使わないの?という質問があり、筆者曰く一方向に単語を巻き込んでいくRNNよりmax-poolingである種の構文木(というかフレーズパターン)をinduce出来るCNNの方が自然だと考えている、とのこと。自分はテキストにCNN使うのはキモくないか派だったのだが他にも結構CNNで文解釈する研究が多くてそんなもんか、という感想。

Asynchronous Parallel Learning for Neural Networks and Structured Models with Dense Features [Xu Sun]

面白かった。NNの訓練の際高速化のために非同期並列に計算したいが、NNのパラメタの多さからRead/Writeに時間がかかるため、かなりの確率でスレッド間で衝突が起こって勾配計算がおかしくなる。しかし実際にはまともに勾配計算出来ている部分とエラーを含んでいる部分が入り混じっており、そのエラー率が一定以内に抑えられるなら学習は収束する、という主張。スレッド数を増やしながら訓練時間と最終的なタスクの精度を比較した結果、精度は変わらず訓練時間が半分くらいになっていた。

Ranking Responses Oriented to Conversational Relevance in Chat-bots [Bowen Wu , Baoxun Wang, Hui Xue]

microsoftの人。一問一答だけではなくその前のやりとりも含めて考えるcontext-awareな対話応答選択モデル。contextはとりあえず1つ前の発話・応答だけに絞っている。
やっていることは
(a) context1,context2, query, response をNNでエンコード 。 queryを元にcontext1,2 に対して attentionする
(b) エンコードした文を時系列順にRNNに通す
の2つの操作でcontext含めた会話全体をvectorに落としている。詳しくは下図参照 (論文fig.2より)
f:id:jack_and_rozz:20161213175121p:plain

モデルの末端では通常のseq2seq的に言語モデルを構築しているのではなく、初めから応答選択に最適化している。 ここlossがどうなってるのか微妙に分かってないけど正解とダミー応答を混ぜて訓練して1/0のラベリングをしているのかな?

Given a sequence representation from conversation modeling, the candidate ranking module takes the full-connected layer to quantify the relevance of candidate responses. We employ the cross entropy as the point-wise ranking loss, and various ranking objective functions can be used to learn the parameters of the whole model.

評価についてはダミー応答を混ぜたテストセットに対して、応答が正解かどうかの分類テストのaccuracyの他に 1 in t P@k という評価尺度を使っていて、正解を1つ含んだt個の応答候補の中からk個選んだ時、正解がその中に入っている割合。 自分の研究でもほとんど同じ尺度で応答選択の評価をしていて、その評価の仕方はどうなの?みたいなことをたまに言われてきたので大手が名前を付けた上で使っていてちょっと嬉しい。

結果は以下の表 (論文 table.1)の通り。 (a) CNN with Attention + (b) GRUの組み合わせが一番良さそう。 f:id:jack_and_rozz:20161213175230p:plain

COLING2016 2日目


Tutorial T-5

Translationese: Between Human and Machine Translation [Shuly Wintner]
スライド

機械翻訳と、Translationese(翻訳された文章の文体含む特徴)についてのお話。 (人手で)翻訳された文章(以下translated, [T])は元々その言語で書かれた文章(original, [O])と比べて語彙のバリエーションに乏しくなる・シンプルで汎用的な表現を好む・句読点や括弧が多くなる、などといった特徴がある。そうした要素に注目した研究。

Text Classification

まずはtranslated / originalの分類タスクについて。 上記で述べたように、translatedではoriginalと比べて文体が独特のものとなるので、その性質を捉えうるようなfeature (文の長さ・content-wordのカウント etc.. ) を列挙して分類し、accuracyで比較している。 結論を言うと、original / translated 間の単語の出現パターン (スライドp37、単語のランクとPMIをプロットしたもの) が結構近い形をしてるにも関わらず、 単語・文字のuni/bi/tri-gramなどを使ったSVMでin-domainの文章に関してはほぼ完璧に解けてしまう。 一方、out-domainの文章に関しては60~70%前後。

また、教師なしの方法についても紹介している。 Function words / (Char or POS) tri-gram などをfeatureとしてクラスタリングした後、そのクラスタ内のテキスト・対象ラベルのテキストを使って言語モデルを訓練し、そのJensen-Shannon divergence (JSD) によって各クラスタがOriginal / Translated のどちらに対応するかを決める、というもの。精度は使うfeatureによって89~96% くらい。

<memo>
INTERFERENCE - 原言語側の性質が翻訳結果のフレーズの現れやすさに影響を及ぼすこと。 例えば英語ードイツ語間の翻訳を考えた時、"one is" は英語で生じやすく、"doch" はドイツ語で生じにくい。 前者については元となるドイツ語側で"Man ist" というそのままの表現が存在するため、一方後者は"doch"という言葉がドイツ語側で様々な使われ方をするので英語側ではこの表現、というような一対一対応を取りにくいから。 翻訳された文章のn-gram特徴量などでcaptureできる、と述べている。

ここから機械翻訳の話。実験はMosesでやったらしい。

Language Models

機械翻訳における言語モデルの工夫。前述した通り、Original / Translated の文体の違いを考えると、言語モデルは対象言語の文章(Original) から構築するよりも、翻訳後の対象言語の文章(Translated)を用いて構築したほうがいいのではないか?という話。ある種のdomain adaptation。 実験の結果、全ての言語についてその方がBLEUスコアが良くなっている。(下図はスライドp79より)

f:id:jack_and_rozz:20161212131310p:plain:w500

Direction Matters

もう1つ面白い実験として、パラレルコーパスを元がどっちの言語だったか、で分けてモデルを訓練して、翻訳の方向性の精度への影響を見ている。 つまり、英語 -> フランス語の翻訳モデルを訓練する際に
(a)英語をフランス語に翻訳したコーパス (b) フランス語を英語に翻訳したコーパス の2種類で訓練したモデルのBLEUを比較する。

まあ当然 (a) の方が良いわけだけども、ではコーパス内の各翻訳対が (a) なのか (b) なのか分かっている場合、単に全部一緒に使う以外にこのコーパスの翻訳方向を考慮してより良い結果を得ることが出来ないか?という話になる。そのための手法として別々にフレーズテーブルを作る、コーパスの翻訳方向をfeatureとしてそのまま渡す、などの手法について実験して比較している。
結局これもdomain adaptationの一種で、ドメインごとに訓練するか・ドメインの違いをfeatureとして与えるかという部分に帰着するのだと思う。

Cross-Classification

Interferenceの例のように原言語側の性質が翻訳後の文体に影響するのだとすると、翻訳前の言語が近い場合翻訳後の文章も近いものになると考えられる。 英語の文章に対するO/T分類タスクの話に戻り、「言語Aから英語に翻訳した文章」の分類を「言語Bから英語に翻訳した文章で訓練した分類器」で行う。 その結果は以下の通り(スライドp94より)で、言語学的に近い言語同士は翻訳後も似たものになる事が確認出来た、という主張をしている。

f:id:jack_and_rozz:20161212131644p:plain:w200

それに加えて、ヨーロッパ系の14の言語から英語に翻訳したものを用いて、それが元々どの言語から翻訳されたかを推定するタスク(精度は76%程度) や、翻訳後の文章に対して階層的クラスタリングを行うと、言語学的に近い言語同士でそこそこまとまるようなツリーが得られた、というような実験も紹介していた。

COLING2016 1日目

内容の簡単なメモ、覚えておきたいこと、感想など。
聞きながら書いてるのでところどころ怪しいかも。


Tutorial T-2 : Chinese Textual Sentiment Analysis: Datasets, Resources and Tools [Lun-Wei Ku and Wei-Fan Chen]

スライド

中国語の評判分析に関する話。講演者が開発しているCSentiPackage内のCopeOpi ・UTCNNというツールで用いた手法とその効果についてが主。

前半はSentiment Analysisの基本的な話。そもそも分析結果をどう表現するのか? ラベル(ポジネガ、sentiment or non-sentiment)にclassificationする、 valence-arousal で表現するなど。
ラベル付けの単位についても。document, passage, sentence, wordと細かくなるほどアノテーションされたラベルは少なく、単語(文字)数も少ないため解析が難しい。

関連研究紹介。昔はSVMでやっていたが,近年はやはりDNN-basedな手法が人気。 attention + LSTMの定番パターンとか、sentence-embeddingを用いるとか。最近のキーワードはこんな感じ。
aspect
・domain adaptation for cross-domain/lingual
・DNN vs linguistic features
fine-grained
・crowdsourcing

その後で本題のCSenti packageについて。 前半はCopeOpiについて、中国語の性質と絡めた分析についての話(segmantationが必要だとかmorphologyの構造だとか)と、各種手法の組み合わせによる精度比較。

後半はCSentiPackageのUTCNN (User Topic Comment Neural Network)というモジュールについての話。この辺りちょっと面白かったので詳しめに。

FBFansというデータセットを用いて、FBの投稿とそれに対するコメント・投稿者やいいねを押した人、コメントをした人がどのような人かなどの情報からラベル推定するというもの。 基本的にはCNNで投稿文の各単語のword-embeddingを適当な単語幅のフィルタにかける。
その際に、Author / Commenter / Liker / Topic (from LDA) など、注目する各ドメインに対して Matrix / Vector でembedding layerを準備する。
その後、投稿の内容であれば「投稿者 + いいねをした人」のembedding(Matrix) それぞれをMax-poolingすることで、その投稿に関する人全体についてマイルドに表すようなembedding(matrix) が構築される。そのmatrixを用いて投稿文中の単語に対して、窓幅Nで word embeddingを変換してCNNのフィルタに通し、あるドメインから見た時の文書の意味表現を構築している。

以下が全体図 。(配布スライドのp87より)

f:id:jack_and_rozz:20161211112400p:plain

色々工程を踏んでいるので複雑になっているが、結局 * 注目するドメインに関して Matrix or Vectorの Embedding Layerを用意
* 複数ドメインが関わる(複数のトピック、複数の人間)場合、Max-poolingして調整
* 投稿文・コメント等の各単語について、ドメインごとのEmbedding(Matrix)に通して変換して分散表現を構築してconcat
* 投稿文だけじゃなく、Embedding(Vector)そのものもついでに最後のfeatureにくっつける

ということを全体としてはやっているように見える。

既存手法との比較とfeatureの有無による結果は以下の表。(スライドp88より) f:id:jack_and_rozz:20161211132758p:plain

domainのembeddingとしての取り入れ方に興味を引かれた。ユーザの違いという陽に与えられるドメインが存在する時に、それをどう取り入るのがベストなのか?vectorのembeddingとして扱って、どこかのレイヤにconcatしてやるべきなのか、matrixとして扱って各単語の畳み込み方を変えるべきなのか。今回はfeatureの比較はしているもののモデルの構造的は上記を全部やってる感じ。個人的にはそこが知りたい。

ただ、そもそものモデルとして画像と違って直接の入力に2次元的な広がりが期待されないテキストにCNNを使う、という部分がどうもやはり馴染めない・・・。複数ドメインのEmbeddingを調整する部分も、max-poolingするというのはCNNを使ったテキスト処理では一般的なのだろうがどうも乱暴に見える。まだaverageした方が良いんじゃないのか?

質問したら、LSTM系列でも恐らくそんなに変わらない性能が出ると考えている。ただ、N-gramに区切ってCNNを使ったほうが訓練が速いので、今はそうしているというようなことを言っていた。


Tutorial T-4 : Quality Estimation for Language Output Applications [Carolina Scarton, Gustavo Henrique Paetzold, and Lucia Specia]

スライド

parsing / translation・summarization(simplification)etc...といったNLPタスクの出力に関する自動評価について、shared taskの結果など参照しながらの話。 NLPタスクにおける出力結果に対してきっちり定まる数値評価が可能な指標、例えば翻訳であればBLEUなどが挙げられるが、そうした指標の下での数値的な改善が必ずしも人間の感覚での改善と一致するとは限らない。しかし逐一人手で評価するにはあまりにコスト高だというジレンマがある。 そのため翻訳・要約などの出力文に対して人間がどう評価するかを予測する事を目標としたタスク。

QATS 2016 shared taskという初のsimplificationに関する自動評価タスクが開催されたらしい。評価は出力されたテキストの5段階評価のregression, もしくは good/ ok/ bad の3段階clasifficationなどで。

自動評価システムのために必要なコンポーネントは以下のように分類される、と述べ、 Sentence, Word, Documentといった異なる長さのテキストに対するアプローチを検討していた。

  1. Definition of quality: what to predict and at what level ( Word/phrase, Sentence , Document , ...)
  2. (Human) labelled data (for quality)
  3. Features
  4. Machine learning algorithm
sentence-level QE

翻訳を始めとして一番主流なNLPタスクの出力結果。 出力の質に対して1~5のラベリングをして、QE結果と人間のラベルとの相関係数を見ている。 モデルとしてはSVMなどのkernel-basedの方法が多い。NN系はデータの少なさからまだなかなか訓練が難しくなる。 といってもPredicting HTER(Human-mediated Translation Edit Rate) @WMT16 の結果では結構RNNとSVMのハイブリッドな手法が上位にちらほら。

word-level QE

一部のアプリケーションではより細かな、例えば文の中で翻訳結果が怪しい場所にハイライトしたい・・・などのような時に単語レベルでQEしたい場合がある。文に比べてよりスパースになるので、当然さらに難しくなる。 出力結果に対してその単語をそのまま出力してよい = OK , 単語の置換 or 挿入が必要 = BAD の2値ラベルを推定して、gold standard とのF1値を比較。

モデルは
* それぞれの単語を独立にclassification
* CRFなどによるsequence labelling
* featureをまとめてNNで
などが考えられる。

Document-level QE

sentence-levelでのQE結果をシンプルに平均を取るなりすればDocument-level QEになるのでは?という考え方もあるが、ある出力文が完璧でも全体として意味の分からない文書になってしまう場合や、その逆などが十分に考えられる。そのため、今回featureとしてはこれまでの単語レベルでの並びやカウントに加えて、談話構造に関する情報(EDUやRSTのrelation)も用いている。

またターゲットととなるラベルについて、文の質の1~5段階などで数値化などといったものは元々主観的な指標であるが、Document-level QEのようにその長さから人手によるラベル付けのコストが大きい場合、よりばらつきが大きくなってしまう。既存研究ではBLEUやMETEORの値を推定する事を目標とすることが多いらしいが、こうした数値は文書全体の良し悪しとは独立に決まる指標であり、文書内の文脈や談話構造といったものを考慮できているかと考えると理想的なものとは言えない。
そのためここでは、出力結果に対する人間の編集率 HTER(Human-mediated Translation Edit Rate) を用いる事を提案している。 ラベルは文脈・編集順序に関わらずその文単体として修正されたものを  PE_1 、他の文との文脈との兼ね合いでさらに修正されたものを PE_2 としている。細かい基準・ラベル付けの手順は不明。

最終的なスコアはスライドによると以下の式。この辺り理解がかなり怪しい。

{ \displaystyle
w_1 ・ PE_1 × MT + w_2 · PE_2 × PE_1
}

MTはHTERの値、 PE_1, PE_2 は文脈に依らない・依る編集があったかどうか(0/1が正解ラベルとして入る?)だと思うのだけどちょっと自信がない部分。 このスコアについての推測値と実際の値の相関係数によって自動評価の精度を評価している。

Why Neural Translations are the Right Length [Xing+, EMNLP'16]

概要

SMTがbrevity penaltyなどを用いて翻訳結果の長さの調整に腐心しているのに対し、 NMTは翻訳に失敗していたとしても比較的長さは入力と同じになりやすい。 その理由を分析するために a, b の2種類のトークンのみを用いて、入力と全く同じ出力を返すようなencoder-decoderモデルを訓練し、 その際のLSTMのセル(4次元)の状態を入力ごとにプロットしている。

結果、明らかに長さに反応して増減しているセルやa, b の数、文頭に連続するaの数に反応するセルなどが確認され、 decoder側での長さに反応しているセルが規定値を取るとEOSの出力確率が激増する、という仕組みになっていると述べている。

次元数1000で実験した翻訳タスクでも同様で、ある入力が与えられたときの長さに影響しうるk個のセルの値を用いて出力文長に対するlogistic回帰を行った所 top-10のセルを用いて 87%~97% の精度が達成できている。

このように、LSTMのモデルの中にはっきりと長さに反応するセルが訓練されることで出力の長さがコントロールされている、という話。

雑感

翻訳タスクかつ単語ベースだと入出力の長さの対応は結構取れている事が多いだろうけど、 他のタスク(要約とか対話とか)や文字ベースの場合そのあたりの話はどうなるのだろう? Controlling Output Length in Neural Encoder-Decoders [Kikuchi+, EMNLP'16] のように他タスクをニューラルで解く際の文長に関する研究が有ることから、結構デフォルトで出力文長に関してちゃんと学習されているかは怪しい。

対話なんかも長い発言に対する応答が必ずしも長いとは限らないし、そもそも文字ベースになると単語では一対一で意味の対応が取れていた部分が全く当てにならなくなる。文字ベース翻訳はあまり試したことないけどdecodeの結果はどうなるのだろう?

Ridge Regression, hubness, and Zero-Shot Learning [Shigeto+, ECML'15]

概要

タイトルの通り、Zero-shot learningにおけるHubness問題の原因の考察とそのシンプルな解決法。 Zero-shot Learningはある事例空間Aからラベル空間Bへの写像を学習し、テスト時には写像後に近傍探索することで画像のラベル付けなどを行う。 ラベル空間そのものに対するマップを学習しているため、訓練データの事例にラベルXに対応するものが存在しない場合でもXがラベル空間上で点を持てば対応 可能である、という利点がある。

Hubness and Pollution: Delving into Cross-Space Mapping for Zero-Shot Learning [Lazaridou+, ACL-IJCNLP '15] でも似たような話があったが、普通にL2正規化を行って対応するラベルとの二乗誤差を最小化するように学習すると、ほとんどの事例が対応するラベル(Hub) が生まれてしまう、という問題。

事例空間を写像した時ラベル空間上では原点中心の何らかの分布になると仮定すると、ラベル空間で定義された点のうち原点付近のものは 事例空間を写像した点の近傍になりやすくなる。(特に高次元ベクトルでは次元の呪いから近傍点と遠傍点との距離の差は大きくなるため、その問題が顕著になる?)

重要なのは以下の2点。

(1) Hubが出現しない、ということは写像後の点  x とラベル空間の2点 y_1 , y_2 ( ||y_1||  \le ||y_2|| ) との距離を考えた時に原点からの距離に関わらず2点が近傍であり得る、つまり距離の2乗の期待値の差 \deltaが小さい事に相応する。また、論文の証明によると \deltaはラベル分布の分散に比例する。

(2) L2正規化を加えて二乗誤差によって写像の最適化を行った場合、写像後の分布の分散は写像前よりも小さくなる。(shrinkage)

筆者はこれらの考えから提案手法として、事例空間をラベル空間に写像するのではなくラベル空間を事例空間に写像する、つまり写像方向を逆にするだけで ラベル空間の分散は小さくなるため、Hubの出現が抑制される、と述べている。

論文:https://arxiv.org/pdf/1507.00825v1.pdf
スライド:http://cl.naist.jp/~yutaro-s/download/Shigeto_NL222_slides.pdf