weighted finite-state transducerについて

34
Weighted Finite-State Transducerについて または 猫画像100DSIRNLP #4 phyllo

Upload: phyllo

Post on 28-May-2015

2.910 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Weighted Finite-state Transducerについて

Weighted Finite-State Transducerについて または

猫画像100選

DSIRNLP #4

phyllo

Page 2: Weighted Finite-state Transducerについて

自己紹介

ID : phyllo

ブログ : http://d.hatena.ne.jp/jetbead

• 某Web企業の新卒

• 入社してから自然言語処理始めました

– 3年目突入

Page 3: Weighted Finite-state Transducerについて

Weighted Finite-State Transducerについて または

猫画像100選

DSIRNLP #4

phyllo

Page 4: Weighted Finite-state Transducerについて

Weighted Finite-State Transducerについて または

猫画像100選

DSIRNLP #4

phyllo

Page 5: Weighted Finite-state Transducerについて

えー!?猫画像100選の方じゃないの!? (期待されていた方ごめんなさい・・・)

Page 6: Weighted Finite-state Transducerについて

本当は、レコメンドエンジン実装して 猫画像100枚選びたかった・・・

Page 7: Weighted Finite-state Transducerについて

WFSTってなんだろう。 知らないとヤバいのかも・・・

Page 8: Weighted Finite-state Transducerについて

猫画像集めてる 場合じゃねぇ!!

Page 9: Weighted Finite-state Transducerについて

10分でわかる Weighted Finite-State Transducerの基礎

Page 10: Weighted Finite-state Transducerについて

もくじ

• WFSTとは

• 応用例

• WFSTの演算・操作

• 合成のアルゴリズム紹介

• ライブラリ、参考資料など

Page 11: Weighted Finite-state Transducerについて

で、Weighted Finalなんとかって何?

Page 12: Weighted Finite-state Transducerについて

Weighted Finite-State Transducer

• オートマトンの一種

– 様々な計算機構の数学モデルの総称

– 見やすさのため、「状態遷移図」がよく使われる

• 重み(コストや確率値)を導入した有限状態トランスデューサー

Page 13: Weighted Finite-state Transducerについて

有限状態アクセプタ (FSA)

• 有限個の状態

• 有限個の入力記号

• 状態遷移関数

• 有限個の初期状態・受理状態

1

2

3

4

b

a b

a

a,b,c,…

入力abかbaのとき、受理するFSA

Page 14: Weighted Finite-state Transducerについて

有限状態トランスデューサー (FST)

• 有限個の状態

• 有限個の入力記号

• 状態遷移関数

• 有限個の初期状態・受理状態

• 有限個の出力記号

1

2

3

4

b:B

a:A b:B

a:A

a,b,c,…

A,B,C,…

入力abかbaのとき、大文字にしたものを出力するFST

Page 15: Weighted Finite-state Transducerについて

重み付き有限状態トランスデューサー (WFST)

• 有限個の状態

• 有限個の入力記号

• 状態遷移関数

• 有限個の初期状態・受理状態

• 有限個の出力記号

• 重み(入出力、遷移)

1

2

3

4/.5

b:B/.1

a:A/.2 b:B/.5

a:A/.3

a,b,c,…

A,B,C,…

.2,.5,…

入力abかbaのとき、大文字にしたものを出力しつつその確率も出力するFST

Page 16: Weighted Finite-state Transducerについて

重み付き有限状態トランスデューサー (WFST)

• 数学的な定義 – 有限個の状態 Q

– 有限個の入力記号セット Σ

– 重みを考慮した状態遷移関数 E

– 有限個の初期状態 I

– 有限個の受理状態 F

– 有限個の出力記号セット Δ

– 重みの半環 (R,⊕,⊗,0,1)

– 初期状態重み関数 λ

– 受理状態重み関数 ρ

半環: 加法的逆元がなくてもよい代数的構造

Page 17: Weighted Finite-state Transducerについて

半環

• 以下の性質を満たす加法+、乗法・の2つの演算を備えた集合R – (R,+)が単位元0を持つ可換モノイドを成す – (R,・)が単位元1を持つモノイドを成す – 乗法は加法の上に分配的である – 0倍はRをゼロ化する

• モノイドは、以下の2条件を満たす、集合Sと二項演算*の組(S,*) – 結合律:Sの元a,b,cについて、(a*b)*c=a*(b*c) – 単位元の存在:Sの元eが存在し、Sの元aについて、

e*a=a*e=a

