NLP-11

自然言語処理:第11回
統計翻訳概論
機械翻訳の概要
人間はどうやって翻訳をするのか
Noisy Channel Model
f
S
O
情報Sがある経路fを介して伝わる。
ただし、その経路にはノイズがあるので、
SではなくOという形で伝わる
人間の声Sを電話という経路fを介して聞くと
Oというひずんだ声で聞こえる
機械翻訳の概要
音声認識のNoisy Channel Model
f
S
O
人間が頭で考えた文Sを口と空間いう経路fを介して
Oという音声で聞く
聞こえたOから元の文Sを推定するのが音声認識
機械翻訳の概要
人間の同時通訳者のNoisy Channel Model
人間が頭で考えた内容Sを文で英語という経路fを
介してOという形できく
Oという英語から何を言おうとしている内容Sを
推定する
推定したSを文で日本語という経路f’を介してO’
してしゃべる
機械翻訳の概要
人間にとってはSを推定するより、Oを生成する方が
難しい(英語を読むより、書く方が難しい)
機械にとっては生成の方が推定よりも楽
推定できるものからしか生成しないから
顔画像の合成で
怒った顔  ○
美人の顔  ×
機械翻訳の概要
人間の翻訳者
意味
ルールベース機械翻訳
統計機械翻訳
構造
表層
英語
日本語
ルールベース翻訳
英語の構文木を日本語の構文木に変換する
構文木  部分木の組み合わせ
S
部分木  一つの文法に
対応する
NP = DT + NN
NP
VP
NP
PN BE DT NN
冠詞+名詞で名詞句になる
This is
a pen
ルールベース翻訳
This is a pen  これ は ペン です
S
S
VP
NP
NP
NP
NP
PN BE DT NN
This is
VP
a pen
NP
PN PR NN SV
これ は ペン です
ルールベース翻訳
NP(これ+は)
PN = This
NP = NP
2対4
S
これ = PN PN = NP
は = PR
NP = NP+PR
VP
NP
NP(これ+は)
NP
NP
PN BE DT NN
This is
a pen
PN PR
これ は
ルールベース翻訳
対応するものがないので、
1対0 なにもしない
DT = a
S
VP
NP
NP(これ+は)
NP
NP
PN BE DT NN
This is
a pen
PN PR
これ は
ルールベース翻訳
NN = pen
S
NP
1対1
(双方とも終端記号
なので、対訳辞書)
VP
NP(これ+は)
NP
NP
PN BE DT NN
This is
NN(ペン)
a pen
PN PR NN(ペン)
これ は ペン
ルールベース翻訳
NP = DT+NN
NP(NN(ペン))
1対1
S
NP(ペン)
VP
NP
NP (これ+は)
NP
NP
PN BE DT NN
This is
a pen
NP(ペン)
PN PR NN
これ は ペン
ルールベース翻訳
BE = is
S
SV(です)
1対1
(対訳辞書)
VP
NP
NP(これ+は)
NP
NP
PN BE DT NN
This is
a pen
NP(ペン)
PN PR NN SV(です)
これ は ペン です
ルールベース翻訳
VP = BE+NP
VP(NP(ペン)+SV(です))
1対1
S 語順入れ替え VP(ペン+です)
VP
NP
NP (これ
NP +は)
NP
PN BE DT NN
This is
a pen
VP (ペン
+です)
NP
PN PR NN SV
これ は ペン です
ルールベース翻訳
S = NP+VP
1対1
S
NP
NP (これ
VP
+は)
NP
NP
PN BE DT NN
This is
S(NP(これ+は)
+VP(ペン+です))
S
a pen
VP (ペン
+です)
NP
PN PR NN SV
これ は ペン です
ルールベース翻訳
欠点
① ルール(文法)は専門家が書く必要がある
② 元言語の文法と目的言語の文法の対応は
両方の言語の専門家が必要
③ 対訳辞書を人手で作る必要がある
(場合によっては対訳格文法、オントロジーが)
④ 話し言葉等、もともと文法がいい加減だとこまる
⑤ 時と共に文法がかわる
ルールベース翻訳
利点
① 文法は蓄積できるので、どんどん良くなる
② 対訳辞書も蓄積できるうえに、共有できる
④ 文法にさえ合っており、対訳辞書があれば
どんな分野の文も翻訳できる
⑤ 翻訳誤りを起こした時(文法をなおすことに
よって)対応できる
統計翻訳の概要
人間はどうやって外国語を覚えるのか?
人間がやっている方法をコンピュータが
まねればよい
中高校でどうやって英語を学ぶか
Grammar と Reader
統計翻訳の概要
Grammar
文法をしっかり覚えよう
あとは、単語を覚えればOK
ルールベース翻訳
英語の構文木を日本語の構文木に変換する
各単語の翻訳は対訳辞書を使う
構文木を作る = 文法を使って文を解析する
ルールベース翻訳  Grammar のまね
統計翻訳の概要
Reader
とにかく、実際の英語にたくさん触れよう
できれば、文をいっぱい覚える
覚えるだけならコンピュータは大得意
単語は?
文をまるごと覚えれば、そこに出てくる
単語もわかる
統計翻訳の概要
統計翻訳  Reader のまね
英語とその対訳の日本語をひたすら記憶する
対訳辞書は?
対訳文をたくさん見れば、どの単語をどう
訳せばいいかもわかる
対訳文 ⊃ 対訳辞書
統計翻訳の概要
英日統計翻訳
argmax P( j | e)  argmax P(e | j ) P( j )
j
j
与えられた英文 e に対し、最も確率の高い
日本語文 j を見つける問題
P (e | j ) : 翻訳モデル 英文がその日本語文の
翻訳としてふさわしいかどうか
P ( j ) : 言語モデル  日本語文らしいか
統計翻訳の概要
音声認識との比較
argmax P(W | A)  argmax P( A | W ) P(W )
W
W
声Aが聞こえた時、一番それらしい文W を見つける
:文W がどんな声Aで言われるか
音としての性格
P( A | W )
:文W がまともな文か
言葉としての性格
P(W )
統計翻訳の概要
argmax P(W | A)  argmax P( A | W ) P(W )
W
W
なぜ、わざわざ二つのモデルにばらすのか?
Aは連続値、Wは離散値
↓
Aに対するWは表現できない
逆は各Wに対してAの関数を割り当てれば良い
統計翻訳の概要
argmax P( j | e)  argmax P(e | j ) P( j )
j
j
なぜ、わざわざ二つのモデルにばらすのか?
e も j も離散値なのでe と j の表を作ればよい
統計翻訳の概要
argmax P( j | e)  argmax P(e | j ) P( j )
j
j
なぜ、わざわざ二つのモデルにばらすのか?
翻訳をする時には、色々な要素を考える
必要がある(文として正しいか、単語は正しく
翻訳されているかなど)
・各要素ごとにモデル化する方が楽
・各要素ごとにモデル化に必要なデータが違う
統計翻訳の概要
argmax P( j | e)  argmax P(e | j ) P( j )
j
j
P (e | j )
翻訳モデル
 さらに細かく分ける
