出品 | 智東西公開課
講師 | 羅沛鵬 優必選研究院技術專家
提醒 | 關注智東西公開課訂閱號(hao),并回復關鍵詞 優必選07,即(ji)可獲(huo)取課(ke)件(jian)。

導讀:

12月(yue)18日,優(you)必(bi)(bi)選(xuan)(xuan)研究院技術專(zhuan)家羅沛鵬(peng)在智東西公開課進行了一場的直播講解,主題為《優(you)必(bi)(bi)選(xuan)(xuan)服務機(ji)器人自然語(yu)言處理技術》,這也是優(you)必(bi)(bi)選(xuan)(xuan)專(zhuan)場第7講。

在(zai)本次講解(jie)(jie)中(zhong),羅沛鵬老師首先(xian)從自(zi)然(ran)語(yu)(yu)言(yan)(yan)處(chu)理(li)技術的研究(jiu)出(chu)發,對優(you)必選的自(zi)然(ran)語(yu)(yu)言(yan)(yan)處(chu)理(li)在(zai)機器(qi)人中(zhong)的應用,如(ru)場(chang)景交互中(zhong)的多輪對話(hua)問題,以及AI寫作(zuo)創作(zuo)等方面進行全面解(jie)(jie)析,并對優(you)必選自(zi)然(ran)語(yu)(yu)言(yan)(yan)處(chu)理(li)在(zai)機器(qi)人上的應用案例進行解(jie)(jie)析。

本文為此次專場主講環(huan)節的(de)圖(tu)文整(zheng)理(li):

視頻回放

各(ge)位朋友大家好(hao),我是來自(zi)優必選研究院的羅(luo)沛鵬,今天由我給(gei)大家講解優必選服務機器人自(zi)然語(yu)言處(chu)理技術。內容會分為以下5個部分:

1、服務機器人語音交互技術概述
2、自然語言處理技術概述與發展
3、優必選自然語言處理技術的研究與開發
4、優必選自然語言處理技術在服務機器人上的應用
5、優必選自(zi)然語言處理技術(shu)未來(lai)研究方向

正文:

服務機器人語音交互技術概述

羅沛鵬:優必選服務機器人NLP技術最新研究進展【附28頁PPT下載+視頻回放】

如上(shang)圖所示,人的(de)語音(yin)通(tong)過ASR(語音(yin)識(shi)別)把音(yin)頻變成(cheng)文(wen)本,文(wen)本經過NLU(語義(yi)理解)、DM(對(dui)話管理)以及NLG(語言生(sheng)成(cheng)),生(sheng)成(cheng)的(de)語言在通(tong)過TTS(語音(yin)合成(cheng)),最(zui)后機器(qi)人完成(cheng)對(dui)話。

自然語言處理技術概述與發展

羅沛鵬:優必選服務機器人NLP技術最新研究進展【附28頁PPT下載+視頻回放】

首先來幾個段(duan)(duan)子,相信大(da)(da)家(jia)在(zai)(zai)網上經(jing)常看到(dao)類(lei)似的段(duan)(duan)子,比(bi)如(ru)“貨拉(la)拉(la)拉(la)不拉(la)拉(la)布拉(la)多(duo)”,這個是一個典型的中(zhong)(zhong)文(wen)(wen)分詞問(wen)題,生(sheng)(sheng)活中(zhong)(zhong)給大(da)(da)家(jia)帶來不少(shao)的麻(ma)煩。另外我相信大(da)(da)家(jia)都在(zai)(zai)拼音輸入法(fa)上翻過(guo)車,“答辯”打成“大(da)(da)便(bian)”,這是一個典型的語(yu)(yu)言模(mo)型問(wen)題,后面會(hui)介紹語(yu)(yu)言相關的模(mo)型。還有(you)在(zai)(zai)前段(duan)(duan)時間比(bi)較(jiao)火的滿分作(zuo)文(wen)(wen)生(sheng)(sheng)成器,可以(yi)用它來生(sheng)(sheng)成類(lei)似的滿分作(zuo)文(wen)(wen),后邊也(ye)有(you)文(wen)(wen)本生(sheng)(sheng)成的算法(fa)介紹,請大(da)(da)家(jia)拭目以(yi)待。

羅沛鵬:優必選服務機器人NLP技術最新研究進展【附28頁PPT下載+視頻回放】

自然語(yu)言處理技術可以分(fen)為基礎(chu)技術和核心應用。其中,基礎(chu)技術包(bao)括自動分(fen)詞、詞性(xing)標注(zhu)、命(ming)名(ming)實體識(shi)別以及句法分(fen)析。

自動分詞是(shi)自然語(yu)言處(chu)理領域最基礎的(de)工作(zuo),以前主(zhu)要基于規則和概率(lv)統(tong)計,現(xian)在(zai)已經(jing)發(fa)展到基于深度(du)學習(xi)。比如“武漢市長 江大橋”還是(shi)“武漢市 長江大橋”等都是(shi)通過統(tong)計模型可以把詞分配(pei)好。

詞性標注就是在分完詞后,利用(yong)算法把(ba)每個詞的詞性標注上。通常詞性標注的粒度可(ke)以很細,比如可(ke)以標注動詞、副動詞、趨向動詞、不(bu)及物動詞等。

命名體識別是指識(shi)別(bie)具有(you)特(te)定(ding)意義的實體,比如人名(ming)、地名(ming)、機構名(ming)、專有(you)名(ming)詞等。

句法分析主要是指(zhi)分析句中的主謂(wei)賓、定狀補的句法關系。它的應(ying)用(yong)非常廣(guang)泛,情感、信息(xi)、問答、機器翻譯、自動文(wen)摘、閱讀理解(jie)以及文(wen)本分類等。

羅沛鵬:優必選服務機器人NLP技術最新研究進展【附28頁PPT下載+視頻回放】

