達(dá)觀數(shù)據(jù)智能問答技術(shù)研究

在機(jī)器人圍棋大勝李世石、柯潔之后尖淘,人工智能越來越火,智能問答也是人工智能中必不可少的一環(huán)著觉。智能問答一般用于解決企業(yè)客服村生、智能資訊等應(yīng)用場景,實(shí)現(xiàn)的方式多種多樣饼丘,包括簡單的規(guī)則實(shí)現(xiàn)趁桃,也可以基于檢索實(shí)現(xiàn),還可以通過encoder-decoder框架生成肄鸽,本文通過幾種常見的問答技術(shù)卫病,概要介紹了達(dá)觀數(shù)據(jù)智能問答相關(guān)原理研究。

1.基于規(guī)則的智能問答

基于規(guī)則的智能問答通常是預(yù)先設(shè)置了一系列的問答規(guī)則典徘,在用戶輸入一個(gè)問題時(shí)蟀苛,去規(guī)則庫里匹配,看是否滿足某項(xiàng)規(guī)則逮诲,如果滿足了就返回該規(guī)則對應(yīng)的結(jié)果帜平。如規(guī)則庫里設(shè)置“*你好*”->“你好坝母妗!”罕模,那么用戶在輸入“你好”時(shí)评腺,機(jī)器人會(huì)自動(dòng)返回“你好啊淑掌!”蒿讥。如果規(guī)則庫非常龐大,達(dá)到了海量的級別庫抛腕,則可對規(guī)則建立倒排索引芋绸,在用戶新輸入一個(gè)問題時(shí),先去倒排索引中查找命中的規(guī)則集合担敌,再通過這個(gè)集合中的規(guī)則進(jìn)行匹配返回摔敛。

使用規(guī)則庫的智能問答優(yōu)點(diǎn)是簡單方便,準(zhǔn)確率也較高全封;缺點(diǎn)是規(guī)則庫要經(jīng)常維護(hù)擴(kuò)展马昙,而且覆蓋的范圍小,不能對新出現(xiàn)的問題進(jìn)行回答刹悴。

2.基于檢索的智能問答

基于檢索的智能問答很像一個(gè)搜索引擎行楞,但又和搜索引擎不同,相比搜索引擎而言土匀,智能問答更側(cè)重于用戶意圖和語義的理解子房。它基于歷史的問答語料庫構(gòu)建索引,索引信息包括問題就轧、答案证杭、問題特征、答案特征等妒御。用戶問問題時(shí)解愤,會(huì)將問題到索引庫中匹配,首先進(jìn)行關(guān)鍵字和語義的粗排檢索乎莉,召回大量可能符合答案的問答對送讲;然后通過語義和其他更豐富的算法進(jìn)行精排計(jì)算,返回最好的一個(gè)或幾個(gè)結(jié)果梦鉴。

1.1?粗排策略

粗排策略跟一般的搜索引擎非常類似李茫,主要基于的技術(shù)包括粗細(xì)粒度分詞、詞重要性計(jì)算肥橙、核心詞識別魄宏、命名實(shí)體識別、語義歸一等相關(guān)技術(shù)存筏,主要是為了在粗排階段盡可能地把相關(guān)問題進(jìn)行召回宠互。

1)?詞重要性計(jì)算:通過計(jì)算重要性味榛,越能表示問題的詞匯權(quán)重越高,在召回時(shí)命中這些詞匯的候選集越有可能被召回予跌。如:“靠譜的英語培訓(xùn)機(jī)構(gòu)有哪些搏色?”,在這個(gè)問題中券册,“英語”频轿、“培訓(xùn)”、“機(jī)構(gòu)”是高權(quán)重的詞烁焙,“靠譜”是較高權(quán)重的詞航邢,“哪些”是較低權(quán)重的詞;因此越符合“英語培訓(xùn)機(jī)構(gòu)”的答案越有可能被召回骄蝇。

