達(dá)觀數(shù)據(jù)創(chuàng)始人兼CEO陳運(yùn)文:達(dá)觀數(shù)據(jù)智能問(wèn)答技術(shù)研究
【數(shù)據(jù)猿導(dǎo)讀】 在機(jī)器人圍棋大勝李世石、柯潔之后,人工智能越來(lái)越火。作為一項(xiàng)新興技術(shù),智能問(wèn)答也是人工智能中必不可少的一環(huán)。智能問(wèn)答一般用于解決企業(yè)客服、智能資訊等應(yīng)用場(chǎng)景,實(shí)現(xiàn)的方式多種多樣,包括簡(jiǎn)單的規(guī)則實(shí)現(xiàn),也可以基于檢索實(shí)現(xiàn),還可以通過(guò)encoder-decoder框架生成,本文通過(guò)幾種...

在機(jī)器人圍棋大勝李世石、柯潔之后,人工智能越來(lái)越火。作為一項(xiàng)新興技術(shù),智能問(wèn)答也是人工智能中必不可少的一環(huán)。智能問(wèn)答一般用于解決企業(yè)客服、智能資訊等應(yīng)用場(chǎng)景,實(shí)現(xiàn)的方式多種多樣,包括簡(jiǎn)單的規(guī)則實(shí)現(xiàn),也可以基于檢索實(shí)現(xiàn),還可以通過(guò)encoder-decoder框架生成,本文通過(guò)幾種常見(jiàn)的問(wèn)答技術(shù),概要介紹了達(dá)觀數(shù)據(jù)智能問(wèn)答相關(guān)原理研究。
1.基于規(guī)則的智能問(wèn)答
基于規(guī)則的智能問(wèn)答通常是預(yù)先設(shè)置了一系列的問(wèn)答規(guī)則,在用戶(hù)輸入一個(gè)問(wèn)題時(shí),去規(guī)則庫(kù)里匹配,看是否滿足某項(xiàng)規(guī)則,如果滿足了就返回該規(guī)則對(duì)應(yīng)的結(jié)果。如規(guī)則庫(kù)里設(shè)置“*你好*”->“你好??!”,那么用戶(hù)在輸入“你好”時(shí),機(jī)器人會(huì)自動(dòng)返回“你好啊!”。如果規(guī)則庫(kù)非常龐大,達(dá)到了海量的級(jí)別庫(kù),則可對(duì)規(guī)則建立倒排索引,在用戶(hù)新輸入一個(gè)問(wèn)題時(shí),先去倒排索引中查找命中的規(guī)則集合,再通過(guò)這個(gè)集合中的規(guī)則進(jìn)行匹配返回。
使用規(guī)則庫(kù)的智能問(wèn)答優(yōu)點(diǎn)是簡(jiǎn)單方便,準(zhǔn)確率也較高;缺點(diǎn)是規(guī)則庫(kù)要經(jīng)常維護(hù)擴(kuò)展,而且覆蓋的范圍小,不能對(duì)新出現(xiàn)的問(wèn)題進(jìn)行回答。
2.基于檢索的智能問(wèn)答
基于檢索的智能問(wèn)答很像一個(gè)搜索引擎,但又和搜索引擎不同,相比搜索引擎而言,智能問(wèn)答更側(cè)重于用戶(hù)意圖和語(yǔ)義的理解。它基于歷史的問(wèn)答語(yǔ)料庫(kù)構(gòu)建索引,索引信息包括問(wèn)題、答案、問(wèn)題特征、答案特征等。用戶(hù)問(wèn)問(wèn)題時(shí),會(huì)將問(wèn)題到索引庫(kù)中匹配,首先進(jìn)行關(guān)鍵字和語(yǔ)義的粗排檢索,召回大量可能符合答案的問(wèn)答對(duì);然后通過(guò)語(yǔ)義和其他更豐富的算法進(jìn)行精排計(jì)算,返回最好的一個(gè)或幾個(gè)結(jié)果。
圖1
2.1 粗排策略
粗排策略跟一般的搜索引擎非常類(lèi)似,主要基于的技術(shù)包括粗細(xì)粒度分詞、詞重要性計(jì)算、核心詞識(shí)別、命名實(shí)體識(shí)別、語(yǔ)義歸一等相關(guān)技術(shù),主要是為了在粗排階段盡可能地把相關(guān)問(wèn)題進(jìn)行召回。
1)詞重要性計(jì)算:通過(guò)計(jì)算重要性,越能表示問(wèn)題的詞匯權(quán)重越高,在召回時(shí)命中這些詞匯的候選集越有可能被召回。如:“靠譜的英語(yǔ)培訓(xùn)機(jī)構(gòu)有哪些?”,在這個(gè)問(wèn)題中,“英語(yǔ)”、“培訓(xùn)”、“機(jī)構(gòu)”是高權(quán)重的詞,“靠譜”是較高權(quán)重的詞,“哪些”是較低權(quán)重的詞;因此越符合“英語(yǔ)培訓(xùn)機(jī)構(gòu)”的答案越有可能被召回。
2)核心詞識(shí)別:核心詞就是候選集中必須相關(guān)的詞。如“北京住宿多少錢(qián)?”核心詞是“北京”、“住宿”,如果候選集中沒(méi)有這兩個(gè)相關(guān)的詞,如“上海住宿多少錢(qián)?”,“北京吃飯多少錢(qián)”,都是不符合問(wèn)題需求的。
3)命名實(shí)體識(shí)別:通過(guò)命名實(shí)體識(shí)別,能協(xié)助識(shí)別出問(wèn)題答案中的核心詞,也可以對(duì)核心專(zhuān)有名詞進(jìn)行重要性加權(quán),輔助搜索引擎提升召回效果。
4)語(yǔ)義歸一也是擴(kuò)大召回的重要手段,同一個(gè)問(wèn)題可能有很多種問(wèn)法,不同的問(wèn)法如果答案不同,或者召回的結(jié)果數(shù)目不同,就會(huì)很讓人煩惱了,比如“劉德華生日是哪天?”、“劉德華出生在哪一天?”,如果不作語(yǔ)義歸一的話,有可能某一個(gè)問(wèn)題都不會(huì)召回結(jié)果。
2.2 精排策略
通過(guò)粗排,搜索引擎已經(jīng)返回了一大批可能相關(guān)的結(jié)果,比如500個(gè),如何從這500個(gè)問(wèn)題中找到最符合問(wèn)題的一個(gè)或者幾個(gè),非??简?yàn)算法精度。一般基于檢索的問(wèn)答系統(tǒng)都會(huì)通過(guò)語(yǔ)義或者深度學(xué)習(xí)的方法尋找最匹配的答案。
1)基于句子相似度的算法。
基于句子相似度的算法有很多種,效果比較好的有基于word2vec的句子相似度計(jì)算和基于sentence2vec的句子相似度計(jì)算。基于word2vec計(jì)算兩個(gè)句子的相似度,就是以詞向量的角度計(jì)算第一個(gè)句子轉(zhuǎn)換到第一個(gè)句子的代價(jià):
詞向量有個(gè)有趣的特性,通過(guò)兩個(gè)詞向量的減法能夠計(jì)算出兩個(gè)詞的差異,這些差異性可以應(yīng)用到語(yǔ)義表達(dá)中。如:vec(Berlin) – vec(Germany) = vec(Paris) – vec(France);通過(guò)這個(gè)特性能夠用用來(lái)計(jì)算句子的相似度。假設(shè)兩個(gè)詞xi, xj之間的距離為,這可以認(rèn)為是xi轉(zhuǎn)換到xj的代價(jià)??梢詫⒕渥佑迷~袋模型
表示,模型中某個(gè)詞i的權(quán)重為
,其中ci是詞i在該句子中出現(xiàn)的次數(shù)。設(shè)置
為一個(gè)轉(zhuǎn)換矩陣,Tij表示句子d中詞i有多少權(quán)重轉(zhuǎn)換成句子d’中的詞j,如果要將句子d完全轉(zhuǎn)換成句子d’,所花費(fèi)的代價(jià)計(jì)算如下:
如果用Xd表示句子中的詞向量通過(guò)權(quán)重di進(jìn)行加權(quán)平均的句向量,可以推導(dǎo)出,句子轉(zhuǎn)換代價(jià)的下限是兩個(gè)句向量的歐式距離。
一般這個(gè)下限表示兩個(gè)短句子相似的程度已經(jīng)足夠了,如果需要通過(guò)完全最優(yōu)化的方法計(jì)算的值,可以通過(guò)EMD solver算法計(jì)算。
2)基于深度學(xué)習(xí)計(jì)算問(wèn)答匹配程度。
基于句向量的距離計(jì)算句子相似度,可以cover大部分的case,但在句子表面相似,但含義完全不同的情況下就會(huì)出現(xiàn)一些問(wèn)題,比如“我喜歡冰淇淋”和“我不喜歡冰淇淋”,分詞為“我”,“不”,“喜歡”,“冰淇淋”,兩個(gè)句子的相似度是很高的,僅一字“不”字不同,導(dǎo)致兩個(gè)句子意思完全相反。要處理這種情況,需要使用深度模型抓住句子的局部特征進(jìn)行語(yǔ)義識(shí)別。
圖2
如圖所示,Q是用戶(hù)的問(wèn)題,D是返回的各個(gè)答案。對(duì)于某一個(gè)問(wèn)答句子,首先將它映射到500k大小的BOW向量Term Vector里。因?yàn)門(mén)erm Vector是稀疏矩陣,可以使用Word Hashing或者其他Embedding的方法將其映射到30k大小的詞向量空間里。接下來(lái)的l1, l2, l3層就是傳統(tǒng)的MLP網(wǎng)絡(luò),通過(guò)神經(jīng)網(wǎng)絡(luò)得到query和document的語(yǔ)義向量。計(jì)算出(D,Q)的cosine similarity后,用softmax做歸一化得到的概率值是整個(gè)模型的最終輸出,該值作為監(jiān)督信號(hào)進(jìn)行有監(jiān)督訓(xùn)練。模型通過(guò)挖掘搜索點(diǎn)擊日志構(gòu)造的query和對(duì)應(yīng)的正負(fù)document樣本(點(diǎn)擊/不點(diǎn)擊),輸入DSSM進(jìn)行訓(xùn)練。
3)基于卷積神經(jīng)網(wǎng)絡(luò)計(jì)算問(wèn)答匹配程度。
句子中的每個(gè)詞,單獨(dú)來(lái)看有單獨(dú)的某個(gè)意思,結(jié)合上下文時(shí)可能意思不同;比如“Microsoft office”和“I sat in the office”,這兩句話里的office意思就完全不一樣。通過(guò)基于卷積神經(jīng)網(wǎng)絡(luò)的隱語(yǔ)義模型,我們能夠捕捉到這類(lèi)上下文信息。
圖3
如圖所示,先通過(guò)滑窗構(gòu)造出query或document中的一系列n-gram terms,比如圖中是Word-n-gram layer中的trigram;然后通過(guò)word-hashing或者embedding將trigram terms表示為90k的向量;通過(guò)卷積向量Convolution matrix Wc對(duì)每個(gè)letter-trigram向量作卷積,可以得到300維的卷積層Convolutional layer;最后通過(guò)max-pooling取每個(gè)維度在Convolutional layer中的最大值,作為文本的隱語(yǔ)義向量。模型也是通過(guò)挖掘搜索日志進(jìn)行有監(jiān)督訓(xùn)練。
通過(guò)卷積神經(jīng)網(wǎng)絡(luò),能得到句子中最重要的信息。如下面一些句子,高亮的部分是卷積神經(jīng)識(shí)別的核心詞,它們是在300維的Max-pooling層向量里的5個(gè)最大神經(jīng)元激活值,回溯找到原始句子中的詞組。
microsoft office excel could allow remote code execution
welcome to the apartment office
4)基于主題模型計(jì)算問(wèn)答匹配程度。
短文本一般詞語(yǔ)比較稀疏,如果直接通過(guò)共現(xiàn)詞進(jìn)行匹配,效果可能會(huì)不理想。華為諾亞方舟實(shí)驗(yàn)室針對(duì)短文本匹配問(wèn)題,提出一個(gè)DeepMatch的神經(jīng)網(wǎng)絡(luò)語(yǔ)義匹配模型,通過(guò)(Q, A)語(yǔ)料訓(xùn)練LDA主題模型,得到其topic words,這些主題詞用來(lái)檢測(cè)兩個(gè)文本是否有語(yǔ)義相關(guān)。該模型還通過(guò)訓(xùn)練不同“分辨率”的主題模型,得到不同抽象層級(jí)的語(yǔ)義匹配(“分辨率”即指定topic個(gè)數(shù),高分辨率模型的topic words通常更加具體,低分辨率的topic words通常更加抽象)。在高分辨率層級(jí)無(wú)共現(xiàn)關(guān)系的文本,可能在低分辨率存在更抽象的語(yǔ)義關(guān)聯(lián)。DeepMatch模型借助主題模型反映詞的共現(xiàn)關(guān)系,可以避免短文本詞稀疏帶來(lái)的問(wèn)題,并且能得到不同的抽象層級(jí)的語(yǔ)義相關(guān)性。
圖4
如圖所示,綠色和紫色塊分別表示在同一個(gè)分辨率下不同的主題在X和Y文本中命中的主題詞塊,與上一層分辨率(p-layerII)的主題的關(guān)聯(lián)通過(guò)是否與上一層的主題詞塊有重疊得到。如此通過(guò)多層的主題,能夠構(gòu)建出神經(jīng)網(wǎng)絡(luò),并使用有監(jiān)督的方式對(duì)相關(guān)權(quán)重進(jìn)行訓(xùn)練。
3.基于產(chǎn)生式的智能問(wèn)答
基于產(chǎn)生式的智能問(wèn)答系統(tǒng),主要是通過(guò)seq2seq的方式,通過(guò)一個(gè)翻譯模型的方式進(jìn)行智能回答,其中問(wèn)題是翻譯模型的原語(yǔ)言,答案是翻譯模型的目標(biāo)語(yǔ)言。Seq2seq模型包含兩個(gè)RNN,一個(gè)是Encoder,一個(gè)是Decoder。Encoder將一個(gè)句子作為輸入序列,每一個(gè)時(shí)間片處理一個(gè)字符。Decoder通過(guò)Encoder生成的上下文向量,使用時(shí)間序列生成翻譯(回答)內(nèi)容。(達(dá)觀數(shù)據(jù) 江永青)
圖5
在Encoder中,每一個(gè)隱藏的狀態(tài)影響到下一個(gè)隱藏狀態(tài),并且最后一個(gè)隱藏狀態(tài)可以被認(rèn)為是序列的總結(jié)信息。最后這個(gè)狀態(tài)代表了序列的意圖,也就是序列的上下文。通過(guò)上下文信息,Decoder會(huì)生成另一個(gè)結(jié)果序列,每一個(gè)時(shí)間片段,根據(jù)上下文和之前生成的字符,Decoder都會(huì)生成一個(gè)翻譯字符。
圖6
這個(gè)模型有一些不足:首先是這個(gè)模型不能處理變長(zhǎng)的字符序列,而一般的翻譯模型和問(wèn)答模型中的序列長(zhǎng)度都是不定的。另外一個(gè)是僅通過(guò)一個(gè)context變量,并不足以完全表示輸入序列的信息。在序列變得很長(zhǎng)之后,大量的信息會(huì)被丟棄,因此需要多個(gè)context變量及注意力機(jī)制進(jìn)行處理。
3.1Padding
通過(guò)Padding方式,可以將問(wèn)答字符串固定為定長(zhǎng)的序列,比如使用如下幾個(gè)序列進(jìn)行Padding:
EOS : 序列的結(jié)束
PAD : Padding字符
GO : 開(kāi)始Decode的字符
UNK : 不存在字典中的字符
對(duì)于問(wèn)答對(duì):
Q : 你過(guò)得怎樣?
A : 過(guò)得很好。
通過(guò)padding將生成固定的如下字符串:
Q : [ PAD, PAD, PAD, PAD, “?”, “樣”, “怎”, “得”, “過(guò)”, “你” ]
A : [ GO, “過(guò)”, “得”, “很”, “好”, “。”, PAD, EOS, PAD, PAD ]
3.2 注意力機(jī)制
Seq2Seq的一個(gè)限制是輸入序列的所有信息只能編碼到一個(gè)定長(zhǎng)的數(shù)組context里,如果輸入序列變長(zhǎng)的話,我們很容易會(huì)丟失信息,因此Seq2Seq模型對(duì)長(zhǎng)輸入序列效果很差。通過(guò)引入一個(gè)注意力機(jī)制,可以讓Decoder在翻譯(回答)時(shí)按權(quán)重選擇性地提取輸入的各個(gè)隱層變量進(jìn)行計(jì)算,這樣就能在產(chǎn)生輸出時(shí)考慮到輸入的關(guān)鍵信息了。
圖7
如圖中,每個(gè)輸入的狀態(tài)yi除了與前一個(gè)狀態(tài)yi-1,輸入的隱藏狀態(tài)si有關(guān)之外,還與注意力向量ci有關(guān)。
這里的注意力向量不再是單獨(dú)的一個(gè)c,而是對(duì)于每一個(gè)輸入yi都有對(duì)應(yīng)的ci,它的計(jì)算方式如下:
eij是一個(gè)對(duì)準(zhǔn)模型,它計(jì)算了位置為i的輸入和位置為j的輸出之間關(guān)系的比重。它通過(guò)輸出的隱藏狀態(tài)si – 1(用來(lái)計(jì)算si及輸出狀態(tài)yi)和輸入序列的第j個(gè)隱藏變量hj計(jì)算而得。
通過(guò)將問(wèn)答對(duì)以翻譯模型進(jìn)行訓(xùn)練(問(wèn)題作為原語(yǔ)言,答案作為目標(biāo)語(yǔ)言),在新來(lái)一個(gè)問(wèn)題時(shí),可以在沒(méi)有任何歷史相似問(wèn)題的情況下得到較接近的答案。然而因?yàn)槟壳暗姆g模型還不夠成熟,經(jīng)常翻譯出莫名奇妙的答案,讓人摸不著頭腦,如下所示:
你好->你好
很高興認(rèn)識(shí)你->我也是
你是誰(shuí)->我是說(shuō),我們是朋友
我們是朋友嗎->不是
我們?yōu)槭裁床皇桥笥?>我們不知道,我們都不知道你們?cè)谀睦?/p>
達(dá)觀數(shù)據(jù)很厲害->我們知道
通過(guò)產(chǎn)生式的翻譯模型,即使基于大量的語(yǔ)料訓(xùn)練,很有可能效果還是不夠理想,因此經(jīng)常作為基于規(guī)則和檢索的問(wèn)答系統(tǒng)的輔助方式。
小結(jié)
本文介紹了智能問(wèn)答技術(shù)的相關(guān)原理,講述了實(shí)現(xiàn)智能問(wèn)答的一般方法。借助于深度學(xué)習(xí)技術(shù),智能問(wèn)答效果比傳統(tǒng)機(jī)器學(xué)習(xí)提升20%左右。達(dá)觀數(shù)據(jù)擁有多年的自然語(yǔ)言處理技術(shù)積累,并且緊跟行業(yè)潮流,在文本語(yǔ)義、信息檢索、智能問(wèn)答方面不斷深耕,助力各個(gè)企業(yè)享受大數(shù)據(jù)技術(shù)的成果。
來(lái)源:數(shù)據(jù)猿
刷新相關(guān)文章
我要評(píng)論
人物專(zhuān)訪more >
活動(dòng)推薦more >
- 2018 上海國(guó)際大數(shù)據(jù)產(chǎn)業(yè)高2018-12-03
- 2018上海國(guó)際計(jì)算機(jī)網(wǎng)絡(luò)及信2018-12-03
- 中國(guó)國(guó)際信息通信展覽會(huì)將于2018-09-26
- 第五屆FEA消費(fèi)金融國(guó)際峰會(huì)62018-06-21
- 第五屆FEA消費(fèi)金融國(guó)際峰會(huì)2018-06-21
- “無(wú)界區(qū)塊鏈技術(shù)峰會(huì)2018”2018-06-14
不容錯(cuò)過(guò)的資訊
-
1#后疫情時(shí)代的新思考#疫情之下,關(guān)于醫(yī)
-
2數(shù)據(jù)軟件產(chǎn)品和服務(wù)商DataHunter完成B輪
-
3眾盟科技獲ADMIC 2020金粲獎(jiǎng)“年度汽車(chē)
-
4數(shù)據(jù)智能 無(wú)限未來(lái)—2020世界人工智能大
-
5#2020非凡大賞:數(shù)字化風(fēng)起云涌時(shí),共尋
-
6#榜樣的力量#天璣數(shù)據(jù)大腦疫情風(fēng)險(xiǎn)感知
-
7#榜樣的力量#內(nèi)蒙古自治區(qū)互聯(lián)網(wǎng)醫(yī)療服
-
8#榜樣的力量#實(shí)時(shí)新型肺炎疫情數(shù)據(jù)小程
-
9#榜樣的力量#華佗疫情防控平臺(tái)丨數(shù)據(jù)猿
-
10#后疫情時(shí)代的新思考#構(gòu)建工業(yè)互聯(lián)網(wǎng)新