上圖是自然語言處(chu)理的(de)(de)(de)(de)四個階(jie)段(duan),第(di)一(yi)階(jie)段(duan):在2000年之前,主要是基(ji)于規(gui)則和(he)(he)基(ji)于概率統(tong)計的(de)(de)(de)(de)方法(fa)。在50年代提(ti)出了圖靈(ling)測試的(de)(de)(de)(de)概念來判斷機(ji)器是否會思考,到目前為(wei)止,還(huan)沒有出現大(da)家一(yi)致認可的(de)(de)(de)(de)對話系(xi)統(tong)通過(guo)圖靈(ling)測試。第(di)二階(jie)段(duan):在2013年,隨著神經網絡(luo)的(de)(de)(de)(de)興起,極大(da)的(de)(de)(de)(de)提(ti)升(sheng)了NLP的(de)(de)(de)(de)各(ge)項能力。第(di)三階(jie)段(duan):基(ji)于seq2seq模型的(de)(de)(de)(de)NLP和(he)(he)注意力機(ji)制,在文(wen)本生成和(he)(he)機(ji)器翻譯方面(mian)獲(huo)得了比較大(da)的(de)(de)(de)(de)進(jin)展(zhan)。第(di)四階(jie)段(duan)是2018年以來,大(da)型預訓練(lian)模型的(de)(de)(de)(de)發展(zhan),也是我們現在所處(chu)的(de)(de)(de)(de)階(jie)段(duan)。

優必選自然語言處理技術的研究與開發

目前(qian),優必選的研(yan)究方向分為以下幾種:

1、任(ren)務型(xing)對話,主要是把意圖(tu)詞槽以及上下文的(de)一些信(xin)息(xi)給(gei)抽取出(chu)來,在日常(chang)生(sheng)活和服務機器人上用(yong)的(de)比(bi)較(jiao)多。

2、開放式閑(xian)聊(liao)(liao),主要基于多輪的語料,做了一些開放式的閑(xian)聊(liao)(liao)。

3、文(wen)(wen)本(ben)(ben)生(sheng)成(cheng)(cheng),主要是一些創(chuang)作(zuo)類(lei)的文(wen)(wen)本(ben)(ben)生(sheng)成(cheng)(cheng),開放式閑聊也用到了一些文(wen)(wen)本(ben)(ben)生(sheng)成(cheng)(cheng)的技術。

4、知(zhi)識圖(tu)譜,為(wei)了(le)提升交互(hu)體驗以及(ji)賦予(yu)對(dui)話(hua)更(geng)多(duo)的知(zhi)識,我們(men)也(ye)在做這方面的嘗試。

5、相(xiang)似問法生成,主要是為(wei)了平臺的語料能夠很好的自(zi)動(dong)擴(kuo)展,提升(sheng)泛化(hua)能力。

羅沛鵬:優必選服務機器人NLP技術最新研究進展【附28頁PPT下載+視頻回放】

下面介(jie)紹下任(ren)(ren)務(wu)型(xing)對話的(de)技術概述,如(ru)上(shang)圖所示,任(ren)(ren)務(wu)型(xing)對話主要分為用戶(hu)自定義技能(neng)以(yi)(yi)及內置技能(neng)。自定義技能(neng)是提(ti)供一個平(ping)臺可(ke)以(yi)(yi)讓(rang)(rang)用戶(hu)錄入語料,一鍵訓練后(hou)就會(hui)生效。內置技能(neng)則提(ti)供了20余個技能(neng)讓(rang)(rang)用戶(hu)可(ke)以(yi)(yi)勾選,比如(ru)天氣、鬧鐘。

接下(xia)(xia)來看下(xia)(xia)上圖右(you)邊的(de)(de)流程(cheng)圖,對話(hua)(hua)(hua)開始,然后(hou)采用(yong)用(yong)戶自(zi)定(ding)義的(de)(de)模(mo)型去預測(ce),如(ru)果有(you)(you)結果,則進入(ru)會(hui)話(hua)(hua)(hua)管理(li)模(mo)塊檢查下(xia)(xia)詞槽的(de)(de)完整性,如(ru)果完整,會(hui)進入(ru)內容的(de)(de)搜索,并儲存(cun)歷(li)史(shi)(shi)會(hui)話(hua)(hua)(hua)信息;如(ru)果不完整,會(hui)引(yin)導(dao)補充詞槽話(hua)(hua)(hua)術(shu)(shu),然后(hou)儲存(cun)歷(li)史(shi)(shi)會(hui)話(hua)(hua)(hua)信息,返回(hui)引(yin)導(dao)話(hua)(hua)(hua)術(shu)(shu)。如(ru)果對話(hua)(hua)(hua)開始,用(yong)戶自(zi)定(ding)義模(mo)型預測(ce)是(shi)沒有(you)(you)結果的(de)(de),它會(hui)采用(yong)內置技能的(de)(de)模(mo)型去預測(ce),看否有(you)(you)內置技能的(de)(de)結果,如(ru)果有(you)(you)結果,跟(gen)重(zhong)復(fu)上面(mian)是(shi)一樣的(de)(de)會(hui)話(hua)(hua)(hua)管理(li)、完整性檢查、歷(li)史(shi)(shi)會(hui)話(hua)(hua)(hua)存(cun)儲等(deng)流程(cheng),直(zhi)到對話(hua)(hua)(hua)結束(shu)。