2)?核心詞識別:核心詞就是候選集中必須相關(guān)的詞膳殷。如“北京住宿多少錢?”

九火,核心詞是“北京”赚窃、“住宿”,如果候選集中沒有這兩個(gè)相關(guān)的詞岔激,如“上海住宿多少錢勒极?”,“北京吃飯多少錢”鹦倚,都是不符合問題需求的河质。

3)?命名實(shí)體識別:通過命名實(shí)體識別冀惭,能協(xié)助識別出問題答案中的核心詞震叙,也可以對核心專有名詞進(jìn)行重要性加權(quán),輔助搜索引擎提升召回效果散休。

4)?語義歸一也是擴(kuò)大召回的重要手段媒楼,同一個(gè)問題可能有很多種問法,不同的問法如果答案不同戚丸,或者召回的結(jié)果數(shù)目不同划址,就會(huì)很讓人煩惱了,比如“劉德華生日是哪天限府?”夺颤、“劉德華出生在哪一天?”胁勺,如果不作語義歸一的話世澜,有可能某一個(gè)問題都不會(huì)召回結(jié)果。

1.2?精排策略

通過粗排署穗,搜索引擎已經(jīng)返回了一大批可能相關(guān)的結(jié)果寥裂,比如500個(gè)嵌洼,如何從這500個(gè)問題中找到最符合問題的一個(gè)或者幾個(gè),非撤馇。考驗(yàn)算法精度麻养。一般基于檢索的問答系統(tǒng)都會(huì)通過語義或者深度學(xué)習(xí)的方法尋找最匹配的答案。

1)?????? 基于句子相似度的算法

基于句子相似度的算法有很多種诺舔,效果比較好的有基于word2vec的句子相似度計(jì)算和基于sentence2vec的句子相似度計(jì)算鳖昌。基于word2vec計(jì)算兩個(gè)句子的相似度低飒,就是以詞向量的角度計(jì)算第一個(gè)句子轉(zhuǎn)換到第一個(gè)句子的代價(jià):

詞向量有個(gè)有趣的特性遗遵,通過兩個(gè)詞向量的減法能夠計(jì)算出兩個(gè)詞的差異,這些差異性可以應(yīng)用到語義表達(dá)中逸嘀。如:vec(Berlin) – vec(Germany) = vec(Paris) – vec(France)车要;通過這個(gè)特性能夠用用來計(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表示句子中的詞向量通過權(quán)重di進(jìn)行加權(quán)平均的句向量坞淮,可以推導(dǎo)出茴晋,句子轉(zhuǎn)換代價(jià)的下限是兩個(gè)句向量的歐式距離。

一般這個(gè)下限表示兩個(gè)短句子相似的程度已經(jīng)足夠了回窘,如果需要通過完全最優(yōu)化的方法計(jì)算

的值诺擅,可以通過EMDsolver算法計(jì)算。

2)?????? 基于深度學(xué)習(xí)計(jì)算問答匹配程度

基于句向量的距離計(jì)算句子相似度啡直,可以cover大部分的case烁涌,但在句子表面相似,但含義完全不同的情況下就會(huì)出現(xiàn)一些問題酒觅,比如“我喜歡冰淇淋”和“我不喜歡冰淇淋”撮执,分詞為“我”,“不”舷丹,“喜歡”抒钱,“冰淇淋”,兩個(gè)句子的相似度是很高的,僅一字“不”字不同继效,導(dǎo)致兩個(gè)句子意思完全相反症杏。要處理這種情況,需要使用深度模型抓住句子的局部特征進(jìn)行語義識別瑞信。

