0
雷鋒網(wǎng) AI 科技評論按:這篇文章來自蘋果機(jī)器學(xué)習(xí)日記(Apple Machine Learning Journal)。與其他科技巨頭人工智能實(shí)驗(yàn)室博客的論文解讀、技術(shù)成果分享不同,蘋果的機(jī)器學(xué)習(xí)日記雖然也是介紹他們對機(jī)器學(xué)習(xí)相關(guān)技術(shù)的心得體會,但側(cè)重點(diǎn)在于技術(shù)產(chǎn)品的實(shí)現(xiàn)過程、技術(shù)資源用戶體驗(yàn)之間的取舍,更像是「產(chǎn)品經(jīng)理的 AI app 研發(fā)日記」。過往內(nèi)容可以參見 如何設(shè)計(jì)能在Apple Watch上實(shí)時運(yùn)行的中文手寫識別系統(tǒng),蘋果揭秘「Hey Siri」的開發(fā)細(xì)節(jié),為了讓iPhone實(shí)時運(yùn)行人臉檢測算法,蘋果原來做了這么多努力。
在最新一期中,蘋果介紹了如何讓 Siri 根據(jù)用戶所在地的不同,準(zhǔn)確識別出用戶提到的周圍的地點(diǎn)。雷鋒網(wǎng) AI 科技評論編譯如下。
近年來,由于深度學(xué)習(xí)技術(shù)的廣泛應(yīng)用,自動語音識別(ASR)系統(tǒng)的準(zhǔn)確率有了顯著的提高。然而,人們目前主要是在通用語音的識別方面取得了性能的提升,但準(zhǔn)確地識別有具體名字的實(shí)體(例如,小型本地商戶)仍然是一個性能瓶頸。
本文描述了我們是如何應(yīng)對這一挑戰(zhàn)的,通過將用戶地理位置信息融入語音識別系統(tǒng)提升 Siri 識別本地 POI 信息點(diǎn)(point of interest,興趣點(diǎn))名稱的能力。能夠?qū)⒂脩舻奈恢眯畔⒖紤]在內(nèi)的自定義語言模型被稱為基于地理位置的語言模型(Geo-LMs)。這些模型不僅可以利用聲學(xué)模型和通用語言模型(例如標(biāo)準(zhǔn)的語音識別系統(tǒng))提供的信息,還可以使用用戶周圍的環(huán)境中的POI信息點(diǎn)的信息,更好地估計(jì)用戶想要的單詞序列。
一般來說,虛擬助理都能夠正確地識別和理解像星巴克這樣的知名企業(yè)和連鎖商店的名字,但是很難辨認(rèn)出用戶查詢的數(shù)以百萬計(jì)的小型本地 POI (興趣點(diǎn))的名字。在自動語音識別系統(tǒng)中,人們公認(rèn)的一個性能瓶頸是:準(zhǔn)確有具體名字的的實(shí)體(例如,小型本地商戶),而這正是頻率分布的長尾(少量、多種類的需求)。
我們決定通過將用戶地理位置信息融合到語音識別系統(tǒng)中來提高 Siri 識別本地 POI 的名稱的能力。
自動語音識別系統(tǒng)同城由兩個主要部分組成:
一個聲學(xué)模型,用于捕捉語音的聲學(xué)特征和語言學(xué)單位序列之間的關(guān)系,如語音和單詞之間的關(guān)系
一個語言模型(LM),它決定了某個特定的單詞序列出現(xiàn)在一種特定的語言中的先驗(yàn)概率
我們可以找出造成這種困難(準(zhǔn)確識別具名實(shí)體)的兩個因素:
系統(tǒng)通常不知道如何表示用戶可能怎么樣發(fā)出模糊的實(shí)體名稱
實(shí)體名稱可能只在語言模型的訓(xùn)練數(shù)據(jù)中出現(xiàn)一次,或者根本沒有出現(xiàn)。想象你生活中各種各樣的公司的名稱,你就能理解為什么說這是一個巨大的挑戰(zhàn)了。
第二個因素導(dǎo)致了構(gòu)成本地企業(yè)名稱的單詞序列會被通用語言模型分配到一個非常低的先驗(yàn)概率,從而使得一個公司的名稱不太可能被語音識別器正確地選到。(比如雷鋒網(wǎng)樓下的「時令果町」,日常的中文使用中是不會出現(xiàn)這樣的組合的)
我們在本文中提出的方法架設(shè)用戶更偏向于用移動設(shè)備搜索附近的本地 POI,而不是使用 Mac,因此我們在這里使用移動設(shè)備的地理位置信息來提高 POI 的識別性能。這有助于我們更好地估計(jì)用戶想要的單詞序列。通過將用戶的地理位置信息融合到Siri的自動語音識別系統(tǒng)中,我們已經(jīng)能夠顯著地提高本地 POI 識別和理解的準(zhǔn)確率。
我們定義了一組覆蓋美國大部分地區(qū)的地理區(qū)域(Geo regions),并且為每個區(qū)域構(gòu)建了一個基于地理位置的語言模型(Geo-LMs)。當(dāng)用戶提出查詢請求時,他們會得到一個根據(jù)用戶目前的位置信息定制的系統(tǒng),這個系統(tǒng)帶有一個基于地理位置的語言模型。如果用戶在任何定義的地理區(qū)域之外,或者如果 Siri 無法訪問定位服務(wù),系統(tǒng)就會使用一個默認(rèn)的全局 Geo-LM。接著,被選取的 Geo-LM 會與聲學(xué)模型結(jié)合起來對自動語音識別系統(tǒng)進(jìn)行解碼。圖1 顯示了系統(tǒng)整體的工作流程。
圖1.系統(tǒng)概覽
我們根據(jù)美國人口普查局的綜合統(tǒng)計(jì)區(qū)域(CSAs)[1]來定義地理區(qū)域。從通勤模式來看,CSA 包含了經(jīng)濟(jì)上和社會上相連的鄰近大都市區(qū)域。169 個 CSA 覆蓋了美國 80% 的人口。我們?yōu)槊總€ CSA 建立一個專用的 Geo-LM,其中包含一個全局 Geo-LM,覆蓋所有 CSA 未定義的區(qū)域。
為了高效地搜索用戶所處的 CSA,我們存儲了一個來自美國人口普查局[2]提供的柵格化地圖邊界(或形狀文件)的緯度和經(jīng)度查找表。在運(yùn)行時,查找地理位置的計(jì)算復(fù)雜度為O(1)。
Siri 的自動語音識別系統(tǒng)使用了一種基于加權(quán)有限狀態(tài)機(jī)(WFST)的解碼器,該解碼器由 Paulik 首次提出[3]。該解碼器采用差分語言模型原理,這與[4,5]中描述的框架相類似。
我們實(shí)現(xiàn)了一種類語言模型,在這個模型中,我們用類內(nèi)語法動態(tài)地替換類非終結(jié)符。圖2 對這個概念進(jìn)行了說明。我們使用了一個主語言模型,將其用于通用識別,并且為預(yù)定義的類別引入了終結(jié)符標(biāo)簽,例如地理區(qū)域。對于每一個類,Slot 語言模型都是由與類相關(guān)的實(shí)體名稱構(gòu)建的,并且用于表示類內(nèi)語法。接著,使用主語言模型和 slot 語言模型構(gòu)建基于地理位置的語言模型,其實(shí)現(xiàn)過程如下節(jié)所述。
圖2 類語言模型的通用框架
直接構(gòu)建基于地理位置的語言模型(Geo-LM)的方法是為每個地理區(qū)域構(gòu)建一個語言模型,每一個模型都是通過插入通用語言模型和從帶有地理信息的訓(xùn)練文本中訓(xùn)練出的特定地理位置的語言模型得到的。這樣做的問題是,通用語言模型通常都很大,因?yàn)樗采w了很多的領(lǐng)域。生成的基于地理位置的語言模型積累出的模型大小往往太大,無法在運(yùn)行時直接裝載到內(nèi)存中。另一方面,POI名稱可以構(gòu)建緊湊的語言模型,它的大小可能是一個完整的通用語言模型的千分之一到十分之一;基于以上分析,我們提出了類語言模型框架。
在我們的類語言模型框架中,主語言模型如其它的類語言模型一樣被訓(xùn)練,訓(xùn)練使用的文本來自于所有模型支持的領(lǐng)域。為了提升對非終結(jié)符標(biāo)簽的支持,最初我們依賴于使用通過基于特定地理位置的模版認(rèn)為創(chuàng)建的訓(xùn)練文本,例如「指向\CS-POI」,其中「\CS-POI」為類標(biāo)簽。這樣的人造文本能夠幫助引導(dǎo)模型初始化對非終結(jié)符的識別。在部署好基于地理位置的語言模型后,我們的自動語音識別系統(tǒng)的輸出將具有特殊的標(biāo)記,例如:在通過類語言模型框架識別的地理實(shí)體周圍會有「\CS-POI」標(biāo)記。新的基于地理位置的語言模型的輸出將使我們能夠不斷為主語言模型中的非終結(jié)符提供訓(xùn)練文本。
在基于地理位置的語言模型中,Slot 語言模型是用特定類的實(shí)體(POI)訓(xùn)練的。在我們提出的系統(tǒng)中,為每個地理區(qū)域都構(gòu)建了一個slot語言模型。每個slot語言模型的訓(xùn)練文本由相應(yīng)區(qū)域的本地POI的名稱組成。
圖3 展示了一個基于加權(quán)有限自動機(jī)的類語言模型的小例子,其中包含了一個代表三個帶有先驗(yàn)概率的簡單模板的主語言模型(某條記錄相對于其它的選項(xiàng)出現(xiàn)的概率):
先驗(yàn)概率=0.5: 指向\CS-POI
先驗(yàn)概率=0.3: 地點(diǎn)正好為\CS-POI
先驗(yàn)概率=0.2:尋找最近的\CS-POI
該模型也囊孔了一個slot語言模型,它僅僅包含三個帶有先驗(yàn)概率的POI:
先驗(yàn)概率=0.4: 哈佛大學(xué)
先驗(yàn)概率=0.4: TD 花園
先驗(yàn)概率=0.2:Vidodivino
圖3. 基于加權(quán)有限自動機(jī)的類語言模型的簡單示例
將 POI 作為一個統(tǒng)計(jì) n-gram 語言模型進(jìn)行訓(xùn)練讓我們能夠?qū)?POI 名稱的動態(tài)變化進(jìn)行建模。例如,只要「哈佛大學(xué)」一詞存在于訓(xùn)練文本中,「哈佛」和「哈佛大學(xué)」都可以在 slot 語言模型中被建模。我們根據(jù)在產(chǎn)生的流量中觀察到的分布獲取先驗(yàn)概率。
在運(yùn)行中,我們必須基于如圖3 所示的當(dāng)前用戶的位置,動態(tài)、有效地將主語言模型中的類非終結(jié)符替換為各自相應(yīng)的 slot 語言模型,其中「\CS-POI」代表基于地理位置的語言模型中的非終結(jié)符。
為了確保解碼詞典能夠涵蓋所有POI的名字,當(dāng)某個 POI 的名字在我們的解碼詞典中無法找到時,我們會使用一個內(nèi)部的「字符到音素(G2P)」系統(tǒng)自動推導(dǎo)出發(fā)音。
這樣的框架使我們能夠?qū)φ麄€系統(tǒng)進(jìn)行靈活的更新。當(dāng)你想要更新 POI 或增添新的地理區(qū)域時,你只需要重構(gòu)或添加更多的 slot 語言模型。由于 slot 語言模型的規(guī)模很小,其重構(gòu)過程使很快、效率很高。盡管一個典型的通用語言模型的大小可以達(dá)到 200MB 或者更大,而一個 slot 語言模型的大小僅為 0.2MB 到 20MB,具體大小取決于包含的實(shí)體數(shù)量。Slot 語言模型的靈活性對于我們的應(yīng)用程序的可持續(xù)性至關(guān)重要。這是 POI 名稱的迅速變化造成的,這種變化可能是因?yàn)樵摰攸c(diǎn)的新公司開張或者舊公司關(guān)閉以及這里不斷變化的人口。除此之外,由于 slot 語言模型比較小,我們提出的框架允許在服務(wù)器初始化時將所有的語言模型預(yù)加載到系統(tǒng)內(nèi)存中。因此,開關(guān) slot 語言模型的過程可以在內(nèi)存中完成,這使得我們可以得到一個非常高效的實(shí)現(xiàn)。我們的測試結(jié)果說明,主語言模型和 slot 語言模型的動態(tài)組合智慧引起邊際延遲的增加。
在本節(jié)中,我們展示了對提出的基于地理位置的語言模型的對比基準(zhǔn)測試,與將通用模型用于美國 POI 識別的任務(wù)進(jìn)行了對比。在所有的實(shí)驗(yàn)中,我們使用了一種混合的卷積神經(jīng)網(wǎng)絡(luò)CNN-HMM(隱馬爾可夫卷積神經(jīng)網(wǎng)絡(luò))[6]。自動機(jī)是利用 5,000 個小時的英語語音數(shù)據(jù)通過過濾器組特征訓(xùn)練得到的。具體而言,我們的基于地理位置的語言模型是作為一個4元模型訓(xùn)練得來的。我們手動改寫了測試數(shù)據(jù),并對地理位置進(jìn)行了標(biāo)注,一邊在測試期間可以使用正確的 slot 語言模型。接下來,我們將首先描述我們用來訓(xùn)練和測試 Geo-LM 的數(shù)據(jù),然后展示實(shí)驗(yàn)結(jié)果。
用來訓(xùn)練通用語言模型對比基線的訓(xùn)練文本(D1)包含從各種數(shù)據(jù)源收集到的、保密、實(shí)時使用的數(shù)據(jù)。
用來在我們提出的基于地理位置的語言模型(Geo-LM)中構(gòu)建主語言模型的訓(xùn)練數(shù)據(jù)由D1和人為創(chuàng)建的用例模版組成,其中包含「構(gòu)建基于地理位置的語言模型」這一節(jié)中提到的POI類標(biāo)志。
為了構(gòu)建 slot 語言模型,我們從每天更新的蘋果地圖搜索日志中提取出被搜索的POI名稱。提取出的POI被根據(jù)其地點(diǎn)和人口分成 170 組,從而為 169 個 CSA 和一個對應(yīng)于沒有被 CSA 涵蓋的請求的全局組構(gòu)建 slot 語言模型。每個 POI 的先驗(yàn)概率是根據(jù)它們在搜索日志中的使用頻率設(shè)置的。表 1 顯示了通用語言模型和 Geo-LM 的兩個組成部分的 n-gram 的大小比較。Slot 在 170 個地理區(qū)域中,平均比通用模型的規(guī)模小的多。
表1.通用語言模型和Geo-LM中n-gram的數(shù)量
在我們的實(shí)驗(yàn)中,我們使用了兩類測試數(shù)據(jù):
我們使用的是從 Siri 在美國的生產(chǎn)流量中隨機(jī)選取出的真實(shí)世界中的用戶數(shù)據(jù),我們根據(jù)它創(chuàng)建了兩個測試集:
T1:一個POI搜索測試集,由本地 POI 搜索域中的20,000條語音組成
T2:一個通用測試集,由沒有包含在 POI 中的10,000條語音組成
一套內(nèi)部記錄的本地POI搜索測試集(T3)。我們挑選出了八個美國主要的大都會區(qū),并根據(jù) Yelp 上的評論選出了 1,000 個最熱門的 POI。對于每一個 POI,我們將記錄來自于三個不同說話者的三條語音,并且分別為這三條語音加上或刪掉領(lǐng)語「direction to」。請注意,我們從列表中刪除了 6,500 個大型 POI,因?yàn)樗鼈兇蠖鄶?shù)都可以在不使用 Geo-LM 的情況下被識別出來,并且其識別主要是根據(jù)熱度進(jìn)行的。
我們首先在現(xiàn)實(shí)世界用戶測試集 T1 和 T2 上進(jìn)行了實(shí)驗(yàn)。表 3 總結(jié)的結(jié)果表明,Geo-LM 能夠在不降低在 T2 上的準(zhǔn)確率的情況下,在 T1 上降低 18.7% 的字錯誤率。
因?yàn)?T1 是從生產(chǎn)環(huán)境的流量中隨機(jī)抽樣得到的,它包含了相沃爾瑪和家得寶這樣的大型 POI,而通用語言模型已經(jīng)能夠識別出它們。為了在更加難以找到的本地 POI 上測試名稱識別系統(tǒng)的性能,我們在 T3 上進(jìn)行了測試,其中并不包括大型 POI。如表 4 所示,實(shí)驗(yàn)結(jié)果表明,通用語言模型在 T3 數(shù)據(jù)集上表現(xiàn)并不好,而我們提出的基于地理位置的語言模型在八個地理區(qū)域中普遍能夠?qū)⒆皱e誤率降低40%以上。
我們還比較了兩個系統(tǒng)的運(yùn)行速度,并且觀察到 Geo-LM 的平均延遲稍微增加了不到10毫秒。
表3在真實(shí)世界用戶測試集(T1和T2)上通用語言模型和 Geo-LM 得到的字錯誤率對比
表4.在美國的八個主要的大都會區(qū)的最熱門的 POI 測試集(T3)上通用語言模型和 Geo-LM 得到的字錯誤率對比
在這項(xiàng)工作中,我們展示了一個十分有效的基于地理位置的語言模型(Geo-LM),它有幾下幾個優(yōu)勢:
訓(xùn)練過程很靈活
運(yùn)行時高效的語言模型構(gòu)造
在本地 POI 識別任務(wù)重,自動語音識別系統(tǒng)的準(zhǔn)確率相較于通用語言模型有很大的提高
我們的實(shí)驗(yàn)表明,使用本地化的信息可以使當(dāng)?shù)?POI 搜索的字錯誤率降低18%以上。在不包含大型 POI 使,字錯誤率會降低 40% 以上。
由于對系統(tǒng)運(yùn)行速度的影響很小,對于其它區(qū)域的覆蓋還有很大的提升空間。然而,除了區(qū)域性的語言模型,還需要繼續(xù)提供一個全球化的 Geo-LM,從而使自動語音識別系統(tǒng)能夠處理遠(yuǎn)距離查詢,并且能夠應(yīng)對用戶在支持的區(qū)域之外的情況。
本文提出的方法和系統(tǒng)與具體使用的語言是無關(guān)的。因此,除了美國和英語區(qū),Geo-LM 也支持直接對其它的地區(qū)進(jìn)行擴(kuò)展。
想要了解更多的細(xì)節(jié),以及對我們在本文中提出的 Geo-LM 進(jìn)行的廣泛的性能評估,可以參閱我們在 ICASSP2018上發(fā)表的論文「Geographic Language Models for Automatic Speech Recognition」[7]。
參考文獻(xiàn)
[1] U.S. Census Bureau, “Combined Statistical Areas of the United States and Puerto Rico,” 2015.
[2] U.S. Census Bureau, “Cartographic Boundary Shapefiles,” 2015.
[3] M. Paulik, “Improvements to the Pruning Behavior of DNN Acoustic Models,” Interspeech, 2015.
[4] H. Dolfing and I. Hetherington, “Incremental Language Models for Speech Recognition Using Finite-state Transducers,” Proceedings of ASRU, 2001, pp. 194–197.
[5] D. Povey, A. Ghoshal, G. Boulianne, L. Burget, O. Glembek, N. Goel, M. Hannemann, P. Motlicek, Y. Qian, P. Schwarz, et al., “The Kaldi Speech Recognition Toolkit,” Proceedings of ASRU, 2011, pp. 1–4.
[6] O. Abdel-Hamid, A. Mohamed, H. Jiang, L. Deng, G. Penn, and D. Yu, “Convolutional Neural Networks for Speech Recognition,” IEEE/ACM Transactions on Audio, Speech, and Language Processing, vol. 22, no. 10, pp. 1533-1545, 2014.
[7] X. Xiao, H. Chen, M. Zylak, D. Sosa, S. Desu, M. Krishnamoorthy, D. Liu, M. Paulik, and Y. Zhang, “Geographic Language Models for Automatic Speech Recognition,” in Proceedings of ICASSP, 2018.
via Apple Machine Learning Journal,雷鋒網(wǎng) AI 科技評論編譯
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。