如(ru)果內置的(de)(de)技能(neng)也沒有(you),最(zui)后(hou)將走到(dao)閑聊模塊。右邊舉了一個詳細的(de)(de)例(li)子,“今(jin)天天氣(qi)怎么樣”,算法會(hui)(hui)識別到(dao)領域(yu)意圖、天氣(qi)以及時間,然(ran)后(hou)識別到(dao)當(dang)前語句(ju)的(de)(de)語義(yi)之(zhi)后(hou),會(hui)(hui)進(jin)入會(hui)(hui)話管理(li)模塊,看下(xia)(xia)是(shi)否有(you)一些(xie)(xie)缺(que)少(shao)的(de)(de)詞槽。比(bi)如(ru)天氣(qi)缺(que)少(shao)城(cheng)市,它會(hui)(hui)觸發“你想了解哪座(zuo)城(cheng)市的(de)(de)天氣(qi)”。然(ran)后(hou),用戶問的(de)(de)下(xia)(xia)一輪,算法會(hui)(hui)根據(ju)上下(xia)(xia)文(wen)信息去預(yu)測(ce)該問題是(shi)哪個領域(yu)。例(li)如(ru)“深圳(zhen)(zhen)的(de)(de)”上文(wen)可(ke)能(neng)是(shi)天氣(qi)、交通或其他(ta)的(de)(de)一些(xie)(xie)領域(yu)。在此處(chu)根據(ju)上下(xia)(xia)文(wen)信息,可(ke)以預(yu)測(ce)到(dao)“深圳(zhen)(zhen)的(de)(de)”是(shi)屬于是(shi)天氣(qi)領域(yu)的(de)(de)。

具體實現(xian)可以看下上(shang)面的Demo,在(zai)上(shang)面的平(ping)臺(tai)(tai)(tai)(tai)中提供給用戶自己去(qu)配語(yu)料,然后一鍵觸發訓(xun)練并生(sheng)效。平(ping)臺(tai)(tai)(tai)(tai)需要添加詞(ci)典(dian),詞(ci)典(dian)用于(yu)詞(ci)槽抽取。平(ping)臺(tai)(tai)(tai)(tai)也需要添加意(yi)圖以及語(yu)料。同時(shi)平(ping)臺(tai)(tai)(tai)(tai)還需要配置上(shang)下文信(xin)息,用于(yu)上(shang)下文預(yu)測算(suan)法以及會話管理。此外平(ping)臺(tai)(tai)(tai)(tai)也可以配置必須(xu)填的詞(ci)槽等(deng)。

為什么(me)要做這樣的(de)平臺?主(zhu)要原因有三個(ge):

第一是NLP場景(jing)特(te)別多,機(ji)場、政府、商(shang)場的對話(hua)是完全不一樣的,通過這個(ge)平臺(tai),公司的產品(pin)可以為每一臺(tai)服務機(ji)器(qi)人(ren)定制特(te)定的語料(liao),減(jian)輕(qing)了(le)算法(fa)工程師的工作量。

第(di)二是迭代快,我(wo)們的平臺自(zi)上線以來已經為咖啡機、防疫(yi)(yi)機器(qi)人(ren)等提供(gong)問答服務(wu)。尤其(qi)是防疫(yi)(yi)機器(qi)人(ren)在緊(jin)急情(qing)況下不到兩(liang)周就完成(cheng)了迭代。

第三是成本低(di),極大的降低(di)了人(ren)力(li)成本。

羅沛鵬:優必選服務機器人NLP技術最新研究進展【附28頁PPT下載+視頻回放】

對(dui)(dui)話的(de)(de)核心是(shi)在多(duo)(duo)(duo)輪對(dui)(dui)話語境中(zhong)的(de)(de)有(you)效(xiao)識(shi)別(bie),那(nei)怎(zen)樣(yang)在多(duo)(duo)(duo)輪對(dui)(dui)話語境中(zhong)能夠(gou)表現(xian)很(hen)好呢(ni)?我們需要一個(ge)好的(de)(de)主(zhu)算法(fa),如上圖所示(shi),先介紹下主(zhu)算法(fa)的(de)(de)優點(dian),它之(zhi)所以(yi)適用(yong)于(yu)(yu)各(ge)種復(fu)雜的(de)(de)多(duo)(duo)(duo)輪對(dui)(dui)話語境中(zhong),是(shi)因為該(gai)算法(fa)基于(yu)(yu)預訓練的(de)(de)BERT模型(xing),泛(fan)化能力好。同時,由于(yu)(yu)在神(shen)經網(wang)絡結構中(zhong)有(you)用(yong)到歷史會話的(de)(de)上下文信息,所以(yi)該(gai)算法(fa)可以(yi)提(ti)升(sheng)上下文的(de)(de)理解能力。此外,該(gai)算法(fa)在一個(ge)神(shen)經網(wang)絡中(zhong)能夠(gou)同時識(shi)別(bie)意(yi)圖、詞槽。最后,通過數據增強(qiang)等策略(lve)提(ti)升(sheng)模型(xing)對(dui)(dui)低資源應用(yong)場(chang)景的(de)(de)適用(yong)性。