P( E | J )
 日英単語対訳モデル
P( J | E )
 英日単語対訳モデル
P (e, j )
 語順入れ替えモデル
統計翻訳の概要
argmax P( j | e)  argmax P(e | j ) P( j )
j
j
P (e | j )
翻訳モデル
 さらに細かく分ける
P( E | J )
 日英単語対訳モデル
P( J | E )
 英日単語対訳モデル
P (e, j )
 語順入れ替えモデル
単語アライメント
日英、英日単語対訳モデルを作るために
英文(日本語文)中の各単語が日本語文(英文)
中のどの単語に対応しているかを調べる
単語アライメント
これ は ペン です
This is a pen
単語アライメント
日英、英日単語対訳モデルがあれば
P(ペン|pen) = 0.8
P(筆|pen) = 0.2
これ は ペン です
単語アライメントは簡単
This is a pen
単語アライメントのためには単語対訳モデルが必要
単語対訳モデルのためには単語アライメントが必要
単語アライメント
EMアルゴリズム
単語アライメントのためには単語対訳モデルが必要
単語対訳モデルのためには単語アライメントが必要
鶏卵問題を解くためのアルゴリズム
まず、適当な単語対訳モデル(初期モデル)を作る
P(は|pen) = P(人|pen) = P(歩く|pen)
= P(ペン|pen) = …
全ての日本語の単語に訳される可能性がある
単語アライメント
①E-step :単語対訳モデルを使ってアライメント
を求める
これ は ペン です
This is a pen
②M-step :得られたアライメントから対訳に
なった回数を数える
上の例では これThis,これis,これa,
これpen は全て1/4回
単語アライメント
②M-step :得られたアライメントから対訳に
なった回数を数える
上の例では これThis,これis,これa,
これpen は全て1/4回
回数がわかれば、対訳確率も計算できる
新しい単語対訳モデルができる
①のE-stepに戻る
単語アライメント
EMアルゴリズムを用いたアライメントの例
学習データは
A B  a b
B C  b c
C A  c a
最終的には
P(a|A) = 1, P(b|B) = 1, P(c|C) = 1
になってほしい
単語アライメント
初期対訳モデル
P(a|A) = P(b|A) = P(c|A) = 1/3
P(a|B) = P(b|B) = P(c|B) = 1/3
P(a|C) = P(b|C) = P(c|C) = 1/3
アライメント
A
B
B
C
C
A
a
b
b
c
c
a
単語アライメント
アライメント
A
B
a
b
対訳モデル
B
C
C
A
b
c
c
a
(a,A)=1, (b,A)=1/2, (c,A)=1/2
(a,B)=1/2, (b,B)=1, (c,B)=1/2
(a,C)=1/2, (b,C)=1/2, (c,C)=1
P(a|A)=1/2, P(b|A)=1/4, P(c|A)=1/4
P(a|B)=1/4, P(b|B)=1/2, P(c|B)=1/4
P(a|C)=1/4, P(b|C)=1/4, P(c|C)=1/2
単語アライメント
対訳モデル
P(a|A)=1/2, P(b|A)=1/4, P(c|A)=1/4
P(a|B)=1/4, P(b|B)=1/2, P(c|B)=1/4
P(a|C)=1/4, P(b|C)=1/4, P(c|C)=1/2
A
B
a
b
B
C
アライメント
C
A
b
c
c
a
(a,A)=4/3, (b,A)=1/3, (c,A)=1/3
(a,B)=1/3, (b,B)=4/3, (c,B)=1/3
(a,C)=1/3, (b,C)=1/3, (c,C)=4/3
単語アライメント
対訳モデル
P(a|A)=2/3, P(b|A)=1/6, P(c|A)=1/6
P(a|B)=1/6, P(b|B)=2/3, P(c|B)=1/6
P(a|C)=1/6, P(b|C)=1/6, P(c|C)=2/3
P(a|A)=4/5, P(b|A)=1/10, P(c|A)=1/10
P(a|B)=1/10, P(b|B)=4/5, P(c|B)=1/10
P(a|C)=1/10, P(b|C)=1/10, P(c|C)=4/5
最終的に P(a|A) = P(b|B) = P(c|C) = 1
3.単語アライメント
単語アライメントのまとめ
日英の対訳コーパがあれば、EMアルゴリズムで
単語のアライメントがとれる
単語のアライメントからは、確率付きの対訳辞書
を作ることができる
語順入れ替えモデル
argmax P( j | e)  argmax P(e | j ) P( j )
j
j
P (e | j )
翻訳モデル
 さらに細かく分ける
