研究室で論文紹介したので以下に資料を貼っておきます。
図表は論文中から引用しています
何故か研究室での論文紹介は、資料が英語で口頭説明が日本語なので、以下では日本語の説明を加えました。
英語が間違っている部分があると思いますが、コメントで指摘なりスルーするなりしてください。
スライドはこうした方がいいとかもあったらぜひ。
論文紹介
概要
中国語の単語分割がこの論文のタスク。
中国語や日本語などの言語では、単語の区切りに空白を入れていないため、文字列を単語に分解する処理が必要になる。
これらのタスクでは人手による教師ありデータが必要になることが多いが、そのようなデータの構築や更新には大きなコストがかかる
この研究ではWebテキストに付与されているリンクやフォント、色などの構造的な情報を"natural annotation"、自然なアノーテーション(教師情報)とみなして、通常の教師ありデータに加えてそれらの情報を利用して学習を行う
Webテキストはリアルタイム性が高く、様々な分野の情報を含むコーパス(テキストデータの集まり)としてみなすことができ、これを訓練に使うことで分類器を最新の情報や他のドメインに適応できるようになることが期待できる
手法
ベースとなる単語分割のやり方
それぞれの文字について、以下の4種類のラベルに分類していきます
- 単語の最初
- 単語の真ん中
- 単語の末尾
- 1文字の単語
スコア関数は次のようになって各文字ごとの和になっています。
これはViterbiアルゴリズムによって最大のスコアを持つラベル系列が計算できます
以下のスライド中の簡単な例のように、\(i\)番目の文字のスコアは\(i-1\)番目のスコアを利用して動的計画法で順番に求められます
先ほどのスコア関数に含まれていたパラメータベクトルはパーセプトロンによって学習します
これはいわゆる二値分類に使う単純なパーセプトロンとはすこし違っていて、構造化パーセプトロンという構造のある出力を学習することができるモデルになっています
構造化パーセプトロンの説明は以下のスライドがわかりやすくておすすめです
構造化パーセプトロンのアルゴリズムは以下スライドで線を引いた部分が主な部分になっています
現在のパーセプトロンから最大のスコアのラベルを求めている(分類している)と、現在の分類結果と正解ラベルが異なる場合に特徴ベクトルの差をパラメータに足してアップデートしているのがわかれば十分だと思います
特徴ベクトルには周囲の文字や、文字種の情報を使っています
"natural annotation"を利用する方法
"natural annotation"(リンクなど)による境界は必ず単語の境界であるという仮定をおきます
この情報をデコードするときの制約として利用します
ただし"natural annotation"だけでは他の部分がどうなっているのかわかりません
そこで教師ありデータで学習したモデルを利用して、制約なしのデコードをした場合と、制約ありのデコードをした場合との結果の差をパーセプトロンの訓練に利用します
制約の有無によるスコアの差が大きいほどより重要な訓練データと考えられます
またこの"natural annotation"を使った手法はドメイン適応などにも利用できると書かれています
実験
データセット
教師ありのコーパスとしてChinese Penn Treebank 5.0を、"natural annotation"がついたコーパスとしてWikipediaを利用しています
また異なるドメインのデータセットもテスト用に使っています
評価尺度
F値で評価しています
結果
様々な数の"natural annotation"のついた文を追加した場合のF値の変化は以下のようになっていて、文を増やし続ければ上がるというわけではありませんでした
以下のようにEnhancedの方では多くのドメインで改善が見られています
先行研究(ただしChinese Penn Treebank 5.0を使ったもの)との比較でもよい結果が得られています
というわけで人手による教師ありデータと比べて簡単に手に入る"natural annotation"を利用することでよい結果が得られました
研究室での論文紹介後には「こういう部分的なアノーテーションを使った話はよくあるのではないか?」という質問をされました
そう言われるとありそうですけど、どうなんでしょうね……
ちなみに詳細は把握していませんが、日本語でもKyTeaが部分的なアノーテーションからの学習を採用していたような気がします