接(jie)著看上(shang)圖左(zuo)邊(bian),介(jie)紹深(shen)度(du)算法的(de)(de)(de)(de)流程(cheng),u(t)表示用戶當前(qian)(qian)的(de)(de)(de)(de)提問,s(t-1)表示機器(qi)人上(shang)一(yi)輪的(de)(de)(de)(de)回復,然(ran)后通(tong)過(guo)(guo)BERT提取特征,再(zai)進(jin)(jin)入(ru)到(dao)雙(shuang)向的(de)(de)(de)(de)GRU里,因為(wei)當前(qian)(qian)的(de)(de)(de)(de)語句只(zhi)在后半部分(fen)u這邊(bian),該(gai)部分(fen)通(tong)過(guo)(guo)BERT的(de)(de)(de)(de)輸(shu)(shu)出可以再(zai)輸(shu)(shu)入(ru)到(dao)一(yi)個雙(shuang)向LSTM中(zhong),接(jie)著再(zai)輸(shu)(shu)入(ru)到(dao)CRF里進(jin)(jin)行(xing)詞槽(cao)的(de)(de)(de)(de)抽取。同時該(gai)GRU的(de)(de)(de)(de)左(zuo)右(you)雙(shuang)向的(de)(de)(de)(de)輸(shu)(shu)出結果可以拼(pin)接(jie)在一(yi)起,通(tong)過(guo)(guo)線性(xing)的(de)(de)(de)(de)轉(zhuan)換,然(ran)后通(tong)過(guo)(guo)sigmoid函數,進(jin)(jin)行(xing)動作(zuo)的(de)(de)(de)(de)預(yu)測。該(gai)GRU用來做詞槽(cao)抽取的(de)(de)(de)(de)特征也會輸(shu)(shu)入(ru)到(dao)另外一(yi)個線性(xing)轉(zhuan)換中(zhong),然(ran)后每一(yi)個分(fen)別輸(shu)(shu)出一(yi)個key和value,再(zai)一(yi)一(yi)對應,輸(shu)(shu)入(ru)到(dao)一(yi)個attention layer,進(jin)(jin)入(ru)線性(xing)的(de)(de)(de)(de)轉(zhuan)換,最后進(jin)(jin)行(xing)意圖的(de)(de)(de)(de)預(yu)測。

意圖(tu)的數(shu)量是(shi)隨著(zhu)用戶配置的意圖(tu)數(shu)量而定(ding),比如(ru)一(yi)(yi)個(ge)咖啡機可(ke)(ke)能配了10個(ge)意圖(tu)。同時(shi),該算法也是(shi)一(yi)(yi)個(ge)多分類的任務,因(yin)(yin)為這(zhe)些意圖(tu)之間(jian)存(cun)在一(yi)(yi)定(ding)的附(fu)屬關系。舉個(ge)例子(zi),比如(ru)“今天天氣(qi)怎(zen)么樣”,這(zhe)可(ke)(ke)能是(shi)“查天氣(qi)”主意圖(tu),但(dan)說“明天呢”,可(ke)(ke)能是(shi)“天氣(qi)查時(shi)間(jian)”子(zi)意圖(tu)。因(yin)(yin)此融(rong)合(he)上下文的信息,可(ke)(ke)以對意圖(tu)進(jin)行比較好的預(yu)判。

下(xia)面重(zhong)點講下(xia)上下(xia)文的(de)網(wang)絡結構(gou)(gou),上下(xia)文的(de)輸(shu)(shu)入(ru)u表(biao)示用戶提(ti)問,s表(biao)示的(de)機器人(ren)回復,可(ke)以(yi)通過BERT提(ti)取特(te)征,進入(ru)雙(shuang)向(xiang)的(de) GRU里,然后把該時刻的(de)信息(xi)(xi)作為時間序列(lie)(lie)的(de)一部分。這些信息(xi)(xi)根據(ju)時間序列(lie)(lie)輸(shu)(shu)入(ru)到一個 GRU網(wang)絡結構(gou)(gou)中。最(zui)后的(de)輸(shu)(shu)出將作為雙(shuang)向(xiang)初始特(te)征,用于輸(shu)(shu)入(ru)意圖、詞槽的(de)雙(shuang)向(xiang)GRU網(wang)絡中。

接下來介(jie)紹下平臺訓(xun)(xun)練的(de)流程:導入詞典、編(bian)輯意圖(tu)、回復(fu)邏輯,然后(hou)再(zai)導入問法擴充模(mo)板,并導入一些(xie)實際的(de)語(yu)(yu)料。在訓(xun)(xun)練時(shi)(shi),先加載語(yu)(yu)料,這(zhe)時(shi)(shi)我們會(hui)通(tong)過(guo)聚類(lei)的(de)分(fen)析去(qu)篩選驗(yan)(yan)證集(ji),因為(wei)我們想要驗(yan)(yan)證集(ji)的(de)分(fen)布(bu)與(yu)訓(xun)(xun)練集(ji)是一致的(de)。這(zhe)里(li)很重(zhong)(zhong)要,因為(wei)在自然語(yu)(yu)言處理中,每一個意圖(tu),比如查天氣(qi)與(yu)查鬧鐘(zhong),它(ta)們的(de)語(yu)(yu)料數(shu)量可能是不(bu)在一個數(shu)量級(ji)的(de)。有(you)可能查天氣(qi)有(you)1萬條(tiao)(tiao)語(yu)(yu)料,而(er)查鬧鐘(zhong)只有(you)區(qu)區(qu)幾百條(tiao)(tiao)語(yu)(yu)料,這(zhe)樣造(zao)成(cheng)了語(yu)(yu)料的(de)不(bu)均衡。如果不(bu)用(yong)聚類(lei)算法把驗(yan)(yan)證集(ji)的(de)分(fen)布(bu)與(yu)訓(xun)(xun)練集(ji)做的(de)相似,采樣時(shi)(shi)可能會(hui)漏掉一些(xie)語(yu)(yu)料少的(de)意圖(tu)。做完(wan)驗(yan)(yan)證集(ji)的(de)篩選后(hou),我們會(hui)生(sheng)成(cheng)一批(pi)多(duo)輪對(dui)話(hua)(hua)(hua)語(yu)(yu)料去(qu)進行(xing)訓(xun)(xun)練。為(wei)什么每次(ci)要生(sheng)成(cheng)語(yu)(yu)料,因為(wei)輸入會(hui)涉及到歷史的(de)會(hui)話(hua)(hua)(hua)信息(xi),所(suo)以(yi)在多(duo)輪的(de)條(tiao)(tiao)件下,每次(ci)是不(bu)一樣的(de)。因此,每次(ci)生(sheng)成(cheng)一批(pi)語(yu)(yu)料,然后(hou)看模(mo)型是否收斂,收斂則發布(bu)模(mo)型,不(bu)收斂就重(zhong)(zhong)復(fu)該流程,直到達到限制(zhi)條(tiao)(tiao)件。模(mo)型訓(xun)(xun)練完(wan)發布(bu)后(hou),進入使用(yong)階(jie)段(duan),在這(zhe)個階(jie)段(duan)用(yong)戶輸入對(dui)話(hua)(hua)(hua),對(dui)它(ta)進行(xing)意圖(tu)的(de)識別,詞槽的(de)抽取(qu),再(zai)經過(guo)一些(xie)會(hui)話(hua)(hua)(hua)管理的(de)模(mo)塊,最后(hou)結束(shu)。