P( E | J )
 日英単語対訳モデル
P( J | E )
 英日単語対訳モデル
P (e, j )
 語順入れ替えモデル
語順入れ替えモデル
言語モデルと語順入れ替えモデル
翻訳モデルで単語を翻訳、
言語モデルだけで語順を入れ替えると
14~5単語の文で60%強が正しい
元の文の単語の順序をバラバラにして
言語モデルで並び替えると
語順入れ替えモデル
○
斉藤 は 絶対 の 自信 で 、 その チャンス
を うかがって い た 。
その後
失っ
△
その後
失っ
結婚 し た 妻 や 二人 の 子供 も
た 。
結婚 し た 二人 の 妻 や 子供 も
た 。
更新 には
出張 し
×
警視庁 の
出張 し
警視庁 の 担当 者 が 皇居 に
て くる 。
担当 者 には 更新 が 皇居 に
て くる 。
語順入れ替えモデル
言語モデルだけではどうにもならないことがある
言語モデルはP(j)なので、翻訳元文に関係がない!
日英翻訳の場合
これはペンです  {this,a,pen,is}
これはペンですか  {this,a,pen,is}
英語の単語はどちらも同じ
語順入れ替えモデル
Distortion Penalty
最初に統計翻訳が用いられたのは仏英翻訳
仏英翻訳  あまり大きな語順の入れ替えはない
なるべく元の語順に近い形で翻訳する
近くでの語順の入れ替えなら、組み合わせが
少ないので、あとは言語モデルで
語順入れ替えモデル
Lexical Reordering モデル
単語ごとにどのように語順が変わるかを記述
対訳辞書に(Lexical)語順入れ替え情報を追加
「I」  主語なので、次に動詞が来る可能性が高い
次の単語は大きく位置が変わる可能性が高い
語順入れ替えモデル
次の単語、前の単語それぞれに対して3種類に
位置関係を分類し、それぞれの確率をふる
「X」の次の単語場合
X Y  x y : Monotone
X Y  y x : Swap
X Y  x …. y or y … x : Discontinuous
「I」  M=0.09, S=0.01, D=0.9
語順入れ替えモデル
Lexical Reordering モデル
<s> 入れ替え 場所を 分類する 。 <e>
<s> We categorize reordering position . <e>
(入れ替え,reordering)
(場所を,position)
(分類する,categorize)
(。,.)
 左:D,右:M
 左:M,右:D
 左:D,右:D
 左:D,右:M
