我為什麼從技術角度不看好中國的智能音箱
前言:想寫此文因為https://www.zhihu.com/question/267639636/answer/327879566 在這個國內有哪些問答(QA)或對話(dialogue)比較牛的團隊或個人,列下其成果?的回答中有人提到了我。
實在是感覺捧殺,因為自己做的對話的東西太過初步(無法精確自然語言理解),於是想寫寫對話到底現在技術做到什麼樣子了。
------------------正文開始的分割線---------------
最近公司都在做音箱,PR的多,給我發職位邀請的也多(雖然我感覺我並不能勝任),但是往往大家用完會有一種智能智障的感覺(大家可以自行查詢智能智障這四個字)。我來寫寫對於聊天,以及音箱最重要的一個問題自然語言理解。
自然語言理解分為兩個套路:一個是文本匹配,一個是語義解析(Semantic Parsing);
文本匹配即:給定文本A,B,給一個相似度打分。常見應用搜索引擎,扯淡型聊天機器人。
語義解析即:給定一個文本,把它分析成某特定的邏輯表達式。常見應用是 人類語言-》SQL語句的轉化,以及任務型聊天機器人。
他們最大的不同是啥呢,文本匹配任務往往比較粗糙,他會把北京到上海的機票和上海到北京的機票相似度算的很大,不區分邏輯,而語義解析則不同,它能把它parse成一個邏輯表達式,分清從哪兒去哪兒。語義解析對於精準的理解自然語言是十分重要的,雖然文本匹配可以大面上理解,但是理解的還不夠,不能推理,不能分清我愛你和你愛我的區別。適用於要求精度不高的應用,比如閑聊天,比如搜索引擎。這就導致了,音箱這種完成命令式的傢具,核心技術就是語義解析。
當然不要在這裡抬杠說音箱可以內置個扯淡型聊天機器人~
於是,現在的音箱就會能回答的問題極少(因為程序員要吃飯睡覺,寫不了這麼多規則,也寫不了那麼多API調用),從網上找了找例子
問「有時候有時候我會相信一切有盡頭這首歌」——xx精靈不會通過歌詞來搜歌曲名
問「我手一杯品嘗你的美是什麼歌」——xx精靈說沒找到
說「我喜歡這首歌」——xx精靈貌似不支持收藏歌曲
問「播放鬼吹燈」——不會講有聲書
問「來一個音樂頻道」——不支持音樂頻道
問「播放遼寧的廣播」——在鬼扯
問洛杉磯今天哪一天——只知道北京時間,沒毛病啊
問三個火是什麼字——不支持字典功能
問美好的近義詞——不支持近義詞功能
問床前明月光翻譯——不支持詩詞解釋
問日心說是誰提出的——不支持百科問答
問莫扎特的代表作——找不到
問根號三等於多少——只會1000以內加減乘除,心累(其實是rule寫的太少)
問how do you do什麼意思——答非所問,簡單英文翻譯也不會
問從廣州到深圳路況怎麼樣?——答不上來
所以,現在音箱能幫助大家的還很少。 一個很明顯的例子就是根號三等於多少,這個由於寫rule工程師沒寫就失敗了。。。當然以後隨著功能變多,需要處理的情況就越多,規則就越來越暴露自己的缺陷。
--------------一個例子來詮釋音箱怎麼做------------
舉一個例子:如果現在用戶的輸入是 「給我唱一首周杰倫的歌」,一個智能助手的策略是首先做NLU,分析Domain,Intent,和抓Slot:
輸入:給我唱一首周杰倫的歌。
Domain:音樂
Intent:播放歌曲
Slot: 歌手=周杰倫
此時不同Intent所需要填滿的Slot數量不一樣,且Slot需要人工定義(這也導致了所有智能音箱等服務,從一個領域到另一個領域不是data driven的,而是需要大量人力的)
至於domain和intent都是一個類似分類器的東西可以靠規則或者模型實現,Slot如何抽怎麼填可以用模型Semantic Parsing也可以靠規則來填。這導致了Slot填的時候,往往大領域可以訓練模型,小領域只能寫規則。當然大領域訓練模型的代價並不一定小於給大領域寫Rule。
綜上,所有智能服務設備的瓶頸在兩個地方:如何為每個領域定義不同的Intent和Slot,以及如何把Domain,Intent和Slot Filling識別自動化。這兩個問題現在一個也沒用Data-driven的模式解決。
----------------我是另一個分割線-------------
很奇怪的是,在中國如果找10個做NLP的,基本8個都能說出什麼是文本匹配,但是估計只有一個知道並熟悉什麼是語義解析。包括如果你在知乎進行搜索,文本匹配,你會發現相關介紹一堆,說的也是像模像樣
但是一旦你搜索語義解析呢:
你會發現大部分的語義解析都不是真正NLP裡面定義的語義解析。
更重要的是,中國的學術圈也是做文本匹配的多,做語義解析的少。原因往往是文本匹配應用很成熟,搜索推薦廣告,互聯網三駕馬車都會用到的是文本匹配技術。而像音箱或者智能助手,最後大家也不研究如何語義解析,直接寫規則系統,用一個基於規則的語義解析器來做音箱。
這就導致了音箱的對於語言的理解永遠被正則表達式(規則)束縛,舉步維艱。而Semantic Parsing在國外卻熱的多,無論是Stanford和CMU,他們的NLP一大塊都是做Semantic Parsing,包括Socher也在研究這個問題,而中國研究的卻比較少。所以,國外的音箱在智能上會比國內的好一些(當然也是半個智障)。
總之,面對著一個用工程師血與淚寫出來的規則系統,我真是不抱太大期望,只能說程序員辛苦了。做NLP的程序員繼續follow語義解析的進展,希望有一天這個技術能更成熟,讓智能智障變成智能音箱。
推薦閱讀:
※python學習之文章數據分析
※學習筆記CB004:提問、檢索、回答、NLPIR
※torchtext入門教程,輕鬆玩轉文本數據處理
※AI+互聯網金融--入職半年總結
※Learning Explanatory Rules from Noisy Data 閱讀筆記4