深度(du)學(xue)習的(de)(de)優點(dian)是(shi)對上下文(wen)的(de)(de)理解會非常精準,對平臺的(de)(de)精準度(du)提升非常有(you)效,但(dan)是(shi)它的(de)(de)網絡比(bi)較(jiao)復(fu)雜,所以(yi)需要比(bi)較(jiao)好的(de)(de)設備(bei),那(nei)有(you)沒有(you)比(bi)較(jiao)節(jie)省成(cheng)本的(de)(de)一些算(suan)法(fa)呢(ni)?我們(men)還有(you)一個(ge)快速算(suan)法(fa),快速算(suan)法(fa)的(de)(de)特點(dian)是(shi)有(you)以(yi)下三個(ge):

1、只對語料(liao)模板進行訓(xun)練,可(ke)以千百(bai)倍的減少訓(xun)練時(shi)間;

2、模型(xing)體(ti)積(ji)較小,需要的(de)硬件(jian)成本也較低(di);

3、在特(te)定的場景下準(zhun)確率也比較高。

那什么是快速(su)算法?比如(ru)一(yi)句話“我(wo)想(xiang)從北京(jing)去(qu)成都(dou)”,它拆成問法,就是“我(wo)想(xiang)從{city1}去(qu){city2}”。如(ru)果訓練模(mo)型只(zhi)對模(mo)板(ban)進行訓練會(hui)很快,但也存在一(yi)個問題。比方說,句子中“我(wo)想(xiang)從北京(jing)去(qu)成都(dou)”去(qu)預(yu)測時,需要把它還原(yuan)成模(mo)板(ban)。然而,像“成都(dou)”這種詞,可能既是歌名又是城市(shi)名,這時它會(hui)產生相當多的排列組合。因(yin)此,需要準確的挑出來,“我(wo)想(xiang)從{city1}去(qu){city2}”,“我(wo)想(xiang)從{city}去(qu){song}”則是錯誤(wu)的模(mo)板(ban)。

在(zai)訓(xun)練(lian)時有(you)大(da)量的(de)模板,有(you)正例也有(you)負(fu)例,因(yin)此(ci)(ci)有(you)了第(di)一(yi)個(ge)損(sun)失函數(shu),令其(qi)(qi)中的(de)正例模板為(wei)1,其(qi)(qi)他都是(shi)0。同時,還需要判(pan)斷該(gai)問題的(de)意(yi)圖,即要知(zhi)道這句話的(de)意(yi)圖是(shi)交通,所(suo)以(yi),需要設(she)計一(yi)個(ge)意(yi)圖預測的(de)損(sun)失函數(shu)。因(yin)此(ci)(ci)在(zai)訓(xun)練(lian)時,讓兩個(ge)損(sun)失函數(shu)都收斂就得到一(yi)個(ge)快(kuai)(kuai)速模型。為(wei)什么要用RNN和(he)CNN的(de)算法呢(ni)?答(da)案是(shi)因(yin)為(wei)速度比較(jiao)快(kuai)(kuai)。以(yi)上就是(shi)訓(xun)練(lian)的(de)過程。

在預測(ce)時,需要(yao)先對句子進行詞(ci)槽(cao)的(de)(de)(de)提取。由于最初是不知道意圖(tu)的(de)(de)(de),所以只能把它(ta)在相應(ying)的(de)(de)(de)詞(ci)典里的(de)(de)(de)信息(xi)都提取出(chu)來,通過排(pai)列組合的(de)(de)(de)方(fang)式,會(hui)得到(dao)一組模(mo)板的(de)(de)(de)候選集(“我(wo)想從(cong){city1}去(qu){city2}”,“我(wo)想從(cong){city}去(qu){song}”),把它(ta)們輸入到(dao)訓(xun)練(lian)好的(de)(de)(de)模(mo)型中,就(jiu)可以預測(ce)出(chu)來。

下面介紹下優必選的閑聊技術,閑聊分為匹配式閑聊與生成式閑聊。匹配式閑聊是有一個Q&A庫,Q&A庫如果夠大,可以達到一個比較好的閑聊效果。生成式閑聊不需要匹配,根據問題生成答案。他們各有優缺點,匹配式閑聊是可控的,可以通過語料的編撰,增加、刪除等方式,包括一些敏感詞可以在建立語料庫把它給刪除。生成式閑聊的對話時的變化會大一些,但是有一定的不可控性,有時語料不干凈,會生成一些不太健康的內容,同時還會存在一定的語義、語法的問題。
羅沛鵬:優必選服務機器人NLP技術最新研究進展【附28頁PPT下載+視頻回放】

優(you)必選的閑聊如上圖(tu)所示,首先進入匹配式閑聊,看(kan)庫里(li)有(you)(you)沒有(you)(you)結(jie)(jie)果,如果有(you)(you),儲存(cun)(cun)歷史多種信息并(bing)返回。如果沒有(you)(you),通過(guo)知(zhi)識圖(tu)譜(pu)問(wen)答,看(kan)知(zhi)識圖(tu)譜(pu)里(li)是(shi)否能收到相應(ying)的知(zhi)識,有(you)(you)結(jie)(jie)果,儲存(cun)(cun)歷史信息返回。如果知(zhi)識圖(tu)譜(pu)還沒有(you)(you),我們將(jiang)進入生(sheng)成式閑聊,然(ran)后儲存(cun)(cun)歷史對(dui)話信息、反饋結(jie)(jie)果。

