集微網(wǎng)消息,網(wǎng)絡(luò)普及初期,有人說“你永遠(yuǎn)不知道,電腦那頭是男是女”。如今,隨著人工智能的發(fā)展,你可能也無法知道,電話那頭的是不是機(jī)器人。
現(xiàn)在有許多公司都各自的推出了智能助手,如Apple Siri、Google Now、微軟小娜(Microsoft Cortana)、Facebook M、百度度秘和微軟小冰等等,這些智能助手能夠與人進(jìn)行簡單的對話,并且完成一些基本的任務(wù),但是現(xiàn)有的智能助手存在只考慮自動(dòng)問答,對話中問題的回復(fù)具有準(zhǔn)確率低的缺點(diǎn)。
華為在2016年7月提供了一種用于人機(jī)對話的方法、神經(jīng)網(wǎng)絡(luò)系統(tǒng)和用戶設(shè)備,可以實(shí)現(xiàn)與用戶進(jìn)行自然語言交互,并且依據(jù)知識(shí)庫作出基于事實(shí)的正確的自然語言答案。
該專利的方案包括先構(gòu)建結(jié)構(gòu)化知識(shí)庫(本文簡稱為知識(shí)庫)和訓(xùn)練數(shù)據(jù)。
此處的知識(shí)庫是基于一些“事實(shí)”(facts)組成。結(jié)構(gòu)化的知識(shí)庫中包括記錄(records)或者“元組(tuple)”。可以從互聯(lián)網(wǎng)獲取結(jié)構(gòu)化知識(shí)庫。
需要了解的是,知識(shí)庫具體可以由多個(gè)三元組構(gòu)成,也可以由包括多條結(jié)構(gòu)化的記錄的數(shù)據(jù)庫構(gòu)成,本發(fā)明實(shí)施例對此不作限定。以知識(shí)庫由多個(gè)三元組構(gòu)成為例,可以從百度百科、互動(dòng)百科、豆瓣等百科知識(shí)網(wǎng)站抓取網(wǎng)頁,并通過對網(wǎng)頁中的表格解析得到結(jié)構(gòu)化的三元組。
經(jīng)過進(jìn)一步的處理,例如可以包括去噪、合并等處理。最終抽取得到多個(gè)三元組,構(gòu)成結(jié)構(gòu)化知識(shí)庫。如在訓(xùn)練過程中,可以逐一掃描上述“問題-答案”對數(shù)據(jù),檢查是否與知識(shí)庫中的某個(gè)或多個(gè)三元組“匹配”,其中,“匹配”的定義可以是:1、三元組的元素出現(xiàn)在問題中;2、三元組的元素出現(xiàn)在答案中;3、三元組的元素不出現(xiàn)在問題中。
應(yīng)理解,本發(fā)明實(shí)施例中,知識(shí)庫的大小和訓(xùn)練數(shù)據(jù)的大小可以根據(jù)訓(xùn)練需要進(jìn)行調(diào)整。在一個(gè)具體的例子中,結(jié)構(gòu)化知識(shí)庫中可以包括5.5M個(gè)三元組,“問題-答案”對可以包括132M個(gè),從中選取出696K個(gè)“問題-答案”對作為訓(xùn)練數(shù)據(jù)。
在本發(fā)明實(shí)施例中,每個(gè)詞可以對應(yīng)一個(gè)獨(dú)熱(one-hot)向量。所謂獨(dú)熱向量是指,對于某種語言而言,共有A個(gè)詞,對每一個(gè)詞進(jìn)行編號,任一個(gè)詞對應(yīng)一個(gè)獨(dú)熱向量,該獨(dú)熱向量具有M維,其中該詞的編號對應(yīng)的元素為1,其余的元素為零。獨(dú)熱向量為高維向量。
設(shè)輸入的自然語言問題為序列x=(x1,x2,...,xT),即將自然語言問題分解為T個(gè)詞,分別對應(yīng)x1,x2,...,xT。xi為獨(dú)熱向量。
設(shè)輸出的自然語言答案為y=(y1,y2,...,yT′),即自然語言答案為T′個(gè)詞組合而成的,T′個(gè)詞分別對應(yīng)y1,y2,...,yT′。yi為獨(dú)熱向量。
三元組為t=(ts,tp,to),ts/p/o均為獨(dú)熱向量,分別表示三元組中的主語、謂詞和賓語。
請參見下圖,該專利的用于人機(jī)對話的方法包括以下步驟:
步驟S101中自然語言問題可以由用戶通過麥克風(fēng)等進(jìn)行語音輸入,也可以通過鍵盤、鼠標(biāo)等進(jìn)行文字或圖形的輸入,還可以是其它的一些輸入形式,系統(tǒng)根據(jù)用戶輸入的自然語言問題能夠轉(zhuǎn)化為序列x=(x1,x2,...,xT)。
步驟S102中可以將自然語言問題作為神經(jīng)網(wǎng)絡(luò)系統(tǒng)的第一神經(jīng)網(wǎng)絡(luò)模塊的輸入,計(jì)算獲得該自然語言問題對應(yīng)的問題向量。具體地,用戶輸入的多個(gè)自然語言問題可以看作是多個(gè)長度變化的詞序列x= (x1,x2,...,xT)。
步驟S103,以知識(shí)答案為三元組為例,則是獲得與自然語言問題相關(guān)的至少一個(gè)三元組,其中,至少一個(gè)三元組與至少一個(gè)三 元組向量對應(yīng)。
步驟S104仍以知識(shí)答案向量為三元組向量為例,可以將問題向量和至少一個(gè)三元組向量作為神經(jīng)網(wǎng)絡(luò)系統(tǒng)的第二神經(jīng)網(wǎng)絡(luò)模塊的輸入,計(jì)算獲得基于結(jié)構(gòu)化知識(shí)庫的中間結(jié)果向量。
對于候選的三元組向量集合中的每個(gè)三元組向量t,其與問題向量的相似度通過如下方式計(jì)算:S(x,t)=qTMut,其中,上式中q為問題的向量表示H的分量,即q可以從H中得到。
步驟S105將問題向量和中間結(jié)果向量作為神經(jīng)網(wǎng)絡(luò)系 統(tǒng)的第三神經(jīng)網(wǎng)絡(luò)模塊的輸入,計(jì)算獲得自然語言問題的自然語言答案。第三神經(jīng)網(wǎng)絡(luò)模塊的作用為將問題向量與匹配結(jié)果的中間結(jié)果向量進(jìn)行綜合,并輸出自然語言答案。
該技術(shù)方案提供了一種用于人機(jī)對話的方法,該方法通過將自然語言問題和知識(shí)庫向量化,通過向量計(jì)算,將對話和基于知識(shí)庫的問答結(jié)合,能夠與用戶進(jìn)行自然語言交互,并且依據(jù)知識(shí)庫作出基于事實(shí)的正確的自然語言答案,避免了現(xiàn)有技術(shù)只考慮自動(dòng)問答,或只考慮自然語言對話,對對話中問題的回復(fù)具有準(zhǔn)確率低的缺點(diǎn)。
華為就該技術(shù)方案在中國、歐洲、美國就該技術(shù)布局了專利,對應(yīng)的公開號為:CN106844368A、WO2017092380A1、US20180276525A1。(校對/詩詩)