White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

TokyoNLP#8に行って来ました

http://atnd.org/events/22199


遅刻していっこめ聞けなかったのが残念。気をつけます。
着いたらいきなりせんせーっぽい方が講演されてたんだけど、学会じゃなくて勉強会だよな・・
面白かったですが。


個人的にはshuyoさんの発表で、岡野原さんの極大部分文字列の発表についての説明があったのが一番参考になりました。
もういっぺんあの論文読んでみます。


あとshuyoさんの発表で、「pythonで遅い」って話があったけど、PyPyでも使ってみたら早くなるんじゃないだろうかと思いました。


それとKyTeaに関しては以前@neubigさんに「魔法少女リリカルなのはで分割できますか?」とか酷い質問したことがあったので今度余裕があったらまた触ってみます。liblinearはいいっすよね。


以下ログ。

2.点予測による自然言語処理

ルールベース→統計・機械学習→言語資源中心
ユーザデータを活用する

                            単語分割 形態素
CRF(Mecab)
点予測(KyTea)

現実→F値ガタ落ち(5%)

自然言語処理への要求
目的のテキストに対する高い精度
ラベル付与(品詞大分類、読み)
速度(学習、初期化、)

自然言語処理=機械学習+情報付与済みテキスト
1. 10%の機械学習
   研究者は好んでやるので放っといてOK
2. 90%の情報付与済みテキスト

1.形態素の定義(KyTeaとは独立)
・国立国語研究所の短単位(+活用語尾の分割)
・約20品詞ほど
・文脈依存の読み

2.言語資源
・現代日本の書き言葉均衡コーパス(BCCWJ)
・Unidic

なぜ点予測か
・推定値を参照しない
・必要なときに必要なだけの曖昧性解消
・部分的アノテーションによる迅速分野適応

IJCNLP2011 ANPINLP

点予測による形態素解析
前後の単語だけを見る。品詞は見ない。
なぜか→どうせ品詞判定は入力見て判定してるから

分野特有の表現のみ情報付与が可能
ex)医薬品では本剤を使用する

2004 確率的単語分割 音声認識の自動語彙拡張
2005 ステーキ論文[NL168]
   コーパスの処理具合をステーキの焼き具合で分割
 部分的付与情報から言語モデル再推定すべきでは!?
hillbigさんからlibliner紹介→実装お願い→2008 KyTea発表

KWICによる(人手での未知語追加)

企業→コストを払って分野適応
ユーザ情報の活用
・検索データ G社
・ユーザの変換ログ SocialIME

Q. MeCabが再学習できないのはCRFのせい?ソフトのせい?→ソフトのせい
データありきで、それに適したモデルを作った
Q. 点予測でうまく行きそうな点と悪い点
連続して当てるものには精度さがる、ピンポイントで当てるものには強い


3.情報検索のためのランキング学習
 mixiに対して、mixiが来てれば「良い結果」
 検索結果に対してユーザが5段階評価
 DCG, MAPがよく使われる
 MAP(Mean Average Precision) 適応してるかどうか 
 全てのクエリについてのAverage Precision

 機械学習によるランキング
 Listwise学習: ListNet


4.ラベル伝搬法入門@niam

トレンド:グラフを使ったものが多い
ラベル伝搬、アルゴリズム自体は行列*ベクトルの演算が出来れば実装できるものが多い
興味があれば実装が楽 実装に1000行超え

ラベル伝搬法とは
シードからラベルをグラフ上に伝搬させてuの部分のラベルを推定する
パターン=素性 インスタンス=単語、文、文章
ラベル=検出した値に対するクラスの名前をつけたもの(正である、負である等)
グラフ→行列 X=入力M*シード(l+u)の行列
GRF[Zhu and Ghahramani, ICML2003]
Y^(i-1) = D^-1WY^i と置いていくとWが(I-W_ui)^-1W_uiY_iに収束することを証明。ラベルが確率的に飛ぶ

LLP [Zhou+, NIPS2004],[Ito+, KDD2005]
  Regularized Laplacian Kernel:
    K_reg(W) = (I+βL_reg(W))^1
p(W)をスペクトル半径(絶対値最大の固有値)とすると、β<1/ρ(L_reg(W))の時、無限和に分解できる

Simplified Espresso[Komachi+,EMNLP2008],[Pantel+,ACL2006]をラベル伝搬で定式化
ずっと繰り返すとどんなi_0に対しても同じ結果が出てしまい分類の精度が悪くなる->意味ドリフト

g-Monaka [萩原+] 文字ngram間の有向グラフM <-正方非対称行列
日本語文章での左右の文章の続きやすさ

グラフスパース化[Ozaki+, CoNLL2011]
ハブ:グラフ中で多くのノードに隣接するノード 
・ハブは同じラベルに割り当てられやすく誤認識の原因になりやすいので取り除く
・行列を疎にすれば計算も高速になる
Mutal k-NN 互いのk近傍に入っているノード同士を繋ぐ

Q. ラベル伝搬では不具合があった時のモジュール分けがわかりにくくないか? A.わかりにくい
Q. ラベル伝搬の利点欠点が載ってる情報はあるか?A.しらない。ただ半教師あり学習の一種なので教師あり学習で高い精度を出すものには適さない


5.∞-ngramで言語判定 @shuyo
lang-detect 短い文章が苦手(twitterとか)
  動機, 複数の言語が交じった文章の言語判定 
  チャンク(段落ごと、行ごと)に言語判定
  短文の判定が出来れば可能
問題設定:
 3文字以上で99%を目標
 文字種の混在は考慮しない
    極大文字列判定 [岡野原 2008+]   abracatabra 全てのra は braの中にだけある
         1回しか出ない部分文字列は文字列全体に含まれる
      これの一番大きい物が極大部分文字列
        メリット: raとbraの出現頻度は一致→極大部分文字列だけで全部分文字列を扱うのと同値なモデルが得られる
        拡張Suffix Arrayを使うと二回以上現れる極大部分文字列を線形時間で求めることができる
        esaxx実装 実装takeda25さん

    特徴選択
       [Perkins+ 2003] Grafing
          勾配を大きいものからぶった切る
     L1 正則化
        OWL-QN  FOBOS -> Cumlative ~を使ってる
     TRIE
      前方一致が可能なデータ構造   今回はDouble Arrayを使用

Language Detection with Infinity-Gram
    python+numpy


6.IJCNLP 行って来ました@nokuno
Japanese Pronunciation Prediction as Statistical Machine Translation
 日本語の読みを統計的に推定したい
 SMT
 入れ替えの発生しない
 文字の挿入削除が起きない
 これ自体は識別モデルだがfeature中に生成モデルがあるのでfeatureをリッチにしている
 MS社内で使ってる辞書がよくて精度が高いらしい

Integrating Modeling Derived from non-Parametric Bayesian Co-segmentation 
 into a Statistical Machine Translation System
  Nonparametric co-segmentation: Extended monolingual word segmentation
  [Mochihashi+09][Goldwater+ 06]
  翻訳で使えるのがありがたい!
  Unigram Dirichlet Process Model
  Chinese Restaurant Process representation

Discriminative Phrase-based Lexicalized Reordering Models using Weighted Reordering Graphs
  Reordering : 順序の並び替え 例:日本語と英語