那么歷史(shi)多輪信息有什么用(yong)呢?歷史(shi)多輪信息會用(yong)于(yu)生(sheng)成式(shi)(shi)閑(xian)聊(liao)(liao),不管是匹配式(shi)(shi)閑(xian)聊(liao)(liao)的(de)答(da)案(an),還(huan)是知(zhi)識圖譜答(da)案(an),它的(de)歷史(shi)信息都(dou)將成為生(sheng)成式(shi)(shi)閑(xian)聊(liao)(liao)的(de)輸入。

閑(xian)聊是NLP一(yi)(yi)個永(yong)(yong)恒的(de)難題,主要是知識(shi)如汪(wang)洋之大海,永(yong)(yong)遠缺乏高質量(liang)的(de)對話;那(nei)算法求的(de)只是一(yi)(yi)個概率(lv),缺乏現(xian)實的(de)邏輯推(tui)理(li);最后機(ji)器是不(bu)冷暖的(de),所以單(dan)憑文字不(bu)一(yi)(yi)定(ding)能夠捕(bu)獲到豐富的(de)情感。這(zhe)需要借助視覺,包(bao)括語音識(shi)別,各種聲紋信(xin)息等。

羅沛鵬:優必選服務機器人NLP技術最新研究進展【附28頁PPT下載+視頻回放】

接著介紹(shao)下(xia)生(sheng)(sheng)成式閑(xian)聊(liao)(liao),目(mu)前生(sheng)(sheng)成式閑(xian)聊(liao)(liao)主(zhu)要基(ji)于(yu)(yu)GPT的模(mo)(mo)(mo)型(xing),它本(ben)質上(shang)是(shi)(shi)語言(yan)模(mo)(mo)(mo)型(xing),GPT是(shi)(shi)基(ji)于(yu)(yu)Transformer 的Decoder 部(bu)分。那(nei)語言(yan)模(mo)(mo)(mo)型(xing)是(shi)(shi)什么(me)?語言(yan)模(mo)(mo)(mo)型(xing)是(shi)(shi)根據一(yi)(yi)(yi)個(ge)(ge)(ge)句子的已知序列信息去(qu)預測(ce)(ce)該(gai)(gai)句子的下(xia)一(yi)(yi)(yi)個(ge)(ge)(ge)字(zi)(zi)。那(nei)具體怎(zen)么(me)操作?我們把用(yong)戶(hu)的多輪閑(xian)聊(liao)(liao)作為語言(yan)模(mo)(mo)(mo)型(xing)的輸入(ru),然后訓練(lian)模(mo)(mo)(mo)型(xing),這是(shi)(shi)訓練(lian)部(bu)分。對于(yu)(yu)預測(ce)(ce),相對于(yu)(yu)訓練(lian)多了一(yi)(yi)(yi)個(ge)(ge)(ge)環(huan)節,先根據歷史的多輪閑(xian)聊(liao)(liao)序列通(tong)過(guo)(guo)gpt生(sheng)(sheng)成一(yi)(yi)(yi)個(ge)(ge)(ge)字(zi)(zi),生(sheng)(sheng)成該(gai)(gai)字(zi)(zi)時會生(sheng)(sheng)成多個(ge)(ge)(ge)候選的字(zi)(zi)。可以(yi)通(tong)過(guo)(guo)一(yi)(yi)(yi)些top-k、beam search等算法,以(yi)及一(yi)(yi)(yi)些參數(shu)的調節,來挑選候選字(zi)(zi)中最合適的那(nei)個(ge)(ge)(ge)。接著,該(gai)(gai)字(zi)(zi)加入(ru)序列,重復使用(yong)此方法生(sheng)(sheng)成下(xia)一(yi)(yi)(yi)個(ge)(ge)(ge)字(zi)(zi),直到(dao)生(sheng)(sheng)成結束符。

通(tong)(tong)常(chang)不會(hui)(hui)只生(sheng)成(cheng)(cheng)一個(ge)答(da)(da)案(an),會(hui)(hui)生(sheng)成(cheng)(cheng)多(duo)(duo)個(ge)候選答(da)(da)案(an),那么生(sheng)成(cheng)(cheng)了(le)多(duo)(duo)個(ge)候選答(da)(da)案(an),該如(ru)何(he)挑選一個(ge)更加合適的(de)(de)答(da)(da)案(an)呢?可以訓練(lian)一個(ge)通(tong)(tong)過答(da)(da)案(an)預測問題的(de)(de)模型,也就(jiu)是最大互信(xin)息的(de)(de)評(ping)分。上圖左邊(bian)是回答(da)(da)生(sheng)成(cheng)(cheng)的(de)(de)訓練(lian)過程(cheng),右邊(bian)的(de)(de)思路(lu)(lu)與(yu)左邊(bian)的(de)(de)思路(lu)(lu)是反向的(de)(de),是由答(da)(da)案(an)生(sheng)成(cheng)(cheng)問題。實(shi)際運用時(shi),采用正確的(de)(de)時(shi)序生(sheng)成(cheng)(cheng)多(duo)(duo)個(ge)候選答(da)(da)案(an)。再把生(sheng)成(cheng)(cheng)的(de)(de)候選集輸入(ru)到訓練(lian)好的(de)(de)最大互信(xin)息模型里,看(kan)預測到原始問題時(shi),哪個(ge)候選答(da)(da)案(an)的(de)(de)損失(shi)值最低,這種方法可作為候選答(da)(da)案(an)的(de)(de)挑選。