• 可換モノイドは、演算が可換であるようなモノイド

Page 18: Weighted Finite-state Transducerについて

半環の例

• Boolean – R:{0,1} – 加法:∨ – 乗法:∧ – 単位元0:0 – 単位元1:1

• 確率 – R:[0,1] – 加法:+ – 乗法:× – 単位元0:0 – 単位元1:1

• log確率値 – R:[-∞,0] – 加法:max – 乗法:+ – 単位元0:-∞ – 単位元1:0

• tropical(ミニマムプラス代数) – R:[-∞,+∞] – 加法:min – 乗法:+ – 単位元0:+∞ – 単位元1:0

• string – R:Σ * ∪ {∞} – 加法:longest common prefix – 乗法:連結処理 – 単位元0:∞ – 単位元1:ε

Page 19: Weighted Finite-state Transducerについて

表現が豊かになって いろんなモデルが表現できる?

Page 20: Weighted Finite-state Transducerについて

応用例

• 音声認識/音声合成

– 音響モデルや言語モデルをWFSTで表現

• 統計的機械翻訳

– 言語モデルや翻訳モデルをWFSTで表現

• 検索エンジンLucene

– 転置IndexをFSTで表現

• 画像処理/光学文字認識

• など

Page 21: Weighted Finite-state Transducerについて

WFSTで表現して何がうれしいの?

Page 22: Weighted Finite-state Transducerについて

多くの演算・操作が研究されている

• Composition

• Determinization

• Minimization

• Sum(Union)

• Product(Concatenation)

• Closure(Kleene-closure)

• Reversal

• Inversion

• Projection

• Intersection

• Difference

• Ambiguity

• Disambiguation

• Equivalence

• Weight Pushing

• Synchronization

• ε-removal

• Divergences

• Distances

• Input ε-Normalization

• Generic Single-Source

• All pairs Shortest Distance

• N Best Path

• N Best String

これらの操作ができる!

Page 23: Weighted Finite-state Transducerについて

ちょ、多すぎ。 イケてるのはどれ?

Page 24: Weighted Finite-state Transducerについて

WFST 1 WFST 2 入力 出力 WFST 3

WFST 入力 出力

WFST (状態数最小化)

入力 出力

WFST (決定化)

入力 出力

Composition(合成)

Determinization(決定化)

Minimization(最小化)

(複数の処理を1つにまとめられる)

Page 25: Weighted Finite-state Transducerについて

え、自分でモデルをいじらずに 処理全体を高速化・省メモリにできるの!

すげえええええ!!!

Page 26: Weighted Finite-state Transducerについて

Composition(合成)

• 2つの直列のWFSTを1つに合成する

WFST 1 WFST 2

WFST 1&2

入力 出力

入力 出力

Page 27: Weighted Finite-state Transducerについて

Composition algorithm

• ε遷移が無い場合

• 2つのWFSTの状態のペアを状態に持つWFSTを作る

QUEUEを使って、状態をたどり、 入出力の合う遷移を一つにして 合成後の遷移にする。

Page 28: Weighted Finite-state Transducerについて

Composition algorithm

• ε遷移がある時は、うまくいかない例がある – (WFSTで表現された)フィルタを間に入れる

• N個のWFSTを同時に合成する方法も提案されている

Page 29: Weighted Finite-state Transducerについて

ほう、面白い。 自分でも実装してみたい

Page 30: Weighted Finite-state Transducerについて

資料

• Mohri, “Weighted Automata Algorithms”

– http://www.cs.nyu.edu/~mohri/pub/hwa.pdf

– 各種説明やアルゴリズムの紹介がされてる

– 図などもこちらから使わせていただいています

Page 32: Weighted Finite-state Transducerについて

その他

• Mohriさんのまとめ – http://www.cs.nyu.edu/~mohri/transducer-

algorithms.html

• Tsukadaさんのまとめ – http://sig-slp.jp/slide44/tsukada.pdf

• International Conference on Implementation and Application of Automata – http://cs.smu.ca/~ciaa2013/

• その他、検索してでてくるたくさんの資料

Page 33: Weighted Finite-state Transducerについて

まとめ

• WFSTは、オートマトンの一種

– 入力に対し、重みを考慮しつつ出力

– いろんなモデルを表現できる

– WFSTに対して演算や操作が統一的に行える

• いろんな演算がある

– 特に、合成、最小化などを行うことで、省メモリで実行できるようにモデルを変換できる

Page 34: Weighted Finite-state Transducerについて

ご静聴ありがとうございました