如圖所示厉颤,Q是用戶的問題,D是返回的各個(gè)答案凡简。對于某一個(gè)問答句子逼友,首先將它映射到500k大小的BOW向量TermVector里。因?yàn)門ermVector是稀疏矩陣秤涩,可以使用WordHashing或者其他Embedding的方法將其映射到30k大小的詞向量空間里帜乞。接下來的l1, l2,l3層就是傳統(tǒng)的MLP網(wǎng)絡(luò),通過神經(jīng)網(wǎng)絡(luò)得到query和document的語義向量筐眷。計(jì)算出(D黎烈,Q)的cosinesimilarity后,用softmax做歸一化得到的概率值是整個(gè)模型的最終輸出匀谣,該值作為監(jiān)督信號進(jìn)行有監(jiān)督訓(xùn)練照棋。模型通過挖掘搜索點(diǎn)擊日志構(gòu)造的query和對應(yīng)的正負(fù)document樣本(點(diǎn)擊/不點(diǎn)擊),輸入DSSM進(jìn)行訓(xùn)練武翎。

3)?????? 基于卷積神經(jīng)網(wǎng)絡(luò)計(jì)算問答匹配程度

句子中的每個(gè)詞烈炭,單獨(dú)來看有單獨(dú)的某個(gè)意思,結(jié)合上下文時(shí)可能意思不同宝恶;比如“Microsoftoffice”和“I satin the office”符隙,這兩句話里的office意思就完全不一樣。通過基于卷積神經(jīng)網(wǎng)絡(luò)的隱語義模型垫毙,我們能夠捕捉到這類上下文信息霹疫。

如圖所示,先通過滑窗構(gòu)造出query或document中的一系列n-gramterms露久,比如圖中是Word-n-gramlayer中的trigram更米;然后通過word-hashing或者embedding將trigramterms表示為90k的向量欺栗;通過卷積向量Convolutionmatrix Wc對每個(gè)letter-trigram向量作卷積毫痕,可以得到300維的卷積層Convolutionallayer;最后通過max-pooling取每個(gè)維度在Convolutionallayer中的最大值迟几,作為文本的隱語義向量消请。模型也是通過挖掘搜索日志進(jìn)行有監(jiān)督訓(xùn)練。

通過卷積神經(jīng)網(wǎng)絡(luò)类腮,能得到句子中最重要的信息臊泰。如下面一些句子,高亮的部分是卷積神經(jīng)識別的核心詞蚜枢,它們是在300維的Max-pooling層向量里的5個(gè)最大神經(jīng)元激活值缸逃,回溯找到原始句子中的詞組针饥。

microsoftoffice excelcould allow remotecode execution

welcome to theapartment office

4)?????? 基于主題模型計(jì)算問答匹配程度

短文本一般詞語比較稀疏,如果直接通過共現(xiàn)詞進(jìn)行匹配需频,效果可能會(huì)不理想丁眼。華為諾亞方舟實(shí)驗(yàn)室針對短文本匹配問題,提出一個(gè)DeepMatch的神經(jīng)網(wǎng)絡(luò)語義匹配模型昭殉,通過(Q, A)語料訓(xùn)練LDA主題模型苞七,得到其topicwords,這些主題詞用來檢測兩個(gè)文本是否有語義相關(guān)挪丢。該模型還通過訓(xùn)練不同“分辨率”的主題模型蹂风,得到不同抽象層級的語義匹配(“分辨率”即指定topic個(gè)數(shù),高分辨率模型的topicwords通常更加具體乾蓬,低分辨率的topicwords通常更加抽象)惠啄。在高分辨率層級無共現(xiàn)關(guān)系的文本,可能在低分辨率存在更抽象的語義關(guān)聯(lián)任内。DeepMatch模型借助主題模型反映詞的共現(xiàn)關(guān)系礁阁,可以避免短文本詞稀疏帶來的問題,并且能得到不同的抽象層級的語義相關(guān)性族奢。

如圖所示姥闭,綠色和紫色塊分別表示在同一個(gè)分辨率下不同的主題在X和Y文本中命中的主題詞塊,與上一層分辨率(p-layerII)的主題的關(guān)聯(lián)通過是否與上一層的主題詞塊有重疊得到越走。如此通過多層的主題棚品,能夠構(gòu)建出神經(jīng)網(wǎng)絡(luò),并使用有監(jiān)督的方式對相關(guān)權(quán)重進(jìn)行訓(xùn)練廊敌。