我們的(de)閑聊在內部做了一個評(ping)測,從它的(de)通順性(xing)(xing)(xing)、連貫(guan)性(xing)(xing)(xing)、信(xin)息性(xing)(xing)(xing)、趣味性(xing)(xing)(xing)以(yi)及(ji)憑感覺(jue)等方面(mian)(mian)打分。關于效果方面(mian)(mian),通順性(xing)(xing)(xing)和連貫(guan)性(xing)(xing)(xing)還不錯(cuo),趣味性(xing)(xing)(xing)跟(gen)憑感覺(jue)方面(mian)(mian),大家覺(jue)得還有(you)(you)優化的(de)空間。除(chu)了上面(mian)(mian)提到的(de)算法(fa),還有(you)(you)其(qi)他(ta)一些比(bi)較優秀的(de)算法(fa),比(bi)如plato-2、blender等,但這兩個算法(fa)推理比(bi)較慢,所(suo)以(yi)我們沒有(you)(you)采用上面(mian)(mian)的(de)算法(fa)。

羅沛鵬:優必選服務機器人NLP技術最新研究進展【附28頁PPT下載+視頻回放】

接(jie)下來是(shi)文(wen)本生(sheng)(sheng)成技術(shu),比如(ru)古詩生(sheng)(sheng)成,輸入“我是(shi)只(zhi)小豬歡樂多”。生(sheng)(sheng)成的(de)(de)(de)結果(guo)可以(yi)看下左上角(jiao)的(de)(de)(de)圖,生(sheng)(sheng)成的(de)(de)(de)古詩是(shi)押韻的(de)(de)(de),那怎么做(zuo)的(de)(de)(de)呢?同樣還是(shi)采用GPT模型。首先要(yao)定義它(ta)的(de)(de)(de)格式,比如(ru)五言(yan)(yan)絕(jue)句、七言(yan)(yan)絕(jue)句、詞牌等(deng),然(ran)后(hou)用分(fen)隔(ge)符分(fen)開,接(jie)下來把詩詞給到模型,并且要(yao)帶標點符號,然(ran)后(hou)通過語言(yan)(yan)模型訓練,他具備這樣的(de)(de)(de)生(sheng)(sheng)成能(neng)力(li)。

生(sheng)成完后,就涉及到(dao)一(yi)(yi)些(xie)押(ya)(ya)韻的(de)處理。具(ju)體首先需要進行預處理,并(bing)定(ding)義詩詞(ci)的(de)類型。然后,與(yu)詩詞(ci)的(de)內容(rong)并(bing)拼接(jie)起來。接(jie)著(zhu)(zhu)文本向(xiang)量化輸(shu)入到(dao)GPT里。接(jie)著(zhu)(zhu)也是一(yi)(yi)個(ge)字、一(yi)(yi)個(ge)字生(sheng)成答案(an)。當生(sheng)成到(dao)有(you)(you)句(ju)(ju)尾標點符(fu)號時(shi),要看最后一(yi)(yi)兩(liang)個(ge)詞(ci)與(yu)前(qian)一(yi)(yi)句(ju)(ju)是否押(ya)(ya)韻。如果(guo)不(bu)押(ya)(ya)韻,要重新生(sheng)成一(yi)(yi)句(ju)(ju)話,以此來保證可以都押(ya)(ya)韻。但不(bu)一(yi)(yi)定(ding)保證所有(you)(you)情況都押(ya)(ya)運,可能預測很久都沒有(you)(you)押(ya)(ya)韻,這時(shi)候,我們(men)會設一(yi)(yi)個(ge)超時(shi),超時(shi)后直(zhi)接(jie)生(sheng)成一(yi)(yi)個(ge)不(bu)押(ya)(ya)韻的(de)句(ju)(ju)子。

古詩詞(ci)生成(cheng)存(cun)在一些問(wen)題(ti),首先是(shi)(shi)押韻問(wen)題(ti),語(yu)言模(mo)型學(xue)習到(dao)的韻律信息比較有限;其次是(shi)(shi)意境問(wen)題(ti),語(yu)言模(mo)型只是(shi)(shi)學(xue)習到(dao)了古詩詞(ci)遣(qian)詞(ci)造句(ju)的概率模(mo)型,即文章套(tao)路(lu)(lu),對比較有套(tao)路(lu)(lu)的文章,可以生成(cheng)的比較好(hao)。于是(shi)(shi)乎(hu),但是(shi)(shi)詞(ci)(宋詞(ci))的效果比不上(shang)詩,因為詞(ci)的套(tao)路(lu)(lu)很(hen)多,還有各(ge)類詞(ci)牌,每句(ju)話字數也(ye)不一致,所以對詞(ci)的效果會差很(hen)多。

羅沛鵬:優必選服務機器人NLP技術最新研究進展【附28頁PPT下載+視頻回放】

在(zai)(zai)知識圖譜方面,它的(de)(de)(de)主(zhu)要組成分三塊(kuai):節(jie)(jie)(jie)點、屬性(xing)、關(guan)系。在(zai)(zai)該(gai)圖中,節(jie)(jie)(jie)點表(biao)示每個人,比如周杰倫;屬性(xing)是(shi)他的(de)(de)(de)出生、成就、身高(gao)等;連(lian)接節(jie)(jie)(jie)點之間的(de)(de)(de)叫關(guan)系,比如周杰倫通過妻子的(de)(de)(de)關(guan)系可以鏈接到昆凌。以關(guan)系相(xiang)連(lian)各個節(jie)(jie)(jie)點,會組成一(yi)個龐大的(de)(de)(de)知識網絡,關(guan)系是(shi)具有(you)方向(xiang)(xiang)(xiang)性(xing):單向(xiang)(xiang)(xiang)或雙(shuang)向(xiang)(xiang)(xiang)的(de)(de)(de),單向(xiang)(xiang)(xiang)的(de)(de)(de)比如昆凌是(shi)周杰倫的(de)(de)(de)妻子;至于雙(shuang)向(xiang)(xiang)(xiang),比如同學關(guan)系,甲是(shi)乙(yi)(yi)的(de)(de)(de)同學,乙(yi)(yi)是(shi)甲的(de)(de)(de)同學。

