Download - 音声認識における言語モデル
音声認識における言語モデル2016/12/02@pfxセミナー
PFNアルバイト瀬戸山幸大郎
瀬戸山幸大郎@KotaroSetoyama
■ Retriva/PFNアルバイト音声認識 /Chainer,CuPy開発
■ 卒業論文 音声合成
2
自己紹介
本日の内容■ 音声認識システムの音響モデルの簡単な概要■ 音声認識システムで言語モデルをどう使うか ・ N-gramLMと RNNLM,それぞれをどう組み込むか ・組み込む上で高速化,精度向上の工夫
3
音声認識とは
4NEC 音声認識の仕組み http://jpn.nec.com/vsol/overview.html
音声認識とは
5
音声認識とは
6
音声認識とは
7
音響モデル■ 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
音響モデル
9
■ 音響モデルでは音声特徴ベクトルと音素 (トライフォン )を対応させる例 ) 文単位:あらゆる現実をねじねじする 無限個
単語単位:あらゆる 現実 を ・・・ 数万個
音素単位: a r a y u r u ・・・ 数十個
この各トライフォンの音素がそれぞれ異なる特徴ベクトルに対応している
(トライフォン _-a+r a-r+a r-a+y a-y+u y-u+r ・・・)
音響モデルをどう表現するか?
10
→ FST(finite state transducer) / WFST(weighted FST)
HMMの場合・各音素 (トライフォン )に対して右のような HMMを用意する・継続長の処理は自己ループによって確率的に処理できる
a - a + r
徳田恵一 . "隠れマルコフモデルによる音声認識と音声合成 ." 情報処理 45.10 (2004): 1005-1011.
11
この HMMをWFSTで表現する
徳田恵一 . "隠れマルコフモデルによる音声認識と音声合成 ." 情報処理 45.10 (2004): 1005-1011.
2016/05/12 の西鳥羽さんの全体セミナー http://www.slideshare.net/JiroNishitoba/wfst-6192988812
WFSTとは
13
14
15言語モデルをWFSTで表現すれば音響モデルのWFSTと合成できる
音響モデルをどう表現するか?
16
■ HMMも CTCも FST/WFSTを用いて表現出来る■ 言語モデルもWFSTで表すことができれば 1つの巨大なWFSTを構築できる(サーチグラフ )
■ サーチグラフを探索することで確率を計算し、確率最大のものを出力 この処理をデコードと呼び,デコードを行うプログラムをデコーダという 音声認識システムの実装で面倒なのはデコーダの部分
音響モデルをどう表現するか?
17
言語モデルはWFSTで表せられるのか?
■ HMMも CTCも FST/WFSTを用いて表現出来る■ 言語モデルもWFSTで表すことができれば 1つの巨大なWFSTを構築できる(サーチグラフ )
■ サーチグラフを探索することで確率を計算し、確率最大のものを出力 この処理をデコードと呼び,デコードを行うプログラムをデコーダという 音声認識システムの実装で面倒なのはデコーダの部分
言語モデルとは■ある言葉の次は、この言葉が続きやすいという情報を保持・ N-gram言語モデル・ Recurrent Neural Network言語モデル (今日のメイン )
18
N-gram言語モデル
19
トライグラム
■ ある単語の出現確率は過去の N-1単語に依存すると仮定■ Nは 3〜 5が多い■ コーパス中に現れない単語の確率が 0になるのを防ぐ、スムージングなどの工夫が必要■ WFSTで表すことができる
WFST of N-gram言語モデル
20
N-1個の単語の組を 1つの状態 (state)とする
■ 単語数が増えると言語モデルの状態数も増えるので状態数を減らす工夫をする■ 音響モデルは音素単位,言語モデルは単語単位だったので,単語と音素の対応表 (単語辞書 )もWFSTで表す■ 音響モデル,言語モデル,単語辞書をWFSTで表し,合成演算を行い,単語列と重みを出力するWFSTを構築
音響モデル + N-gram言語モデル
WFST音響モデル言語モデル単語候補 A
+確率 詳細は西鳥羽さんの資料参照 http://www.slideshare.net/JiroNishitoba/wfst-61929888
RNNLM
■ 2010年に Tomas Mikolovによって提案された言語モデル■ N-gram言語モデルよりも広いコンテキスト情報を保持できる■ 最新の音声認識システムでは使われることが多い
22
RNNLM
23
ソフトマックスで確率化
1-of-K
過去の履歴を保持
RNNLM
24
ソフトマックスで確率化
1-of-K
過去の履歴を保持
音響モデルと組み合わせられるのか?
RNNLMの問題点■ 計算コストが大きい 特に出力層のソフトマックスのコストが大きい (後述 )
■ サーチグラフが巨大になる N-gramLMでは N-1個の単語の組が 1つの stateであった → Nが無限 (RNNLM)の時は state数は無限?■ 単語の扱い方が N-gramLMと異なる RNNLMは単語をベクトル (連続空間 )で扱っている
25RNNLMを First-passで使用するのは容易ではない
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つにまとめる
量子化
状態の枝刈り
RNNLMを First-passで利用する例 1
27
後述するリスコアリング (N-gram+RNNLM)の方がWERは低い
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距離最小化
29
RNNLMを First-passで利用する例 2
WERはほとんど変わらない
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よりも良い精度を出している
■ First-passで RNNLMを利用しようとした例はいくつかあるが,成功例は少ない■ 主流は N-gramLM + RNNLMのリスコアリング
31
リスコアリング■ First-passで出力した N-bestを Second-passでリスコアリングする■ First-passで出力した N個の候補を N-bestという
32
リスコアリング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
リスコアリング RNNLMの問題点■ 精度が N-gramLMに依存する N-bestの中からしか最適解を選べない■ 依然,計算コストは大きい ・特に出力層のソフトマックスによる正規化が学習と評価の双方でコストが大きい (これ自体はよく知られた課題) ・単語数の増加に従ってコストも増加する
34
Noise Contrastive Estimation for Speech RecognitionRecurrent neural network language model training with noise contrastive estimation for speech recognition [Chen+ 15]
35
損失関数
正規化項が過去の単語に依存
Noise Contrastive Estimation for Speech Recognition
36
データが以下のような混合分布 (NCEで近似する RNNLMの分布 +ノイズの分布 )から生成されると仮定する
なんやかんや
Noise Contrastive Estimation for Speech Recognition
37
正規化項が過去の単語に依存しない定数
Noise Contrastive Estimation for Speech Recognition
38
Cross-Entropy(通常のソフトマックス )と同等のWERを保ちながら, train, evalの双方で大幅な高速化を実現RNNLMの学習データは 20M word Fisher data
Noise Contrastive Estimation for Speech Recognition
39
単語数が増加しても速度は不変
■ リスコアリング RNNLMの精度 /速度を上げる研究は他にも多くある
CUED-RNNLM Toolkit
■ 先ほど紹介した RNNLM training with NCEの著者 Xie Chenが公開しているRNNLMを記述できるツールキット■ RNNLMのツールはいくつかあるが,音声認識で使用するのに最も適してそう■ 手軽にリスコアリングを行える■ Kaldiと組み合わせられる
40
http://mi.eng.cam.ac.uk/projects/cued-rnnlm/
まとめ■ RNNLMの音声認識システムへの組み込み方は様々■ N-gramLMで出力した N-bestをリスコアリングするのが主流■ リスコアリングの速度を上げる研究は NCE含め多く提案されている
41