在智能時代,以對話為主要交互形式的CUI會應用到越來越多的場景中,這時機器往往需要能夠完成“聽懂——理解——回答”的閉環(huán)。它們相應地涉及到三類技術:語音識別、自然語言處理以及語音合成。
語音識別的任務是將用戶所說的話從音頻形式轉(zhuǎn)變?yōu)槲淖中问剑匀徽Z言處理的任務則是理解這些文字所要表達的意思(語義)。機器針對用戶的語義會給出相應的回答,并以語音的形式說給用戶聽,這就需要用到語音合成。
語音識別、自然語言理解與語音合成三者環(huán)環(huán)相扣,任何一環(huán)的失誤都無法使產(chǎn)品獲得良好的用戶體驗。
如果說語音識別是CUI交互的基礎,自然語言處理則是當之無愧的靈魂:無法理解用戶說話的意思,那和一臺錄音機有什么區(qū)別。
NLP與對話系統(tǒng)
自然語言即人類日常交流所使用的語言,與之相對的是人造語言(如各種編程語言)。自然語言處理(Natural Language Processing,NLP)主要研究機器如何理解自然語言文本的含義從而有效處理,以及人與機器之間如何通過自然語言有效通信。
NLP的應用非常廣泛,包括文本分類、文本摘要、機器翻譯、輿情監(jiān)測與對話系統(tǒng)等,每個應用領域所涉及到的技術原理會有所差異。
以CUI為主要交互形式的對話產(chǎn)品,其核心是一個對話系統(tǒng)。在一個比較簡單的對話系統(tǒng)中,用戶輸入的文字主要會經(jīng)過分詞、詞性標注、特征提取與分類檢索四個處理過程。
(1)分詞
分詞指通過分詞模型,將一個文字序列切分成一個個詞或短語。單獨的漢字與字母往往很難表達語義,所以需要將文字序列變成由詞或短語組成的序列,作為后續(xù)處理的基礎。
英文的單詞之間存在空格作為分界,所以僅存在短語的劃分問題;而中文的文字之間沒有明顯的分界符來進行詞語上的劃分,所以中文分詞比英文分詞更加困難。
中文分詞的方法主要分為三類:基于匹配、基于理解與基于統(tǒng)計?;谄ヅ涫侵笇⑽淖中蛄信c一個“詞典”中的詞語進行匹配,若在“詞典”中找到某個詞語與文字序列中的某幾個連續(xù)漢字匹配,則將這幾個連續(xù)漢字切分為一個詞;基于理解是指在分詞的同時進行句法、語義的分析,并利用句法和語義信息來幫助分詞;基于統(tǒng)計是指通過統(tǒng)計文字序列中的相鄰文字在大量文本數(shù)據(jù)中相鄰出現(xiàn)的頻率,來判斷它們是否組成了一個詞語。
(2)詞性標注
分詞模型將用戶輸入的文字序列變成“詞語序列”后,就需要通過標注模型,來標注這些詞語的詞性:即確定它們在這句話中是名詞、動詞還是代詞等等。
中文詞性標注相對英文較為簡單,因為一個中文詞語的詞性往往只有一個;即便一些中文詞語存在多個詞性,它的“主要”詞性出現(xiàn)的頻率也遠高于其余詞性。據(jù)說在中文詞性標注時,只需“簡單粗暴”地為每個詞語選取它最主要的那個詞性,即可獲得還不錯標注準確率。在需要更高的標注準確率時,可采用隱馬爾可夫模型等方法。
(3)特征提取
特征提取是將用戶輸入的文字序列變成向量的過程。根據(jù)分詞與詞性標注的結果,可以根據(jù)某種規(guī)則來提取文字序列的若干個特征,組成一個向量;向量的每個分量則描述了文字序列的一種特征。文字序列變成了機器擅長處理的向量形式后,即可進行后續(xù)的分類與檢索。
(4)分類檢索
分類與檢索通過分類器(用于分類的模型,如神經(jīng)網(wǎng)絡)與FAQ(儲存著很多“問題”與對應“答案”的數(shù)據(jù)庫)來完成。
FAQ中儲存的一個個“問題”,在機器眼里是一個個向量。通過特征提取得到用戶輸入的文字序列所對應的向量之后,就可以利用分類器,通過向量與向量之間相似程度的計算,來等效獲得用戶輸入與FAQ中各個“問題”的相似程度。
通過比較用戶輸入與FAQ中各個“問題”的相似程度的大小,就能檢索出與用戶輸入最為“匹配”的那一個,從而將它所對應的“答案”作為回答,輸出給用戶。
值得一提的是,如今AI界的網(wǎng)紅深度學習,正是通過分詞模型、標注模型以及分類器的訓練來應用于對話系統(tǒng)中的。這些模型可以選擇深度神經(jīng)網(wǎng)絡作為結構形式,然后通過大量數(shù)據(jù)訓練而得到。
此外,對于更加復雜的對話系統(tǒng),還涉及到指代消解、成分補全、命名實體識別等NLP技術,同時在架構層面也需要具備對話管理器、知識圖譜等模塊。這些進階版的科普內(nèi)容,會在以后的文章中詳細闡述。
人工智能的高枝果實
NLP是人工智能的“高枝果實”,其難度一直被認為是人工智能領域最高的之一。目前NLP所獲得的研究成果離真正準確地理解人類語言,與人類無障礙交流還相差甚遠。
NLP的難度主要來源于兩個方面:一是語言是人類自己所創(chuàng)造的東西,并不是客觀世界所存在的,所以非常主觀與多變;二是語言所傳遞的信息往往和上下文有關。
(1)語言的多變性
語言的多變最典型的體現(xiàn)就是一個意思有多種說法,以及同樣的詞語在不同的語言環(huán)境中表達不同的意思。比如同樣詢問一輛車的操控體驗,就有無數(shù)種說法:
奔馳的操控性怎么樣?
奔馳好開嗎?
奔馳開起來順手嗎?
……
又比如同樣一個動詞“打”,可以表達無數(shù)種不同的意思:
我要去打個車
他很想打人
你去把這個文件打一下
……
人類理解這些不同的說法并不困難,但對機器而言則是噩夢:單純根據(jù)字詞的意思推測語義,很多時候會得到錯誤的結果;如果要窮盡各種不同的表達方式來訓練一個模型,所需要的數(shù)據(jù)量則是天文數(shù)字;如果想把人類理解這些語言的“規(guī)則”告訴機器,又很難把這些規(guī)則總結清楚……
而且在日常交流時,還大量存在各種不規(guī)范說法、簡稱、習慣用法等。機器要想理解它們,分分鐘哭暈在廁所。
(2)上下文相關性
自然語言中上下文的相關性主要體現(xiàn)在某個語句所要表達的意思,往往和之前的談話內(nèi)容有所關聯(lián)。比如:
A - 北京今天有霧霾嗎
B - 有,重度污染
A - 那明天呢
B - 別問了,最近天天都有
A - 那它啥時候會好點
B - 不知道
A在第二個問題中省略了提問內(nèi)容“有霧霾嗎”,在第三個問題中用“它”指代了北京的空氣狀況,B都能夠聯(lián)系上文準確領會。但讓機器去這樣做則是一個困難的問題。盡管像上面這樣簡單的對話目前的技術已經(jīng)能夠處理,但更加復雜的上下文場景依然存在很大的挑戰(zhàn)。
產(chǎn)品只求恰到好處
NLP技術的不成熟并不代表它在今天無法發(fā)揮價值。前沿科技的落地永遠不必等到萬事俱備:技術需要深厚積淀,產(chǎn)品只求恰到好處。唯有將現(xiàn)有的技術成果積極投入應用,才能有更多實際場景中的反饋來促進技術的發(fā)展。
應用在對話系統(tǒng)中時,NLP的“恰到好處”體現(xiàn)在三方面:支持特定語言、應用于特定領域與場景、明確特定的打開方式。
(1)特定語言
不同語言的“字詞”差異很大,且存在不同的語法,所以機器對每一種語言的處理都需要專門針對這種語言收集數(shù)據(jù)訓練模型。如果需要支持處理的語言種類很多,工作量會十分龐大。
然而在開發(fā)一個對話產(chǎn)品時,往往只需支持一兩種較為通用的官方語言(比如標準的中英文)即可。隨著國際化與教育的發(fā)展,語言一定會越來越通用化和官方化,讓用戶使用較為通用的官方語言(支持一定程度上的語法不規(guī)范)來操作一個產(chǎn)品并不苛刻。
更重要的是,在技術尚不成熟的情況下,針對一種語言進行良好的語義理解已屬不易,分散研發(fā)力量支持多種語言必然會導致效果的下降。與其給用戶提供n條不靠譜的路,不如集中精力先給出一條靠譜的來。
(2)特定領域與場景
談話的內(nèi)容往往與領域強相關,好比在談論汽車領域的問題時,醫(yī)療領域的內(nèi)容就很難出現(xiàn)在談話中。
所以,在開發(fā)對話產(chǎn)品時,要明確這個產(chǎn)品是解決什么領域的問題:是一個用于電商的智能客服,還是用來查天氣講笑話逗樂的陪聊機器人。明確了產(chǎn)品應用的領域之后,所對應涉及到的語料數(shù)據(jù)就局限了很多,便于更好地進行覆蓋。
同樣的領域還可以進一步分為不同的場景。比如開發(fā)一個面向汽車行業(yè)的對話產(chǎn)品,既可以針對售前場景解答客戶買車時的疑問,也可以針對售后場景解答客戶購車之后所遇到的問題,還可以通過與客服人員對話來訓練他們的基本話術。在垂直領域的基礎上細分特定場景可以獲得更加局限的語料范圍。
當然,一個對話產(chǎn)品也可以同時支持多個領域與場景,但仍然需要針對每個領域和場景分別進行訓練和開發(fā),然后進行集成。好比一個人可以同時掌握多項技能,但這些技能需要一項項的學習。
(3)特定打開方式
現(xiàn)階段的對話產(chǎn)品很難強大到讓用戶想怎么說就怎么說,所以對話產(chǎn)品應該設定一種對用戶使用有所限定,且仍能讓用戶覺得它有價值的“打開方式”。
比如對于智能客服產(chǎn)品,如果立足于完全替代企業(yè)的客服人員,那么企業(yè)購買之后肯定會發(fā)現(xiàn)這個產(chǎn)品并不能達到宣稱的效果,必定會吐槽產(chǎn)品難用、虛假宣傳。
如果換一種打開方式,正視產(chǎn)品的局限性,把立足點從完全替代人工轉(zhuǎn)變成“機器回答60%標準問題,客服回答其他40%問題”的部分替代人工,那么它就成為了一個技術可以實現(xiàn)且同樣對企業(yè)有價值的產(chǎn)品。
總結
NLP是CUI交互中“聽懂——理解——回答”閉環(huán)的靈魂:機器無法理解用戶說話的意思,就沒有資格談交互。
NLP有很多應用領域,包括文本分類、文本摘要、機器翻譯、輿情監(jiān)測與對話系統(tǒng)等。一個比較簡單的對話系統(tǒng)主要會涉及分詞、詞性標注、特征提取、分類檢索等技術;復雜的對話系統(tǒng)還會涉及指代消解、成分補全、命名實體識別等技術。
NLP是人工智能的高枝果實,人類目前的研究積累還非常初級。它的難度來源于兩個層面:一是語言本身的變化非常多,二是語言所傳遞的信息往往和上下文有關。
即便NLP在技術上還很不完善,但仍然需要積極的將現(xiàn)有技術成果落地應用。開發(fā)對話產(chǎn)品時,可通過支持特定語言、應用于特定領域與場景、明確特定的打開方式三個方面來規(guī)避技術的不成熟,獲得可用的產(chǎn)品。
依慣例,最后奉上一張圖作為總結。