音声認識における言語モデル

41
音音音音音音音音音音音音音 2016/12/02@pfx 音音音音 PFN 音音音音音音音音音音音

Upload: kotaro-setoyama

Post on 20-Jan-2017

246 views

Category:

Science


1 download

TRANSCRIPT

Page 1: 音声認識における言語モデル

音声認識における言語モデル2016/12/02@pfxセミナー

PFNアルバイト瀬戸山幸大郎

Page 2: 音声認識における言語モデル

瀬戸山幸大郎@KotaroSetoyama

■ Retriva/PFNアルバイト音声認識 /Chainer,CuPy開発

■ 卒業論文 音声合成

2

自己紹介

Page 3: 音声認識における言語モデル

本日の内容■ 音声認識システムの音響モデルの簡単な概要■ 音声認識システムで言語モデルをどう使うか ・ N-gramLMと RNNLM,それぞれをどう組み込むか ・組み込む上で高速化,精度向上の工夫

3

Page 4: 音声認識における言語モデル

音声認識とは

4NEC 音声認識の仕組み http://jpn.nec.com/vsol/overview.html

Page 5: 音声認識における言語モデル

音声認識とは

5

Page 6: 音声認識における言語モデル

音声認識とは

6

Page 7: 音声認識における言語モデル

音声認識とは

7

Page 8: 音声認識における言語モデル

音響モデル■ GMM + HMM, DNN + HMM, RNN + CTC ...

■ HMMや CTCの役割は時間方向の継続長の処理

8GMM...Gaussian Mixture Model HMM...Hidden Markov ModelDNN... Deep Neural Network CTC...Connectionist Temporal Classification

p p r e f f e r r r d

preferred

Page 9: 音声認識における言語モデル

音響モデル

9

■ 音響モデルでは音声特徴ベクトルと音素 (トライフォン )を対応させる例 ) 文単位:あらゆる現実をねじねじする 無限個

単語単位:あらゆる 現実 を ・・・ 数万個

音素単位: a r a y u r u ・・・ 数十個

この各トライフォンの音素がそれぞれ異なる特徴ベクトルに対応している

(トライフォン _-a+r a-r+a r-a+y a-y+u y-u+r ・・・)

Page 10: 音声認識における言語モデル

音響モデルをどう表現するか?

10

→ FST(finite state transducer) / WFST(weighted FST)

HMMの場合・各音素 (トライフォン )に対して右のような HMMを用意する・継続長の処理は自己ループによって確率的に処理できる

a - a + r

徳田恵一 . "隠れマルコフモデルによる音声認識と音声合成 ." 情報処理 45.10 (2004): 1005-1011.

Page 11: 音声認識における言語モデル

11

この HMMをWFSTで表現する

徳田恵一 . "隠れマルコフモデルによる音声認識と音声合成 ." 情報処理 45.10 (2004): 1005-1011.

Page 12: 音声認識における言語モデル

2016/05/12 の西鳥羽さんの全体セミナー http://www.slideshare.net/JiroNishitoba/wfst-6192988812

WFSTとは

Page 13: 音声認識における言語モデル

13

Page 14: 音声認識における言語モデル

14

Page 15: 音声認識における言語モデル

15言語モデルをWFSTで表現すれば音響モデルのWFSTと合成できる

Page 16: 音声認識における言語モデル

音響モデルをどう表現するか?

16

■ HMMも CTCも FST/WFSTを用いて表現出来る■ 言語モデルもWFSTで表すことができれば 1つの巨大なWFSTを構築できる(サーチグラフ )

■ サーチグラフを探索することで確率を計算し、確率最大のものを出力 この処理をデコードと呼び,デコードを行うプログラムをデコーダという 音声認識システムの実装で面倒なのはデコーダの部分

Page 17: 音声認識における言語モデル

音響モデルをどう表現するか?

17

言語モデルはWFSTで表せられるのか?

■ HMMも CTCも FST/WFSTを用いて表現出来る■ 言語モデルもWFSTで表すことができれば 1つの巨大なWFSTを構築できる(サーチグラフ )

■ サーチグラフを探索することで確率を計算し、確率最大のものを出力 この処理をデコードと呼び,デコードを行うプログラムをデコーダという 音声認識システムの実装で面倒なのはデコーダの部分

Page 18: 音声認識における言語モデル

言語モデルとは■ある言葉の次は、この言葉が続きやすいという情報を保持・ N-gram言語モデル・ Recurrent Neural Network言語モデル (今日のメイン )

18

Page 19: 音声認識における言語モデル

N-gram言語モデル

19

トライグラム

■ ある単語の出現確率は過去の N-1単語に依存すると仮定■ Nは 3〜 5が多い■ コーパス中に現れない単語の確率が 0になるのを防ぐ、スムージングなどの工夫が必要■ WFSTで表すことができる

Page 20: 音声認識における言語モデル

WFST of N-gram言語モデル

20

N-1個の単語の組を 1つの状態 (state)とする

Page 21: 音声認識における言語モデル

■ 単語数が増えると言語モデルの状態数も増えるので状態数を減らす工夫をする■ 音響モデルは音素単位,言語モデルは単語単位だったので,単語と音素の対応表 (単語辞書 )もWFSTで表す■ 音響モデル,言語モデル,単語辞書をWFSTで表し,合成演算を行い,単語列と重みを出力するWFSTを構築

音響モデル + N-gram言語モデル

WFST音響モデル言語モデル単語候補 A

+確率 詳細は西鳥羽さんの資料参照 http://www.slideshare.net/JiroNishitoba/wfst-61929888

Page 22: 音声認識における言語モデル

RNNLM

