ジャストシステムの形態素解析技術 その2 機械学習編

Preview:

Citation preview

JustTechTalk #02

ジャストシステムの形態素解析技術その2

(機械学習編)

内田佳孝

CPS 事業部開発部 NLP チーム 2003 年入社、 12 年目

関わってきた技術 形態素解析、かな漢字変換、情報検索、情報抽出、

   レコメンド、 etc

関わってきた商品 JMAT 、 ATOK 、 ConceptBase 、 BONNE 、   Listing Auto-Flight 、ピタジョブ、 etc

自己紹介

2

3

ATOK 、 ConceptBase で培ったノウハウと機械学習を融合した日本語解析エンジン

JustSystems Morphological Analysis Technology” ジャストシステムの形態素解析技術”

その1の復習

4

辞書追加 >>>>>> 新しい学習手法

5

新規手法開発より辞書

詳細は SlideShare に公開中の前回の資料をご覧ください

今回のテーマは学習手法

6

7

辞書

データ構造

学習手法

日本語(人手)

知識

便利モジュール

前回のテーマ 今回のテーマ

形態素解析の問題設定

8

教師あり形態素解析 辞書と教師データ(学習コーパス)が必要 精度は高いが辞書と教師データの整備が大変 JMAT はこちら

教師なし形態素解析 辞書と教師データ不要 まだ研究段階 半教師あり学習という考え方も存在

教師ありと教師なし

9

10

教師あり形態素解析

入力文字列中に含まれうる全単語を辞書を使って

列挙しグラフ構造(ラティス構造)を作成

もっともコストが小さい経路を探索

2つのコストの総和が最小の経路を求める 単語生起コスト 連接コスト

コスト推定方法 人手 → JUMAN HMM (隠れマルコフモデル) → ChaSen CRF (条件付き確率場)→ MeCab 、 JMAT etc

教師あり形態素解析

11

JMAT の CRF の使い方

12

ベース学習 小規模なコーパスで学習

能動学習 ベース学習では解析できない事例のみ学習 事例を追加し再学習、評価を繰り返す

部分アノテーション学習 一部分だけタグをつけ学習 分野適応

CRF を使った3つ学習手法

13

1414

ベース学習

Web テキストコーパス

クラスタリング

フィルタリング

誤解析しそうなテキスト群

タグ付きコーパス(約 1 万文) 半自動タグ付け

コーパス(約 300 万

文)

能動学習用コーパス

部分アノテーション学習

フィルタリング

能動学習

JMAT ベースモデル

商品版JMAT

人手知識

【今回のテーマ】

ベース学習部分で

「なぜ300万文コーパスがあるのに1万文しかつかわないのか」

15

【注意】ここから先、精度数値がでてきますが

弊社独自のコーパスでの評価となります他研究との数値比較は意味を持ちません

16

CRF の性能

17

4 万文同じ学習量なら HMM よりCRF の方が高精度

4 万文での精度

18

ジャストシステムの旧エンジンの方が高精度

コーパスを増やせば旧エンジンを超える?

問題:メモリが足りない

19

4 万文で約 2.7G 必要300 万文だと 20G~ 30G 必

メモリにのらないと現実的な時間で学習ができな

メモリを積む 64GB のマシンを買った

けど、まだ複数の実験を同時にまわせない 裏でかな漢字変換の実験もやってる かな漢字変換はもっとメモリを食う

解決方法その1

20

オンライン学習を使う

この検証をはじめたのは 2000 年代後半 オンライン学習が現実的ではなかった (いまならオンライン学習でやってたかも)

   

解決方法その2

21

省メモリな CRF 学習器をつくる ラティス構造の持ち方を工夫 ノードには様々情報を持たせている 同じノードがいっぱい出現する 共有できる情報は全て共有

つくった CRF 学習器の性能 OSS の CRF 学習器の約 25% のメモリ使用量 学習速度はほぼ同じ スワップにおとさないモードも作成

解決方法その2

22

300 万文の精度

23

旧エンジンの精度を超えた!( 10 万文あたりで超えました最高精度は 50 万文学習時)

商品搭載に向けて本格始動?

旧エンジンとの詳細な比較検証 大量の差分がでてる 改善も多いが、改悪も多い・・・

難しい事例が解析できている! 簡単な事例を誤解析・・・

なぜ誤解析しているか分からない・・・ コーパスを修正すればいい? 300 万文も修正できない・・・ 何もしてないのに学習するたびに結果がかわる

辞書チームによる分析

24

分析・洗練作業ができない ジャストシステムの得意技 ジャストシステムのクオリティを保てない ジャストシステムの NLP 技術にとっては致命的

この方向での商品化は断念・・・

辞書チームによる検証

25

CRF は使う

小規模なコーパスで旧エンジンを超える

旧エンジンからの改悪は極力抑える

洗練できる方法を用意する

(ついでに語彙・品詞体系も見直す)

方向転換

26

いちから必要なコーパスを検討しなおした 300 万文のコーパスの存在はいったん忘れる タグ付け精度、コンテンツの質 100 文ちょっとのコーパスで 90%近い精度がでる 必要なコンテンツとは?

言い回しコーパス 標準的な機能表現を網羅したコーパス 徹底的なクロスチェック 高精度なタグ付けコーパス 約 1 万文の学習コーパスを整備

小規模コーパス

27

言い回しコーパスでの精度

28

※ 語彙・品詞体系、評価コーパスの見直しているため

  旧エンジンの精度も前のスライドと異なります

旧エンジンの精度を 1 万文で超えた!(旧コーパスでは 10 万文必要)

ただ、まだ旧エンジンからの改悪を抑える対策が未完・・・

300 万文コーパス 旧エンジンの解析結果を利用 人手修正もしている(旧エンジンより高精度) このコーパスを旧エンジンの解析結果と仮定

(エセ)能動学習を実施 300 万文コーパスから間違い事例を追加し再学習 本当の能動学習はタグなしコーパスから行う 本当の能動学習では精度はあがるが改悪多数・・・

旧エンジンの長所を継承(概要のみ)

29

能動学習の精度

30

さらに精度向上を実現!改悪もかなり抑えられた

使ったコーパスは約 3 万 7千文

残された問題は、洗練手法だけ!

旧エンジンでの洗練手法 人手でコストを調整 コーパスを直す (ルールで潰す) コスト人手調整は職人技が必要( CRF では不可

能)

部分アノテーション学習による洗練 文中の教えたい部分のみアノテーション 洗練・分野適応 (評価コーパスの)精度をさげずに適応可 

洗練手法(概要のみ)

31

3232

ベース学習

Web テキストコーパス

クラスタリング

フィルタリング

誤解析しそうなテキスト群

タグ付きコーパス(約 1 万文) 半自動タグ付け

コーパス(約 300 万

文)

能動学習用コーパス

部分アノテーション学習

フィルタリング

能動学習

JMAT ベースモデル

商品版JMAT

人手知識

商品版 JMAT はさらに高精度です!

JMAT は CRF を使っている ベース学習、能動学習、部分アノテーション学習

教師あり学習のキモはコーパスの質 質の悪い大規模コーパスより小規模でも高品質コーパス ただし、超大規模になると性質かかわるかも

数値評価のみでは使える商品にならない

まとめ

33

最後に(宣伝)

34

35

ピタジョブ、始めました!https://lets.pitajob.jp/

Recommended