2.?基于產(chǎn)生式的智能問答

基于產(chǎn)生式的智能問答系統(tǒng)铜跑,主要是通過seq2seq的方式,通過一個(gè)翻譯模型的方式進(jìn)行智能回答骡澈,其中問題是翻譯模型的原語言锅纺,答案是翻譯模型的目標(biāo)語言。Seq2seq模型包含兩個(gè)RNN肋殴,一個(gè)是Encoder囤锉,一個(gè)是Decoder。Encoder將一個(gè)句子作為輸入序列护锤,每一個(gè)時(shí)間片處理一個(gè)字符官地。Decoder通過Encoder生成的上下文向量,使用時(shí)間序列生成翻譯(回答)內(nèi)容烙懦。

在Encoder中驱入,每一個(gè)隱藏的狀態(tài)影響到下一個(gè)隱藏狀態(tài),并且最后一個(gè)隱藏狀態(tài)可以被認(rèn)為是序列的總結(jié)信息。最后這個(gè)狀態(tài)代表了序列的意圖亏较,也就是序列的上下文莺褒。通過上下文信息,Decoder會(huì)生成另一個(gè)結(jié)果序列雪情,每一個(gè)時(shí)間片段癣朗,根據(jù)上下文和之前生成的字符,Decoder都會(huì)生成一個(gè)翻譯字符旺罢。

這個(gè)模型有一些不足:首先是這個(gè)模型不能處理變長的字符序列旷余,而一般的翻譯模型和問答模型中的序列長度都是不定的。另外一個(gè)是僅通過一個(gè)context變量扁达,并不足以完全表示輸入序列的信息正卧。在序列變得很長之后,大量的信息會(huì)被丟棄跪解,因此需要多個(gè)context變量及注意力機(jī)制進(jìn)行處理炉旷。

2.1?Padding

通過Padding方式,可以將問答字符串固定為定長的序列叉讥,比如使用如下幾個(gè)序列進(jìn)行Padding:

EOS?: 序列的結(jié)束

PAD?: Padding字符

GO?: 開始Decode的字符

UNK?: 不存在字典中的字符

對于問答對:

Q?: 你過得怎樣窘行?

A?: 過得很好。

通過padding將生成固定的如下字符串:

Q?:?[?PAD, PAD, PAD,PAD, “图仓?”, “樣”, “怎”, “得”, “過”, “你”?]

A?:?[?GO, “過”, “得”, “很”, “好”, “罐盔。”, PAD,EOS, PAD, PAD?]

2.2?注意力機(jī)制

Seq2Seq的一個(gè)限制是輸入序列的所有信息只能編碼到一個(gè)定長的數(shù)組context里救崔,如果輸入序列變長的話惶看,我們很容易會(huì)丟失信息,因此Seq2Seq模型對長輸入序列效果很差六孵。通過引入一個(gè)注意力機(jī)制纬黎,可以讓Decoder在翻譯(回答)時(shí)按權(quán)重選擇性地提取輸入的各個(gè)隱層變量進(jìn)行計(jì)算,這樣就能在產(chǎn)生輸出時(shí)考慮到輸入的關(guān)鍵信息了劫窒。

如圖中本今,每個(gè)輸入的狀態(tài)yi除了與前一個(gè)狀態(tài)yi-1,輸入的隱藏狀態(tài)si有關(guān)之外主巍,還與注意力向量ci有關(guān)冠息。

這里的注意力向量不再是單獨(dú)的一個(gè)c,而是對于每一個(gè)輸入yi都有對應(yīng)的ci煤禽,它的計(jì)算方式如下:

