Open himkt opened 4 years ago
問題設定が難しすぎるので、データスパースネスの観点から解き方を改良した。 系列ラベリングでのConstituency Parsingをどう解くかという問題設定の見直し、多少精度を犠牲にしてでも早くしたいというモチベーションは#33 から変わらず。
https://www.aclweb.org/anthology/N19-1341
NAACL 2019
既存のconstituent parsingは遅いから早くしたい。 また系列ラベリングを用いた手法は 1) ラベルのスパースネス 2) 貪欲的なデコード という問題があり、精度が出ていなかった。 それぞれを解決し、parsingを系列ラベリングで早く解けるようにする。
系列ラベリングによるConstituent Parsingの問題点を分析し、タスクの解き方を考え直した。 絵がわかりやすい。
上のような木を作るために、各単語に(右隣の単語と共通しているルートまでの相対的なノード数、右隣の単語とシェアしている最も近いノードラベル、持っている場合は単項ラベル)の三つ組のラベルをふる。 図中のfindであれば
無理でしょこれ当てるの
ラベルスパースネス ルートまでの距離を表すラベルは、木の深さによってどんどん数字が大きくなってしまう。 absoluteに距離を測るとサブツリーの左側の数字が大きくなり、relativeだと右端の数字が大きくなってしまう(下図)。ラベルとして当てるにはしんどい。
そこで、absoluteとrelativeとの双方を組み合わせて小さい値に収まるようにラベルを調整。
マルチタスク1: スパースネス 既存研究では上記のトリプルをまとめて一つのラベルとしていた(意味不明)。 これだと辛いので、トリプルの各要素を当てに行くマルチタスク学習にした。
マルチタスク2: ブラケットが閉じられない問題、貪欲問題
今見ている単語を含むサブツリーが、どの程度の深さなのかを当てるタスクを組み込むことで、「どこでブラケットを閉じるか」を予測できるようにする。 木を伝って右隣の単語にたどり着くために、どの深さまで戻らないといけないかを表したラベルを新しく導入し、これを当てるように学習。
強化学習ライクな更新規則
いやそれ無理でしょ、という問題設定をそれでもまだちょっと無理でしょ、という問題設定に置き直した。 なんでもかんでも系列ラベリングで解こうとするのやめてくれ、というお気持ち。
Most competitive parsers are slow, however, to the extent that it is prohibitive of downstream applications in large-scale environments とあるが、パーザーのエラーが後段タスクに伝播する方が怖いので、遅くても正確な方が良くない?という気持ち。 リアルタイム処理とかに応用したいという気持ちなんだと思うけど。
Better, Faster, Stronger Sequence Tagging Constituent Parsers