知識(shi)圖譜技術目前只(zhi)是(shi)用(yong)(yong)來做(zuo)知識(shi)問答,用(yong)(yong)來豐富(fu)閑聊(liao)的交互體(ti)驗。它(ta)的一(yi)個(ge)問答涉及到預處理、實體(ti)識(shi)別、實體(ti)鏈接、關(guan)系(xi)抽取、手寫識(shi)別,主謂賓、施受關(guan)系(xi)檢測,答案的生成以及排(pai)序,敏感詞過(guo)濾(lv)等。

知識(shi)圖譜存(cun)在很大(da)的(de)(de)挑戰,首先在問(wen)答(da)挑戰方(fang)面知識(shi)是無法窮盡(jin)(jin)的(de)(de),知識(shi)的(de)(de)收集、梳理以(yi)及(ji)抽取是非常(chang)(chang)大(da)的(de)(de)工作量,其次問(wen)法也是無窮無盡(jin)(jin)的(de)(de),所以(yi)非常(chang)(chang)難理解到各種(zhong)各樣的(de)(de)問(wen)法。

知識圖譜的應用主要是探索知識圖譜與開(kai)放式(shi)對(dui)話等(deng)方面(mian)的融合技術,我們的目的是為了(le)優化交互體驗(yan),提高對(dui)話系統的多(duo)樣性(xing)、邏輯(ji)性(xing)、可解釋性(xing)等(deng)。

優必選自然語言處理技術在服務機器人上的應用

NLP在服務機(ji)器人(ren)(ren)上有哪些應用呢(ni)?首先是(shi)機(ji)器人(ren)(ren)問答,還有無(wu)(wu)人(ren)(ren)輪值客(ke)服、機(ji)場與車站、無(wu)(wu)人(ren)(ren)販售等。具體應用案例包括無(wu)(wu)人(ren)(ren)咖啡館、防疫機(ji)器人(ren)(ren)問答和uCode等。

無人咖啡館

羅沛鵬:優必選服務機器人NLP技術最新研究進展【附28頁PPT下載+視頻回放】

上面是(shi)我們咖啡機器人,它可以實現結合上下文語(yu)境,精準理解(jie)用戶點單,避免人員(yuan)直接接觸(chu)。

防疫機器人問答

羅沛鵬:優必選服務機器人NLP技術最新研究進展【附28頁PPT下載+視頻回放】

疫(yi)(yi)情期間(jian),通過(guo)服(fu)務機器(qi)人(ren)的智能(neng)防疫(yi)(yi)問答,減少人(ren)員(yuan)的聚集,為疫(yi)(yi)情的紓解(jie)提供有力保障。

uCode

uCode是優必選(xuan)面向編(bian)程教育領域開發(fa)的(de)一款軟硬件結(jie)合的(de)編(bian)程客戶端,學生可(ke)以不(bu)使用鍵盤去敲代碼(ma),可(ke)以通過拖拽積木的(de)方式編(bian)程。

羅沛鵬:優必選服務機器人NLP技術最新研究進展【附28頁PPT下載+視頻回放】

具體可(ke)(ke)以(yi)看到(dao)上圖,涉及到(dao)語音(yin)識(shi)別(bie)(bie)以(yi)及文(wen)本(ben)匹配(pei),用(yong)戶可(ke)(ke)以(yi)輸入“聽到(dao)走(zou)幾(ji)步”時,他做什么樣(yang)的(de)(de)動作,可(ke)(ke)以(yi)通過語音(yin)識(shi)別(bie)(bie)把(ba)它變(bian)成文(wen)字(zi),再進行動作匹配(pei)。涉及到(dao)語音(yin)識(shi)別(bie)(bie)時,由(you)于環境中的(de)(de)噪音(yin),可(ke)(ke)能(neng)會出現多(duo)一個(ge)字(zi)、少(shao)一個(ge)字(zi)。同時,編程(cheng)為(wei)“走(zou)幾(ji)步”時,用(yong)戶在實際(ji)使用(yong)的(de)(de)時候也有可(ke)(ke)能(neng)說成“走(zou)幾(ji)步吧”或(huo)“請走(zou)幾(ji)步”類(lei)似的(de)(de)。有了NLP的(de)(de)文(wen)本(ben)模糊匹配(pei)功能(neng),就解(jie)決了。其他的(de)(de)諸如(ru)于古詩詞生(sheng)成等,都可(ke)(ke)以(yi)加入到(dao)uCode編程(cheng)中,提升(sheng)uCode的(de)(de)教(jiao)學能(neng)力(li)。

優必選NLP未來的研究方向

接下來的(de)方(fang)向一個是(shi)提(ti)升交(jiao)互體驗,要(yao)緊跟前沿走,探索交(jiao)互體驗;同時,還(huan)需要(yao)提(ti)升平(ping)臺的(de)能(neng)力,目前平(ping)臺的(de)能(neng)力是(shi)比(bi)較基礎的(de),未來可(ke)能(neng)會增(zeng)加語料自動擴展的(de)功能(neng);此外,系統(tong)還(huan)要(yao)增(zeng)長知(zhi)識(shi)(shi),在智能(neng)對話(hua)中,知(zhi)識(shi)(shi)是(shi)比(bi)較欠缺的(de)。因此,我們正(zheng)在做知(zhi)識(shi)(shi)圖譜這塊,并在探索它跟對話(hua)的(de)融合技術,為機器人的(de)對話(hua)增(zeng)智。

以上是今天的分享(xiang),謝謝大家(jia)。