eij是一個(gè)對準(zhǔn)模型铐达,它計(jì)算了位置為i的輸入和位置為j的輸出之間關(guān)系的比重。它通過輸出的隱藏狀態(tài)si– 1(用來計(jì)算si及輸出狀態(tài)yi)和輸入序列的第j個(gè)隱藏變量hj計(jì)算而得檬果。

通過將問答對以翻譯模型進(jìn)行訓(xùn)練(問題作為原語言,答案作為目標(biāo)語言),在新來一個(gè)問題時(shí)选脊,可以在沒有任何歷史相似問題的情況下得到較接近的答案杭抠。然而因?yàn)槟壳暗姆g模型還不夠成熟,經(jīng)常翻譯出莫名奇妙的答案恳啥,讓人摸不著頭腦偏灿,如下所示:

你好->你好

很高興認(rèn)識你->我也是

你是誰->我是說,我們是朋友

我們是朋友嗎->不是

我們?yōu)槭裁床皇桥笥?>我們不知道钝的,我們都不知道你們在哪里

達(dá)觀數(shù)據(jù)很厲害->我們知道

通過產(chǎn)生式的翻譯模型翁垂,即使基于大量的語料訓(xùn)練,很有可能效果還是不夠理想硝桩,因此經(jīng)常作為基于規(guī)則和檢索的問答系統(tǒng)的輔助方式沿猜。

3.?小結(jié)

本文介紹了智能問答技術(shù)的相關(guān)原理,講述了實(shí)現(xiàn)智能問答的一般方法碗脊。借助于深度學(xué)習(xí)技術(shù)啼肩,智能問答效果比傳統(tǒng)機(jī)器學(xué)習(xí)提升20%左右。達(dá)觀數(shù)據(jù)擁有多年的自然語言處理技術(shù)積累衙伶,并且緊跟行業(yè)潮流祈坠,在文本語義、信息檢索矢劲、智能問答方面不斷深耕赦拘,助力各個(gè)企業(yè)享受大數(shù)據(jù)技術(shù)的成果。


申請?jiān)囉眠_(dá)觀產(chǎn)品:https://data.datagrand.com/signup/#/experience?source=online

關(guān)注“達(dá)觀數(shù)據(jù)”公眾號芬沉,獲取更多干貨知識另绩。

達(dá)觀數(shù)據(jù)公眾號
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市花嘶,隨后出現(xiàn)的幾起案子笋籽,更是在濱河造成了極大的恐慌,老刑警劉巖椭员,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件车海,死亡現(xiàn)場離奇詭異,居然都是意外死亡隘击,警方通過查閱死者的電腦和手機(jī)侍芝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來埋同,“玉大人州叠,你說我怎么就攤上這事⌒琢蓿” “怎么了咧栗?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵逆甜,是天一觀的道長。 經(jīng)常有香客問我致板,道長交煞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任斟或,我火速辦了婚禮素征,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘萝挤。我一直安慰自己御毅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布怜珍。 她就那樣靜靜地躺著端蛆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绘面。 梳的紋絲不亂的頭發(fā)上欺税,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機(jī)與錄音揭璃,去河邊找鬼晚凿。 笑死,一個(gè)胖子當(dāng)著我的面吹牛瘦馍,可吹牛的內(nèi)容都是我干的歼秽。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼情组,長吁一口氣:“原來是場噩夢啊……” “哼燥筷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起院崇,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤肆氓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后底瓣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谢揪,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年捐凭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拨扶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡茁肠,死狀恐怖患民,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情垦梆,我是刑警寧澤匹颤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布仅孩,位于F島的核電站,受9級特大地震影響惋嚎,放射性物質(zhì)發(fā)生泄漏杠氢。R本人自食惡果不足惜站刑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一另伍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧绞旅,春花似錦摆尝、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至晃琳,卻和暖如春讯检,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背卫旱。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工人灼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人顾翼。 一個(gè)月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓投放,卻偏偏與公主長得像,于是被迫代替她去往敵國和親适贸。 傳聞我的和親對象是個(gè)殘疾皇子灸芳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容