0
本文作者: 老王 | 2017-01-05 20:15 |
雷鋒網(wǎng)按:近日,阿里云人工智能專家陳一寧在 2016 云棲大會惠州峰會中給語音識別和語音交互領域潑了三盆冷水,陳一寧的觀點如下:
眾多公司對外宣稱其語音識別率多高多高,但嚴格意義上講這只能叫做在“在××數(shù)據(jù)集上的識別率”。而且語音識別和交互應緊緊與應用場景相結(jié)合,而在具體的相應場景中,識別率往往會受到很大的影響。
現(xiàn)在智能語音交互硬件產(chǎn)品往往存在外觀差、語音交互不智能等問題。
相關創(chuàng)業(yè)公司商業(yè)模式不清晰,做出偽需求產(chǎn)品、產(chǎn)品解決問題的能力有限。有 To VC 的嫌疑。
隨后,陳一寧從計算方案、聲學模型和產(chǎn)品落地三大方向解讀語音識別技術(shù)和語音交互的項目解決方案,由雷鋒網(wǎng)根據(jù)陳一寧演講進行編輯。
2016 年各家公司均公布自家的語音識別率已達到 97%,除此之外,智能硬件也層出不窮。其次,做聊天集成的公司,去年從只有幾家、十幾家,到今年已經(jīng)達到上百家。然而市場上各個公司的質(zhì)量卻良莠不齊。
從三個方向潑冷水:
識別率真有數(shù)字所寫的那么準嗎?
語音交互硬件產(chǎn)品外觀差、語音交互不智能。
To VC 式的創(chuàng)業(yè)方式:商業(yè)模式不清晰,偽需求產(chǎn)品、產(chǎn)品能解決的問題有限等。
語音識別率這塊著重提及一下。識別率一般是這么定義的,100% 錯誤率比較好理解。而錯誤率分三種,替代、刪除和插入。錯誤這個詞如果把他識別成錯誤率了,實際上沒有替代錯誤。這里有一個插入錯誤,這個地方會有一個特點,實際上錯誤率是可以小于 1 或者小于 0 的。這里強調(diào)一點,識別率的全稱一般是在某某數(shù)據(jù)級上測了一次,統(tǒng)計之后有了識別率。我可以負責任的說,任給我一個語音識別系統(tǒng),我都可以找一個測試集讓他的識別率是負的,都不用說這個識別率是 0。
任給一個語音識別系統(tǒng)我都可以做到,大家都可以很容易試,很多時候錯的比對的都多。我們更多是要看還有哪些問題是不能解決的,應該扎扎實實的去看,哪個任務上我們的識別率做到什么程度了,那這個任務上我們到底還有什么空間可以改進。
實際上語音識別是一個強場景化的技術(shù),而脫離場景談識別率,那就是耍流氓。因為各種各樣的情況,都會嚴重影響識別率的變化。
嚴重影響識別率的第一個因素是環(huán)境和設備。如錄音設備是什么?距離有多遠?環(huán)境是安靜的還是嘈雜的?大家在看演示的時候,我是跟大家說“噓…,大家現(xiàn)在小聲一點,我開始做演示了”,還是說這個環(huán)境是發(fā)生在一個嘈雜的咖啡館里面,比如在咖啡館里做一個采訪,可能在飯館里頭,這個識別率是會有天差地別。
第二個影響因素是友好度。這其中包括口音、說話的方式、吐字不清以及語種、方言等等。另外所識別內(nèi)容所處的領域也非常關鍵,如科技領域和醫(yī)療領域之間是有很大區(qū)別的,因為這兩個領域上專業(yè)名詞有非常大的差別。
這些問題都在提示我們要找哪些人去做,怎么去解決,而不是說我們拿出一些識別率的數(shù)字來說話。傳統(tǒng)意義上有兩種解決方式:一種是歸一化方式,另外一種是增加 Variance 的方式。以噪聲為例,比如我們把噪聲去掉;第二種是說既然要解決有噪聲情況下的語音識別問題,我們就要刻意制造一些噪聲到數(shù)據(jù)里面,讓模型去“接觸”所有的噪聲。就跟人類一樣,學過就知道,沒學就不知道。通過這樣的方式解決問題。 雷鋒網(wǎng)
阿里巴巴 CTO 王堅博士這樣總結(jié):阿里云語音技術(shù)的突破,在于我們充分利用了云計算和大數(shù)據(jù)平臺的能力,在不到兩年的時間,完成了通常需要 20 年或者更長時間積累的工作,構(gòu)建出強大的基于模型、數(shù)據(jù)和計算能力的學習系統(tǒng)。
接下來,我會分三個事情分別講一下解決問題的技術(shù)方案。
先談談計算。計算通常分為兩部分:離線計算和在線計算。
離線計算
離線計算在深度學習領域里通常使用 GPU 較多,阿里利用基于 GPU 多機多卡的一種中間件,使得任何單機的深度學習模型,通過非常小的修改就可以自動做到在一個多機多卡集群上去跑。
從下圖可以了解到,這里有分布式存儲,有 GPU 集群,上面的所有東西均是通過 Max Compute 平臺來做 CPU 集群混合管理,上面包含各種通訊、控制、數(shù)據(jù)分發(fā)、輔助組件,這套組件可以使得運算速度變得非常快,非常靈活。
GPU 和 CPU 各有優(yōu)缺點,GPU 計算能力更強,而 CPU 更靈活、數(shù)據(jù)存儲更好。我們通過交換機把他們完整的聯(lián)合在一起,用 Max Compute 做混合管理,使得數(shù)據(jù)可以在 GPU 和 CPU 之間任意流動,讓數(shù)據(jù)流變得很通暢?,F(xiàn)在業(yè)界的常見情況是,通過深度學習算法本身讓速度變快,但現(xiàn)實是一個系統(tǒng)項目不能只靠深度學習,因為上下游一切東西都有可能導致整個流程變慢,深度學習并不能解決所有問題。
而通過 CPU 和 GPU 混合管理,就可以避免這些情況的發(fā)生。
在線計算
剛我們提到,脫離領域、脫離場景談在線計算本身就是耍流氓。實際上因為我們的架構(gòu),可以對每一個租戶提供自己的模型,然后在每個租戶之上,我們還可對這些租戶的每個用戶提供模型。
舉一個例子,這里的領域模型可以指的是類似法院的模型、醫(yī)療的模型、金融的模型等等。租戶的模型可能是說不同的法院模型。再往上的話,每審一個案子都可以有不同的設計,案子里到底原告是誰?被告是誰?這樣的信息都可以加到模型里,使得這個識別率變得非常準確,否則這些人名是不可能事先被知道的。這種框架使得環(huán)境變得非常的好。
阿里云的數(shù)據(jù)主要為電話數(shù)據(jù)、App 數(shù)據(jù)、電商數(shù)據(jù)和搜索數(shù)據(jù)。
電話數(shù)據(jù)即大量客戶打電話進來,我們收集的這些語音數(shù)據(jù)。其次阿里擁有眾多 App,App 的語音交互也會產(chǎn)生語音數(shù)據(jù)。電商就不用提了,阿里有自己全網(wǎng)搜索。所有這些數(shù)據(jù)合在一起,構(gòu)成阿里云很大的數(shù)據(jù)池。這些數(shù)據(jù)池通過各種“脫敏”,去掉一些真正跟用戶相關的信息,然后就進入我們的整個訓練流里,使得我們最終的社會識別率變得非常的好。
在模型層面,阿里云做了一些獨特的工作。這個是比較常見的(英文 13:10)的混合的聲頻模型,實際上是阿里云第一個把這個技術(shù)投入到真實的生產(chǎn)環(huán)境中去。大家知道技術(shù)從寫出來到做出來是有很大的差異。第二個事情是很多技術(shù)我們在解碼器上面做很多的工作。
上圖中,左邊是每個子的單元,這個地方有意思的是,大家看到最左邊有一個叫遺忘,每個東西是人神經(jīng)網(wǎng)絡記憶的單元,這個網(wǎng)絡不僅能學會記憶,也能學會遺忘。如果永遠不遺忘的話,網(wǎng)絡會不斷記錄所有內(nèi)容,最終逐步膨脹,直到網(wǎng)絡爆炸掉。我們添加遺忘功能就是讓它在該遺忘的時候遺忘,不該遺忘的時候不遺忘。與此同時,大家看到右邊閉合的地方是雙向的,它知道收的話,從前往后是有關系的,那從后往前也是有聯(lián)系的。所以說,雙向的網(wǎng)絡可以使得識別率會有進一步的提升。
當然,雙向既有優(yōu)點也有缺點。因為識別的時候是單向的,如果成為雙向的話,需要拿到后面的信息。實際上不可能在這一時刻拿到后面的信息,那此時就需要做一個延時,然后后面再識別回來。該技術(shù)通過一些數(shù)據(jù)的推導,證明說后面實際不用那么長,只需一小段,就可以達到與前面一樣好的效果,讓延時變得非常可控,而非直到結(jié)束才能得到一個很好的結(jié)果。
下圖是比較傳統(tǒng)的深度神經(jīng)網(wǎng)絡模型,右邊是混合的,先有三層的BLSTM的模型,再錄了兩層 DN 模型,從而達到一個非常好的效果。
高速解碼器
剛才講的實際上是一個離線的過程,學術(shù)界和工業(yè)界最大的差異不在于離線的的訓練,因為離線的訓練,即便有時候跑得慢一點也能跑得出來。但是在線就不一樣了,在線如果跑得慢的話,就無法投入工業(yè)生產(chǎn),會有很大延時。就像我們在大會上做語音識別轉(zhuǎn)寫如果有延時,講完一句話后十秒鐘才出來就沒法看了。所以這個地方最重要的是能夠做一個在線解碼,解碼器實際上就是說把實時的聲音進來,并能實時轉(zhuǎn)出去。
實際上業(yè)界有很多的想法,即到底用 CPU 做、GPU 做還是用 FPGA 去做?其實這個地方要做到通用性和效率的平衡。通用性可以使得整個體系的靈活性和效率達到最優(yōu)。我們在 FPGA 上做一些非常個性化的東西,有時候似乎有一些好處,但是實際上它帶來的問題會使通用性變差,最終在部署上會帶來更多問題。所以我們最終在解碼上選擇了最通用性的方式,采用了 CPU 的方案,同時我們與英特爾有過很多合作,在 CPU 上得到極大的提速。
下面這個技術(shù)是我們最近研發(fā)出來的 Low-Frame-Rate 的技術(shù),這項技術(shù)實際上是個很有意思的想法。最傳統(tǒng)的語音識別會把一秒鐘切為一百幀,每一幀去做解碼的過程。現(xiàn)在 Low-Frame-Rate 技術(shù)并不是這樣去做,因為人類聽聲音也沒必要聽得那么細才能知道語音是什么。因此我們把幀數(shù)的跨度變成三倍,通過三倍的跳楨,使得整個速度變成原來三倍。這樣 Low-Frame-Rate 的 TM 模型可以使得我們在單臺 CPU 的機器上達到上百線的處理能力。
智能硬件
其實阿里云在智能硬件這塊,更多的是跟云 OS 或者跟一些合作伙伴來做。
其實阿里云更多提供底層技術(shù),在消費級產(chǎn)品實際落地方面則會跟上面業(yè)務方做合作。軟銀 Pepper 機器人跟阿里云合作做了一些工作,利用語音技術(shù)可以做到遠程喚醒和交互。但是它的交互除了眨眼、轉(zhuǎn)動,轉(zhuǎn)頭、走路外,很多交互表現(xiàn)在它胸口的屏幕上。
智能硬件需要想到一些剛需的場景切入,包括對機器人、車機、音箱等等。在國內(nèi),對智能音箱的需求不是很高,但是車機方向確是一塊越來越有價值的市場。
問答平臺
后來阿里云也進行了 Bot 實踐,阿里云做了自己的 Bot ET 問答平臺。該問答平臺會我們提供給合作伙伴,讓他們?yōu)橛脩羧ソ⒆约旱膯柎饳C器人。
除了一個問答機器人本身以外,我們這個系統(tǒng)可以讓用戶去根據(jù)用戶場景去設定他的自己的對話管理,并且可以把各種知識庫、問答對、表格等等知識庫輸入到系統(tǒng)里面去。同時閉環(huán)的流程可以通過用戶反饋,對數(shù)據(jù)進行糾正。因為知識庫大了一定會出現(xiàn)各種各樣的問題,而人在沒有輔助的情況下基本上不大可能一遍寫對。
為了解決這一問題,阿里做了很多解決沖突的工具去查找問題。數(shù)據(jù)回流時系統(tǒng)就可知道到底在問什么,通過各種各樣的方式,包括自定義可使得真正做得比較好用的機器人。但是這件事情上,阿里云有一個確定的點,其做這件事情不是為了代替,而是希望把有限的人力投入到幾個真正最難解決的問題上去把一些機械的事情,通過機器去把他干掉。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。