■ 2010年に Tomas Mikolovによって提案された言語モデル■ N-gram言語モデルよりも広いコンテキスト情報を保持できる■ 最新の音声認識システムでは使われることが多い

22

Page 23: 音声認識における言語モデル

RNNLM

23

ソフトマックスで確率化

1-of-K

過去の履歴を保持

Page 24: 音声認識における言語モデル

RNNLM

24

ソフトマックスで確率化

1-of-K

過去の履歴を保持

音響モデルと組み合わせられるのか?

Page 25: 音声認識における言語モデル

RNNLMの問題点■ 計算コストが大きい 特に出力層のソフトマックスのコストが大きい (後述 )

■ サーチグラフが巨大になる N-gramLMでは N-1個の単語の組が 1つの stateであった → Nが無限 (RNNLM)の時は state数は無限?■ 単語の扱い方が N-gramLMと異なる RNNLMは単語をベクトル (連続空間 )で扱っている

25RNNLMを First-passで使用するのは容易ではない

Page 26: 音声認識における言語モデル

RNNLMを First-passで利用する例 1Conversion of recurrent neural network language models to weighted finite state transducers for automatic speech[Lecorvé+ 12]

26■ 連続空間で表されている単語を stateに変換するために無理やり量子化を行う■ k-meansで似ている単語ベクトルを 1つにまとめる

量子化

状態の枝刈り

Page 27: 音声認識における言語モデル

RNNLMを First-passで利用する例 1

27

後述するリスコアリング (N-gram+RNNLM)の方がWERは低い

Page 28: 音声認識における言語モデル

Variational approximation of long-span language models for LVCSR [Deoras+ 11]Approximate inference: A sampling based modeling technique to capture complex dependencies in a language model [Deoras+ 13]

28

RNNLMを First-passで利用する例 2

■ First-passで使用できる計算コストの低い確率分布 Qと RNNLMのようなLong-spanLMの確率分布を変分近似する■ KL距離最小化

Page 29: 音声認識における言語モデル

29

RNNLMを First-passで利用する例 2

WERはほとんど変わらない

Page 30: 音声認識における言語モデル

Cache based recurrent neural network language model inference for first pass speech recognition[Huang+ 14]

30

RNNLMを First-passで利用する例 3

■ 同じ計算を行っている箇所に注目して,計算結果をキャッシュとして蓄えておくことで RNNLMを呼ぶ回数を最小限にとどめている

N-gramLMと同程度の速度を保ったまま N-gramLMよりも良い精度を出している

Page 31: 音声認識における言語モデル

■ First-passで RNNLMを利用しようとした例はいくつかあるが,成功例は少ない■ 主流は N-gramLM + RNNLMのリスコアリング

31

Page 32: 音声認識における言語モデル

リスコアリング■ First-passで出力した N-bestを Second-passでリスコアリングする■ First-passで出力した N個の候補を N-bestという

32

Page 33: 音声認識における言語モデル

リスコアリングEmpirical Evaluation and Combination of Advanced Language Modeling Techniques. [Mikolov+ 11]

■ リスコアリングは以下のように各言語モデルの線形和をとる

■ 重みはヒューリスティックに決める■ Mikolovの論文では N-gramLMで N-bestを出力し, RNNLMでリスコアリングしたものが最も精度が良い例 ) N-gramLMで N-best → 出力 1-of-K → 表現 RNNLMに入力 → RNNLM → のスコアが出る N-gramLMのスコアと線形和をとる 33

Page 34: 音声認識における言語モデル

リスコアリング RNNLMの問題点■ 精度が N-gramLMに依存する N-bestの中からしか最適解を選べない■ 依然,計算コストは大きい ・特に出力層のソフトマックスによる正規化が学習と評価の双方でコストが大きい (これ自体はよく知られた課題) ・単語数の増加に従ってコストも増加する

34

Page 35: 音声認識における言語モデル

Noise Contrastive Estimation for Speech RecognitionRecurrent neural network language model training with noise contrastive estimation for speech recognition [Chen+ 15]

35

損失関数

正規化項が過去の単語に依存

Page 36: 音声認識における言語モデル

Noise Contrastive Estimation for Speech Recognition

36

データが以下のような混合分布 (NCEで近似する RNNLMの分布 +ノイズの分布 )から生成されると仮定する

なんやかんや

Page 37: 音声認識における言語モデル

Noise Contrastive Estimation for Speech Recognition

37

正規化項が過去の単語に依存しない定数

Page 38: 音声認識における言語モデル

Noise Contrastive Estimation for Speech Recognition

38

Cross-Entropy(通常のソフトマックス )と同等のWERを保ちながら, train, evalの双方で大幅な高速化を実現RNNLMの学習データは 20M word Fisher data

Page 39: 音声認識における言語モデル

Noise Contrastive Estimation for Speech Recognition

39

単語数が増加しても速度は不変

■ リスコアリング RNNLMの精度 /速度を上げる研究は他にも多くある

Page 40: 音声認識における言語モデル

CUED-RNNLM Toolkit

■ 先ほど紹介した RNNLM training with NCEの著者 Xie Chenが公開しているRNNLMを記述できるツールキット■ RNNLMのツールはいくつかあるが,音声認識で使用するのに最も適してそう■ 手軽にリスコアリングを行える■ Kaldiと組み合わせられる

40

http://mi.eng.cam.ac.uk/projects/cued-rnnlm/

Page 41: 音声認識における言語モデル

まとめ■ RNNLMの音声認識システムへの組み込み方は様々■ N-gramLMで出力した N-bestをリスコアリングするのが主流■ リスコアリングの速度を上げる研究は NCE含め多く提案されている

41