大牛講堂|語音專題第二講,語言模型技術
語言模型技術廣泛應用於語音識別、OCR、機器翻譯、輸入法等產品上。語言模型建模過程中,包括詞典、語料、模型選擇,對產品的性能有至關重要的影響。語言模型的建模需要利用複雜的模型公式進行模擬計算,是人工智慧領域的關鍵技術之一。
地平線研發的人工智慧平台最重要的交互方式之一便是語音交互,那麼智能語音交互背後的工程原理究竟如何?本期的大牛講堂,就來一起聽聽地平線語音演算法工程師曹立新為我們科普語言模型技術~

1. 語言模型的背景
語言模型是針對某種語言建立的概率模型,目的是建立一個能夠描述給定詞序列在語言中的出現的概率的分布。給定下邊兩句話:
定義機器人時代的大腦引擎,讓生活更便捷、更有趣、更安全。
代時人機器定義引擎的大腦,生活讓更便捷,有趣更,安更全。
語言模型會告訴你,第一句話的概率更高,更像一句」人話」。
語言模型技術廣泛應用於語音識別、OCR、機器翻譯、輸入法等產品上。語言模型建模過程中,包括詞典、語料、模型選擇,對產品的性能有至關重要的影響。Ngram模型是最常用的建模技術,採用了馬爾科夫假設,目前廣泛地應用於工業界。
2. 語言模型的技術難點
語言模型的性能,很大程度上取決於語料的質量和體量。和特定任務匹配的大語料,永遠是最重要的。但是實際應用中,這樣的語料往往可遇不可求。
傳統的ngram建模技術,對長距離的依賴處理的欠佳。如工業界常用的四元模型,即當前詞的概率,只依賴三個歷史詞。因此,更遠距離的歷史詞在建模中,沒有對當前詞概率產生影響。
此外,ngram模型建模的參數空間過於龐大。同樣以四元模型為例,詞典大小為V,參數空間就是。實際應用中V大小為幾萬到幾百萬,可想而知,參數空間有多大。在這樣的參數規模下,多大的數據顯得都有些稀疏。
近年來提出的神經網路語言模型技術,一定程度上解決了參數空間大,長距離依賴的問題。而且對於相似的詞,概率估計上自帶一定程度的平滑,從另一個角度解決了數據稀疏的問題。但是神經網路語言模型的缺點是訓練時間長,實際應用中查詢速度較慢,需要結合硬體做加速。
3. Ngram語言模型
如上所說,ngram語言模型是應用最常見的語言模型。它採用了n元依賴假設,即當前詞的概率,只依賴於前n-1個詞。即

不考慮平滑,模型概率估計使用最大似然概率:
4. 平滑技術
平滑技術,可以說是ngram得以應用的重要原因,它很好地解決了參數空間大,數據稀疏的問題。工業應用中,最常用的是Katz平滑和KN平滑技術。
平滑理解起來很簡單,就是把概率高的文法進行折扣,折扣出來的概率分給低概率的文法,即「劫富濟貧」。以下圖為例,即將w1到w4的概率,分給w5到w10。

加一平滑是最簡單的平滑演算法,可以幫助我們理解平滑的本質。所有的文法的頻次都加1,這樣就不存在概率為0的文法了。反之,高頻詞文法的概率得到了一定程度的降低。
5. 語言模型的評價指標
交叉熵和困惑度是用來評估語言模型最重要的兩個指標。
交叉熵(cross entropy)的定義來自預測概率與壓縮演算法的關係,給定語言模型下可以得到一個壓縮演算法,對一個概率為p(s)的句子,用-p(s)bits保存該句子。交叉熵可以理解為,在給定語言模型下的壓縮演算法,對句子中每個詞需要的平均bits數。
交叉熵一般用下面的公式計算,m為概率p的模型:
此外,實際產品中的性能,如語音識別中的字錯誤率,輸入法中的句準確率等,也是衡量模型好壞的標準。
6. 語言模型技術的最新進展
語言模型的最新進展,主要集中在神經網路的應用上。Bengio最早提出nnlm,將幾個歷史詞拼在一起作為輸入,將當前詞放在輸出層作為目標。為了解決詞典的高維數問題,nnlm利用了映射層,對輸入進行降維。Nnlm屬於連續型模型,自帶平滑,對相同的詞歷史有一定的聚類功能,一定程度上增加了模型的魯棒性。如果和ngram模型進行融合,實驗中會獲得進一步的提升。

因Rnn在序列建模上有很大的優勢,Mikolov在nnlm上的基礎上,提出了rnnlm。Rnnlm將詞歷史抽象成一個state,降低了輸入維數。此外,為了解決輸出維數,將輸出層的詞進行聚類,通過因式分解,降低了計算複雜度。
Mikolov的rnnlm之後,lstm、cnn在語言模型上也有研究陸續在跟進。此外,在輸入層,引入語義特徵,也會帶來性能的提升。語言模型作為語音識別、OCR、輸入法等產品中的重要模型,未來如何融合語義和產品、提升用戶體驗,我們充滿期待。
推薦閱讀:
※探秘矽谷:5分鐘教你如何布局人工智慧(低調分享)
※機器人、自動控制等領域有哪些不錯的自傳或傳記?
※法律中的遞歸現象
※音箱先成「精」,「耳機精」還能吃到肉不?
※足球遊戲 AI 的代碼量是什麼數量級的?




