ブログではないです

ブログでなくはないです

Out-of-Domain Detection for Low-Resource Text Classification Tasks [Tan+, EMNLP' 19]

https://www.aclweb.org/anthology/D19-1364.pdf

概要

分類問題,例えば発話のintent classificationなどのモデルにおいて, 学習時に用いた出力ラベルセット中に含まれない Out-of-domain (OOD) example がテスト時には入力される事が考えられ,そうしたexampleの検出・拒否が必須になる (元論文table1) .しかし現実的に入手可能な正例(出力ラベルセットに含まれる例)の少なさと,負例が無限に存在しうることから,適当にOOD exampleを集めてきて in-/out-domainの二値分類機を訓練するのはうまく行かないのでどうにかしよう,という話.

提案手法

設定としては,in-domainの入力テキスト { \displaystyle x^{in} }, out-domainの入力テキスト { \displaystyle x^{out} }, そして { \displaystyle x^{in} } に対するラベル { \displaystyle S^{in}} が与えられた上で,入力テキストをエンコードしたベクトルと各ラベルを表すベクトルのコサイン類似度 { \displaystyle F (x, S)} を計算する.この類似度が適当に決めた閾値よりも大きければそのラベルへ割当て,どれとも近くなければOOD exampleであるとして検出を行う. この際,通常であれば出力層のようなstaticな行列(≒各ラベルの埋め込み列)を用意して分類モデルにするところだが,提案手法ではそのラベルに属する全入力テキストをエンコードして平均したものをそのラベルのベクトルとする(Prototypical Network というらしい).つまり,学習されるパラメータは入力テキストのエンコーダのみとなる.

その上で,以下の3種類の損失の重み付け和を最小化する(α,β,M1, M2はハイパーパラメータ).

f:id:jack_and_rozz:20200515162543p:plain:w230
f:id:jack_and_rozz:20200515162554p:plain:w260
f:id:jack_and_rozz:20200515162546p:plain:w230

(1) は正例を対応するラベルに近づける cross-entropy loss, (2) は負例 (OOD) をラベルから遠ざけるmargin loss. (3)は正例とラベルとの類似度のスケールが低くなりすぎないようにする margin loss.これが無いと(2)の学習の結果, 正例でも類似度が全体的に低くなって閾値以下になってしまうだろう…とのこと((2)と(3)だけでいいんじゃないか?という気もする).

雑感

取り組んでる問題は面白く感じるのだが,そのアプローチが効果的な対策になってるのか?という部分がまだピンと来ない.特にPrototypical Networkにinspireされたと筆者は述べているが,自分の感覚ではPrototypical Networkの利点は学習時に存在しないラベルでも後からテキストをエンコードするだけで擬似的なラベルの埋め込みを作れるという部分であって,今回のようにIn-domain exampleについては各ラベルごとに訓練データが存在するという状況では,普通にjointでラベル埋め込みを学習して,それとの距離が遠くなるように最適化しても変わらないのでは?と感じる.

また,実際 in-/out-domainの二値分類器を学習すると何が起こるかを想像するに,学習時に使われなかったタイプのOOD exampleが入力された時に判別が困難となると考えられるが,それをsoftmaxの最大値を使うのではなくベクトル同士のcos類似度を用いて閾値に掛けることで改善できる,という理由が理解しきれていない.人間がこのタスクを試みる場合,特定ラベルへの確信度が高くない場合OOD,というルールに暗黙のうちに従っていると考えられるわけで,重要なのは距離学習的なアプローチを取ることではなく閾値を使ってvalidateすることなのでは?