這種語音助手基本由以下三個部分構成:
第一部分是語音識別,這相當于要求語音助手能精準地聽出來用戶在說什么,這部分的難點是要能適應各種嘈雜的環境,適應各種口音和方言等。如果安裝了攝像頭,那么這種助手獲取信息的渠道就不只是聽到了什么,還包含看到了什么,這就會牽涉到計算機視覺。
第二部分是語義識別,只是聽清還不夠,還要理解用戶到底想干什么,說的是什么意思。這部分在正常情況下也要負責關聯上下文進行會話,不能前言不搭后語。
第三部分則是信息獲取,這和傳統搜索比較相似,但要求有更高的精度,因為精度不高就會導致這種語音助手顯得很傻,要說很多句話才能完成一個買東西這種本身并不太復雜的行為,一旦如此大家是不愿意用的。
為了達成第三部分中搜索變得更精準的目的,其實還有兩種技術會變得越來越重要,那就是根據人的歷史行為來對他進行畫像,比如你偏好川菜,有很好的消費能力等;也要能盡可能精確地感知到當前的情境,比如你在北京,天氣不錯等。這些都相當于為語音助手補足信息,否則單純地面對“給我來杯咖啡”這樣的請求,那么就一定會產生多輪的會話,而輪數越多,智能語音助手就會顯得越傻。只有知道這個人喜歡黑咖啡,常去星巴克,當前又在798,那才可能一次給出答案,展現出比用觸屏或者鼠標還高的效率。
這樣的技術結合起后端的數據處理能力會為我們解決非常多的問題,那么相關的各種技術到底發展到了怎樣的一種程度呢?截至2016年3月,人工智能在語音和圖像上已經取得了階段性成果,但語義上暫時還看不到能徹底解決的跡象。
如圖
(1)語音識別。
這是一個最近幾年基本已經被深度學習攻克的領域,只要花足夠的錢,識別精確度甚至可以達到99%。在語音識別這種領域,最后幾個點精度的提升很可能比前面達成90%的精度還要費勁,但最后這幾個點的精度往往正是跨越能用和不能用的關鍵。沒有深度學習之前,人們已經嘗試攻克語音識別很多年,一般來講1952年貝爾實驗室研究的第一個能識別10個英文數字發音的語音識別系統被認為是語音識別的起點,這樣算起來人類已經在這件事上努力了60多年。隨后人們在20世紀70年代搞定了小詞匯量的語音識別,在80年代搞定了大詞匯量的語音識別,然后精度就卡在那里了,大概在85%徘徊,一卡就接近30年。微軟、IBM當年都曾經嘗試把這項技術應用起來,但顯然沒什么效果,好多人甚至不記得它們干過這件事情。深度學習應用于語音識別后,事情有了根本性的變化,現在只要有足夠的數據進行訓練,大多數公司自己都可以訓練出足夠精確的語音識別模型。這項技術基本上要貨品化了,越來越可以認為這是一種不要特別多的投入就可以搞定的技術。
(2)圖像識別。
這也可以認為是一個基本已經被攻克的領域,但實現起來比語音要費勁一些。圖像識別比語音識別要麻煩,因為語音識別的對象總是各種有限的語言。但圖像里人臉和貓的識別在具體實現上還不能用一個通用的方法來處理。當前的狀態是如果選定一個點比如人臉識別,砸入幾十個PhD、幾百塊GPU,還能找到落地點不斷獲得數據,那么花個一兩年就可以做到非常高的精度(99%以上),但這種精度眼下還沒辦法一下子就覆蓋到其他領域,比如人臉就不能很容易地遷移到貓臉上,只能一個點一個點來搞定。像人臉這種領域因為有切實的落地場景(銀行等),所以一下子就發展起來了,其他的領域要想都達到同樣的水平,還需要一點時間。
(3)語義理解。
和語音識別與圖像識別不一樣,語義理解處在一種基本沒搞定的狀態。我們看演示的時候時常能看到一個機器人或智能型產品與人進行流暢的交流。達到這種狀態有兩種可能:一種是作弊,后面放了個人,屬于人工的人工智能;另一種是對話被限定在特定的場景下,比如在汽車里打電話,讓地圖導航等。語義理解的難度與所要處理的概念數有關,當要處理的概念數在幾千個以下的時候,針對特定場景按照基于規則的方式還是可能搞定的,會做得比較流暢。但是一旦這個范圍擴大到整個社會生活,那么最多也就是Google Now和Siri那個樣子。與這點密切相關的應用,一個是各種智能語音助手在對話時的智能程度,另一個則是翻譯。
(4)數據挖掘。
由于這個點往往是面向企業的業務,所以大眾會比較陌生,但其實在美國這是落地最多的方向。這個方向的狀態和圖像有點像,在每一個垂直的方向都可以優化出很有用的系統,但沒辦法做出通用的系統。比如有的公司會根據醫療診斷數據以及你的財務狀況直接提供性價比最高的治療方案,但這樣的系統就不能擴展用來做金融欺詐檢測。這個方向其實比上面所有的方向都更能吸引投資,因為它的收益往往更加直接。換個視角,這種后端數據整合工作也可以看成是在為前端的智能助手等儲備能量,一旦它成熟到一定程度,并接入某個終端比如亞馬遜的Echo,那么Echo的力量就會瞬間增強。圖4-1是到2015年年底風險投資在各個與人工智能相關領域的投資分布統計,看了之后,我們會驚訝地發現最主要的投資確實是落在企業和行業應用(下圖中標為黃色的領域)這些我們不太關注的領域里,這可以從側面證明這個領域確實是整個人工智能圖譜中成熟度最高的。
這也就意味著當前非語義識別的領域已經接近成熟,但語義識別上離成熟還比較有距離,非常多的對話程序依賴于規則匹配,也就是說查關鍵詞來確定你到底要的是什么,這種方式解決開燈、關燈這類需求是可以的,解決幫我訂杯咖啡就有點難,解決我想看趙本山2011年的小品就基本搞不定了。
所以說一般的認識是人類暫時還做不出來通用型的語義理解、對話系統,只能在特定場景下進行優化,比如車里面放音樂、打電話。如果場景變大,比如一個視頻網站的所有內容,那就需要針對這個場景建立知識圖譜,用這種方式就有可能建立特定場景的精確對話系統。如果我們把問題劃分為一般人能搞定的問題、牛人能搞定的問題、頂尖科學家能搞定的問題、沒人能搞定的問題,那么這個領域屬于頂尖科學家能部分搞定的問題,如果非要歸類的話則必須歸在沒人能搞定的那一類問題里。
假設上述問題搞定了,我們真的如愿做出了某種小機器人,人類很喜歡它,走到哪里都帶著,但突然有一天把它帶到九寨溝,它就像死了一樣,再也沒反應了,這時候體驗無疑也會很差。這個問題背后隱含了人工智能的第二個難點,這個難點和上面的純技術有點不一樣,它牽涉到硬件。
這個難點可以簡單總結為終端上的計算速度和智能問題。深度學習通常需要大的基于GPU的計算能力和非常多的數據。一旦需要放到小的終端上,比如一個攝像頭或者小機器人上,那就會因為計算能力不夠而產生麻煩。有的公司現在嘗試做一種可以在小的終端上跑機器學習的芯片,如果這種東西出現,那么無疑會讓人工智能和智能硬件的結合更加容易,但是單靠一塊芯片實質上不可能解決深度學習在終端上跑的問題。形象地講,如果上述現象成為可能,則會違背能量守恒定律,本來那么多GPU耗費很多電量跑下來才能搞定的問題,怎么可能用一小塊芯片搞定。這種芯片實質上在做的東西更像是小型化的GPU,這種小型化其實是極有價值的,它確實可以讓某些依賴于端的算法跑得更好。與此完全對立的另一種思路則是不用深度學習,而起用只需要少量數據的學習方法,這在語音識別上也有人在嘗試。
上面說的這個難點對于有些人工智能落地產品而言并非什么大問題,比如IBM沃森系統,這種系統整合醫療數據,給醫生提供診療意見,因為這種應用只會在限定場合發生,網絡條件是可以確保的,所以完全可以依賴于當前的深度學習方法獲得更好的結果。但必須連接網絡這一條件對于機器人、無人機這類所處位置不確定的產品就會造成比較大的障礙,在這些場景下當下的網絡環境還無法保證時時暢通的連接,以支持連接到云端進行處理的要求。
如果不連網,就一點智能沒有,那么機器人這類位置不固定的人工智能應用產品就很可能被卡住。遺憾的是,現在還比較難以揣測究竟什么時候能徹底解決上述兩個問題,關鍵就在于人工智能仍然還沒走完自己從0到1的過程,仍然處在一種盲人摸象的狀態。