語順入れ替えモデル
Lexical Reordering モデルの問題点
入れ替えが起こった回数を実際のコーパス
から計算する
あまり出てこない単語の確率はあやしい
本当は入れ替えが起こるかどうかは、単語
の対に依存することが多い
フレーズベース翻訳
単語を単位とした翻訳の問題点1(一対多対応)
good morning
おはようございます
fine morning
晴れた 朝
morning : おはようございます or 朝
early morning  早い おはようございます
フレーズベース翻訳
単語を単位とした翻訳の問題点2(前後関係に依存)
climb a bank
土手 に 登る
bank account
銀行 勘定
a center bank  中央の 土手
フレーズベース翻訳
単語を単位とした翻訳の問題点3(語順入れ替え1)
単語数が多いと、語順入れ替えの
組み合わせが多くなる
10単語数でも10!= 3,628,800通り
フレーズベース翻訳
単語を単位とした翻訳の問題点3(語順入れ替え2)
単純な語順入れ替え
with
you
あなた
と
フレーズベース翻訳
単語より長い単位(フレーズ)にすれば解決
一対多対応
good+morning
fine morning
おはようございます
晴れた 朝
一対多対応 
一対一対応
フレーズベース翻訳
単語より長い単位(フレーズ)にすれば解決
前後関係に依存
climb+a+bank
土手に登る
bank+account
銀行勘定
前後関係ごと対訳の対応を取る
フレーズベース翻訳
単語を単位とした翻訳の問題点3(語順入れ替え1)
単語数が多いと、語順入れ替えの
組み合わせが多くなる
単語数の階乗からフレーズ数の階乗に減る
10単語数で10!= 3,628,800通り
2単語で1フレーズなら5!=120通り
フレーズベース翻訳
単語を単位とした翻訳の問題点3(語順入れ替え2)
単純な語順入れ替え
with+you
あなた+と
よく出てくる組み合わせには
特に有効
フレーズベース翻訳
その他特別な場合
are you
fine
元気 です か
are+you
fine
元気 です+か
I am fine
元気 です
I+am
fine
元気 です
フレーズ抽出
どうやってフレーズを取り出せばいいか
フレーズ=熟語 熟語辞書を作る
「with you」や「are you」 は熟語か
フレーズの目的 
まとめた方がアライメントがとりやすい
≠
熟語  何語かが集まって特別な意味になる
フレーズ抽出
どうやってフレーズを取り出せばいいか
全て機械的に取り出す
フレーズの目的 
まとめた方がアライメントがとりやすい
◎ フレーズのアライメントは必ず一対一
◎ フレーズは必ず連続した単語(穴あき不可)
◎ フレーズは長すぎないこと(長文丸ごとは不可)
デコーディング
統計モデルにおけるデコーディング
与えられた入力をモデルに当てはめ、一番確率が
高くなる出力を見つける
あり得る全ての組み合わせに対し、確率を計算
する必要がある
デコーディング
音声認識と統計翻訳のデコーディング差
argmax P(W | A)  argmax P( A | W ) P(W )
W
W
通常、音声情報(特徴量)は1秒に100回入ってくる
長さ1秒の文でも100回計算する必要がある
音の種類(音素)は30~40前後と多くない
入ってきた音と同じ順序で認識される
デコーディング
音声認識と統計翻訳のデコーディングの差
argmax P(W | A)  argmax P( A | W ) P(W )
W
W
音声認識
argmax P( j | e)  argmax P(e | j ) P( j )
j
j
統計翻訳
デコーディング
通常、音声情報(特徴量)は1秒に100回入ってくる
長さ1秒の文でも100回計算する必要がある
翻訳元文の単語数は10~20程度
音の種類(音素)は30~40前後と多くない
単語の種類は数万~数十万
入ってきた音と同じ順序で認識される
翻訳された単語の順序は翻訳元文の順序とは違う
デコーディング
統計翻訳のデコーディングのしかた
使うモデル  翻訳モデル、言語モデル
argmax P( j | e)  argmax P(e | j ) P( j )
j
j
言語モデルは前(後ろ)から順でないと計算できない
P(Wi | Wi 2 ,Wi 1 )
トライグラム
翻訳文は文頭から生成していく
デコーディング
what
is
this
フレーズ対訳辞書を見て、「what is this」の一部
からなるフレーズを全てさがす
this  これ は
this  これ が
is this  です か
what  なに が
what is  何 です か
フレーズの境目は不定
複数の訳の可能性
デコーディング
what
is
this
それぞれの1番目のフレーズごとに
2番目のフレーズ作る
①
②
これ は(what is this)
これ が(what is this)
です か(what is this)
なに が(what is this)
何 です か(what is this)
なに が(what is this)
何 です か(what is this)
これ は(what is this)
です か(what is this)
デコーディング
今までに翻訳してしまった単語は使ってはいけない
前のフレーズはわかっているので、言語モデルを計算
語順入れ替えモデルのスコアを計算
これ は(what is this)
なに が(what is this)
何 です か(what is this)
なに が(what is this)
これ は(what is this)
です か(what is this)
全ての単語を翻訳し終わったら翻訳終了
デコーディング
高速化、省メモリ化の工夫
音声認識では、入ってきた音はただちに処理
(しゃべっている間に認識したいので)  横型探索
翻訳では制限がない  縦型でもよい
見込みの無さそうな仮説は後回し、または捨てる
なに が(what is this)
これ が(what is this)
デコーディング
スタックデコーダ
翻訳済み単語数ごとに分類
それぞれスコアの良い順に並べる
自然言語処理:第10回
一番見込みのありそうなもの続きを翻訳
これ は(what is this)
なに が(what is this)
なに が(what is this)
なに が(what is this)
これ は(what is this)
これ が(what is this)
レポート
コンピュータ言語と自然言語には本質的に異なる点
がある。何か?
講義に対する意見、要望があれば
一緒に書いてもらってOK
レポート提出のメールの件名は
NLP-5-学籍番号 で
提出期限 7月12日10:30
質問&スライド
[email protected]
http://www.info.kindai.ac.jp/NLP