摘要:人類(lèi)如何回答問(wèn)題在考慮設(shè)計(jì)一個(gè)問(wèn)答系統(tǒng)之前,不妨先來(lái)考慮一下人類(lèi)是如何回答問(wèn)題的。問(wèn)答的各個(gè)子系統(tǒng)都可以用深度學(xué)習(xí)實(shí)現(xiàn)。
摘要:隨著人工智能和物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展和相互融合,越來(lái)越多的設(shè)備將會(huì)被植入問(wèn)答AI,未來(lái)問(wèn)答將會(huì)成為人機(jī)交互的重要入口,AI問(wèn)答將會(huì)無(wú)處不在。那么AI是如何回答你所提出的問(wèn)題的?本文就為你揭秘智能問(wèn)題系統(tǒng)背后的深度學(xué)習(xí)網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)以及原理。
本文內(nèi)容由演講嘉賓視頻分享以及PPT整理而成。
本節(jié)視頻地址:http://click.aliyun.com/m/45433/
PDF下載:http://click.aliyun.com/m/45434/
金華興(花名:會(huì)當(dāng)),阿里巴巴算法專(zhuān)家。在人工智能領(lǐng)域擁有十幾年的經(jīng)驗(yàn),在阿里曾負(fù)責(zé)搜索排序/機(jī)器學(xué)習(xí)/大數(shù)據(jù)基礎(chǔ)算法/深度學(xué)習(xí)/機(jī)器閱讀等算法領(lǐng)域。主導(dǎo)研發(fā)了阿里多語(yǔ)言混合搜索排序算法系統(tǒng),融合深度學(xué)習(xí)/遷移學(xué)習(xí)/排序算法,解決多語(yǔ)種標(biāo)注數(shù)據(jù)不足問(wèn)題,首次將深度學(xué)習(xí)應(yīng)用于搜索業(yè)務(wù)。主導(dǎo)研發(fā)了阿里第一代不依賴(lài)于一行開(kāi)源代碼的分布式深度學(xué)習(xí)算法平臺(tái)---ODPS深度學(xué)習(xí)算法平臺(tái)。主導(dǎo)研發(fā)了阿里第一個(gè)基于深度強(qiáng)化學(xué)習(xí)的資訊推薦算法。獲得阿里2010年集團(tuán)內(nèi)部算法大賽冠軍。借助于阿里平臺(tái),研發(fā)的算法影響著全球十多億人。
問(wèn)答AI將會(huì)無(wú)處不在本文將為大家分享問(wèn)答系統(tǒng)背后的原理以及深度學(xué)習(xí)在問(wèn)答系統(tǒng)中的應(yīng)用。本文中所謂的“問(wèn)答”就是“一問(wèn)一答”,也就是用戶提出問(wèn)題,AI系統(tǒng)給出回答。隨著人工智能和物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展以及兩者之間的相互融合和落地,越來(lái)越多的設(shè)備將會(huì)被植入問(wèn)答AI,比如隨身會(huì)攜帶的耳機(jī)、手表、戒指,家里的音響、臺(tái)燈等,汽車(chē)和機(jī)器人等,最終AI將會(huì)無(wú)處不在。未來(lái),大家可以隨時(shí)隨地與AI進(jìn)行交互,提出問(wèn)題并獲得答案,或者通過(guò)AI來(lái)操控物理世界。問(wèn)答AI將會(huì)成為一個(gè)非常重要的入口,其地位就相當(dāng)于現(xiàn)在的搜索引擎。
在考慮設(shè)計(jì)一個(gè)AI問(wèn)答系統(tǒng)之前,不妨先來(lái)考慮一下人類(lèi)是如何回答問(wèn)題的。比如提出一個(gè)問(wèn)題,“現(xiàn)任美國(guó)總統(tǒng)是誰(shuí)?”大家可能瞬間就能夠給出答案,因?yàn)橄襁@樣的簡(jiǎn)單問(wèn)題在大腦里已經(jīng)有了記憶,人類(lèi)可以根據(jù)記憶瞬間地給出回答。還有一些問(wèn)題則需要垂直領(lǐng)域的知識(shí),經(jīng)過(guò)科學(xué)的計(jì)算和縝密的推理才能給出答案,比如數(shù)學(xué)或者物理相關(guān)的問(wèn)題。此外,還有一些問(wèn)題需要多個(gè)領(lǐng)域進(jìn)行綜合分析才能給出回答,比如在回答“肺炎的患者吃什么食物比較合適?”這個(gè)問(wèn)題時(shí),不僅需要知道醫(yī)學(xué)領(lǐng)域中對(duì)于肺炎的病理,還需要知道食物和營(yíng)養(yǎng)學(xué)等相關(guān)知識(shí),只有結(jié)合以上這幾個(gè)領(lǐng)域的知識(shí)才能夠給出比較合理的答案。而面對(duì)更加復(fù)雜的問(wèn)題,僅憑借人類(lèi)大腦里面的知識(shí)儲(chǔ)備可能還不夠,還需要借助外部工具搜集一些數(shù)據(jù)和資料才能進(jìn)行回答。
AI問(wèn)答系統(tǒng)架構(gòu)人類(lèi)回答問(wèn)題的基本邏輯就是對(duì)復(fù)雜的問(wèn)題進(jìn)行分解,分而治之。AI問(wèn)答系統(tǒng)也借鑒了這樣的邏輯,把整個(gè)系統(tǒng)進(jìn)行分解,然后將不同的問(wèn)題放入到不同的垂直問(wèn)答領(lǐng)域中做回答。當(dāng)然,還會(huì)有一個(gè)非常通用的通用問(wèn)答。在通用問(wèn)答里面主要包含了3大部分,即問(wèn)題理解,證據(jù)檢索以及答案推理。AI收到問(wèn)題后,先對(duì)問(wèn)題進(jìn)行各種各樣的分析、處理和理解;接著基于分析結(jié)果從不同的數(shù)據(jù)源檢索出相關(guān)的證據(jù),也就是檢索可能包含答案的數(shù)據(jù);然后,進(jìn)行綜合地閱讀理解和推理并且給出答案。問(wèn)答AI的各個(gè)子系統(tǒng)都可以用深度學(xué)習(xí)實(shí)現(xiàn)。
接下來(lái)為大家分享通用問(wèn)答這條流水線上面的各個(gè)子系統(tǒng)背后的深度學(xué)習(xí)模型。首先為大家分享問(wèn)題分類(lèi)網(wǎng)絡(luò),問(wèn)題其實(shí)就是一段話,也就是一個(gè)符號(hào)序列。如果想用神經(jīng)網(wǎng)絡(luò)處理一個(gè)符號(hào)序列,則首先需要將其embedding到向量空間中去,因?yàn)檫@個(gè)符號(hào)序列是具有上下文的語(yǔ)義上的相關(guān)性的,所以需要借助LSTM來(lái)進(jìn)行處理,將上下文的語(yǔ)義信息能夠融合到詞的向量中去。因?yàn)樾蛄惺亲冮L(zhǎng)的,所以為了便于后續(xù)的處理需要將整個(gè)序列轉(zhuǎn)化成一個(gè)固定維度的向量,轉(zhuǎn)化方法比較多,簡(jiǎn)單粗暴的方法就是將序列里面的所有的向量加起來(lái)再取平均;稍微復(fù)雜一些的方法則可以考慮使用多個(gè)卷積層和pooling層,逐步將長(zhǎng)序列轉(zhuǎn)化成為固定長(zhǎng)度的向量;semi-self-attention是簡(jiǎn)單而高效的方法,把序列的最后一個(gè)狀態(tài)作為key,和序列自己做一個(gè)attention pooling。之后再做一些非線性的變化,最終使用Softmax來(lái)輸出類(lèi)別。如下圖所示的就是一個(gè)問(wèn)題分類(lèi)網(wǎng)絡(luò)。
其實(shí)上面所提到的問(wèn)題分類(lèi)也可以認(rèn)為是一種問(wèn)題理解的方式,因?yàn)閱?wèn)題理解本身沒(méi)有明確的定義,只要是有助于回答后面問(wèn)題的處理就都可以加入進(jìn)來(lái)。一般而言,問(wèn)題理解中的處理大致有這樣幾個(gè):?jiǎn)栴}分詞、實(shí)體識(shí)別、意圖識(shí)別以及問(wèn)題分類(lèi)。其中的意圖識(shí)別也是分類(lèi)問(wèn)題,而分詞和實(shí)體識(shí)別都是序列標(biāo)注問(wèn)題。接下來(lái)以實(shí)體識(shí)別為例分享序列標(biāo)注問(wèn)題。
實(shí)體識(shí)別的目標(biāo)是識(shí)別問(wèn)題中哪些詞屬于實(shí)體,并且屬于什么實(shí)體,比如“成龍的老婆是誰(shuí)?”這個(gè)問(wèn)題就包含了一個(gè)人名實(shí)體,當(dāng)然其他的場(chǎng)景下面可能還有地名、機(jī)構(gòu)名稱(chēng)以及道路名稱(chēng)等,這些都是實(shí)體。實(shí)體的標(biāo)志方法一般是用B、I、O這種符號(hào)表示,其中B,也就是Beginning代表著實(shí)體詞的開(kāi)始;I代表Inside也就說(shuō)這個(gè)詞還是在這個(gè)實(shí)體里面;O代表Outside也就是說(shuō)這個(gè)詞已經(jīng)不屬于這個(gè)實(shí)體了。在前面的這個(gè)問(wèn)題中“成龍”這個(gè)詞就構(gòu)成了實(shí)體。序列標(biāo)注模型一般會(huì)在下面使用深度學(xué)習(xí),上面則使用CRF類(lèi)來(lái)做解碼。
深度學(xué)習(xí)的網(wǎng)絡(luò)與前面所提到的問(wèn)題識(shí)別其實(shí)是大同小異的,最下面兩層也負(fù)責(zé)將序列轉(zhuǎn)化成為空間中的序列,并且盡可能多地將語(yǔ)義的信息包含在其中。在問(wèn)題理解網(wǎng)絡(luò)模型中間會(huì)加一個(gè)Self-attention層,雖然LSTM能夠捕獲上下文的一些信息,但是在實(shí)際中,其對(duì)于較長(zhǎng)句子的分析能力還是不足的,并且也不能很好地捕獲一些比較低頻的問(wèn)題的語(yǔ)義。而Self-attention層能夠?qū)⑿蛄兄械娜我鈨蓚€(gè)詞都進(jìn)行關(guān)聯(lián)并捕獲他們之間語(yǔ)義的關(guān)系,這樣就不會(huì)受限于長(zhǎng)度,可以在任意遠(yuǎn)的兩個(gè)詞之間捕獲語(yǔ)義的相關(guān)性。所以其對(duì)于語(yǔ)義的處理,特別是標(biāo)注都是很有幫助的。上圖所展現(xiàn)的就是一個(gè)問(wèn)題理解中的深度學(xué)習(xí)網(wǎng)絡(luò)。
知識(shí)圖譜
完成了以上的步驟后就需要去考慮檢索證據(jù)。證據(jù)的來(lái)源比較多,一個(gè)重要的來(lái)源就是知識(shí)圖譜。在過(guò)去二三十年的互聯(lián)網(wǎng)化以及信息化進(jìn)程中,各行各業(yè)都沉淀了很多的知識(shí),這些知識(shí)往往都是以知識(shí)圖譜的形式保存下來(lái)的。知識(shí)圖譜是典型的圖結(jié)構(gòu),節(jié)點(diǎn)就表示實(shí)體,邊則表示實(shí)體之間的關(guān)系。如果想要在知識(shí)圖譜上使用深度學(xué)習(xí)方法做檢索,首先需要考慮的就是將知識(shí)圖譜embedding到一個(gè)向量空間里面去,再在向量空間中進(jìn)行語(yǔ)義檢索。我們面臨的第一個(gè)問(wèn)題,是如何將一個(gè)復(fù)雜的知識(shí)圖譜embedding到一個(gè)向量空間中去?大家不妨思考一下知識(shí)圖譜具有什么樣的特點(diǎn),其所具備的一個(gè)非常重要的特點(diǎn)就是它由三元組組成,而三元組具有非常強(qiáng)烈的約束,使用符號(hào)的形式進(jìn)行表達(dá)是很容易理解的,比如通過(guò)<阿里,收購(gòu),優(yōu)酷土豆>這個(gè)三元組就能了解這樣的一種關(guān)系。但是將知識(shí)圖譜中的三元組embedding到向量空間中去之后,應(yīng)該如何去描述這種關(guān)系呢?這是一個(gè)非常關(guān)鍵的問(wèn)題。
有一句話叫做“簡(jiǎn)單的就是美的”,實(shí)體可以變成向量,而向量之間最簡(jiǎn)單的代數(shù)計(jì)算就是相加或者相減,所以可以考慮讓三元組中的前兩個(gè)向量相加,等于第三個(gè)向量,通過(guò)簡(jiǎn)單的相加關(guān)系來(lái)表達(dá)知識(shí)圖譜中符號(hào)上的邏輯關(guān)系。在如下圖所示的例子中,阿里+收購(gòu)=優(yōu)酷土豆。
一個(gè)知識(shí)圖譜往往是非常龐大的,很多時(shí)候就會(huì)有幾百萬(wàn)個(gè)實(shí)體,以及幾十億個(gè)關(guān)系,所以需要設(shè)計(jì)一個(gè)損失函數(shù)來(lái)盡量多地滿足等式關(guān)系,最終驅(qū)動(dòng)實(shí)體和邊embedding到向量空間的比較好的點(diǎn)上面去。因?yàn)楝F(xiàn)在知識(shí)圖譜里面除了實(shí)體的信息之外還可能有其他的信息,比如對(duì)實(shí)體以及關(guān)系的描述,這種的描述往往是自然語(yǔ)言的形式,比如句子、段落甚至是一篇文章。像這些信息也是可以用序列embedding的方式先將其轉(zhuǎn)化成為一個(gè)向量,在向量空間里也強(qiáng)迫其滿足等式關(guān)系,將有助于實(shí)現(xiàn)整個(gè)知識(shí)圖譜的embedding,有助于后續(xù)語(yǔ)義上的處理。
當(dāng)知道了如何embedding之后,接下來(lái)需要考慮如何檢索知識(shí)圖譜。此時(shí),知識(shí)圖譜里面的實(shí)體已經(jīng)變成向量了,而問(wèn)題也可以表達(dá)成向量,自然就可以使用問(wèn)題向量在知識(shí)圖譜中尋找接近的向量,這樣所找出來(lái)的向量很可能與問(wèn)題是語(yǔ)義相關(guān)的,甚至很有可能就包含了答案。但是在實(shí)際中這種做法可能會(huì)存在問(wèn)題,因?yàn)閱?wèn)題表達(dá)學(xué)習(xí)與知識(shí)圖譜的embedding是兩個(gè)獨(dú)立的任務(wù),學(xué)習(xí)出來(lái)的向量空間實(shí)際上存在于不同的坐標(biāo)系里面,在不同的坐標(biāo)系里面,即便坐標(biāo)相同,所表示的內(nèi)容也可能是不相同的。所以需要將其做進(jìn)一步的對(duì)齊,只有在坐標(biāo)對(duì)齊之后才能判斷兩個(gè)坐標(biāo)系中的點(diǎn)是否接近,從而判斷是否是真正地語(yǔ)義上的相近。對(duì)齊兩個(gè)坐標(biāo)系可以用Attention機(jī)制來(lái)實(shí)現(xiàn),當(dāng)然需要標(biāo)注數(shù)據(jù),設(shè)計(jì)新的Task來(lái)驅(qū)動(dòng)Attention里面的參數(shù)收斂,使得兩坐標(biāo)系內(nèi)的向量是可比較的。如果標(biāo)注的數(shù)據(jù)量夠多,也可以對(duì)問(wèn)題向量學(xué)習(xí)里面的網(wǎng)絡(luò)參數(shù)同時(shí)做fine tune,并且能夠起到更好的效果提升。在對(duì)齊之后就可以將問(wèn)題向量丟到知識(shí)圖譜的向量空間中去了,將最相關(guān)或者最近的實(shí)體和關(guān)系找出來(lái),這樣就能夠獲得最優(yōu)的證據(jù)。
除了知識(shí)圖譜是一個(gè)重要的證據(jù)來(lái)源之外,其實(shí)還有一個(gè)更大的證據(jù)來(lái)源在于互聯(lián)網(wǎng)。在互聯(lián)網(wǎng)中找證據(jù)就是一個(gè)經(jīng)典的搜索Ranking的問(wèn)題,其核心就是衡量問(wèn)題與網(wǎng)頁(yè)之間的語(yǔ)義相關(guān)性,找出與問(wèn)題最為相關(guān)的網(wǎng)頁(yè)。用神經(jīng)網(wǎng)絡(luò)解決這個(gè)問(wèn)題,需要把網(wǎng)頁(yè)文本和問(wèn)題embedding到向量空間中,還需要設(shè)計(jì)一個(gè)相似性函數(shù),一般而言可以使用COS相似性,用COS值來(lái)衡量語(yǔ)義,經(jīng)過(guò)不斷的學(xué)習(xí)之后使得學(xué)習(xí)出來(lái)的向量的COS值能夠代表語(yǔ)義上的相近性,最終就可以用COS值來(lái)找尋與問(wèn)題最為相關(guān)的網(wǎng)頁(yè)。
接下來(lái)分享當(dāng)將證據(jù)檢索完之后接下來(lái)該如何做。前面提到知識(shí)圖譜和網(wǎng)頁(yè)中的數(shù)據(jù)形式是具有一定差異的,還有一些證據(jù)會(huì)來(lái)自其他數(shù)據(jù)源比如百科、論壇以及圖片視頻等,而這些不同形態(tài)的數(shù)據(jù)連起來(lái)就會(huì)非常復(fù)雜。如何去進(jìn)行綜合閱讀和推理是一個(gè)非常復(fù)雜的問(wèn)題,也是強(qiáng)AI的問(wèn)題,當(dāng)解決了這個(gè)問(wèn)題也就能跨越到強(qiáng)AI的階段。
而到目前為止,這個(gè)問(wèn)題還沒(méi)有一個(gè)非常好的解決方案,所以在該問(wèn)題上的研究和討論也非?;鸨W罱灿泻芏喙竞脱芯繖C(jī)構(gòu)發(fā)布了許多簡(jiǎn)化的開(kāi)放的數(shù)據(jù)集供大家測(cè)試和研發(fā)算法,比如Standford的SQuAD數(shù)據(jù)集,這個(gè)數(shù)據(jù)集里面有500多個(gè)文章以及10萬(wàn)多個(gè)問(wèn)題,而去年百度、谷歌以及微軟也都發(fā)布了一些數(shù)據(jù)集,這些數(shù)據(jù)集也更大并且更加復(fù)雜,像百度和微軟所發(fā)布的數(shù)據(jù)集中段落的數(shù)目有100多萬(wàn),問(wèn)題也有20多萬(wàn),并且這些數(shù)據(jù)集也更加接近于真實(shí)的場(chǎng)景。
當(dāng)面對(duì)復(fù)雜的閱讀理解問(wèn)題時(shí),該如何設(shè)計(jì)深度學(xué)習(xí)模型來(lái)解決這個(gè)問(wèn)題呢?其實(shí)這里還不能稱(chēng)之為“解決”只能是“探索性解決”,因?yàn)楝F(xiàn)在還沒(méi)有一個(gè)特別好的解決方案。這里為大家分享一個(gè)目前在SQuAD數(shù)據(jù)集上表現(xiàn)比較好的網(wǎng)絡(luò)結(jié)構(gòu)。
在這個(gè)網(wǎng)絡(luò)結(jié)構(gòu)里輸入是一個(gè)問(wèn)題和多個(gè)段落,目標(biāo)是在多個(gè)段落里面找出答案片段,當(dāng)然也可能有多個(gè)答案片段。自然也需要先對(duì)這些問(wèn)題和段落進(jìn)行embedding,在此基礎(chǔ)之上再進(jìn)行進(jìn)一步地處理。中間層的處理方式與前面所提到的問(wèn)題分類(lèi)以及序列標(biāo)注都有所不同,在中間層的PQ attention是將段落和問(wèn)題進(jìn)行關(guān)聯(lián),讓段落的表達(dá)能夠蘊(yùn)含問(wèn)題的語(yǔ)義,具體的做法就是讓段落中的每一個(gè)詞都多帶帶地對(duì)整個(gè)問(wèn)題進(jìn)行attention,這樣做完之后就能夠使得每個(gè)段落中的每個(gè)詞都能夠包含問(wèn)題,也就是一定程度上將問(wèn)題是什么以及段落中的詞與問(wèn)題的關(guān)聯(lián)強(qiáng)度如何展現(xiàn)出來(lái)。因?yàn)槎温渫容^長(zhǎng),會(huì)有很多雜音,所以上面再加一個(gè)Gate層,對(duì)無(wú)關(guān)的詞起到過(guò)濾抑制的作用。在此之上再加一層Fusion進(jìn)行聚合,其功能就是將Gate層銳化的信息再做一個(gè)平滑,同時(shí)把前后的信息在此進(jìn)行融合,使其能夠捕獲答案與段落關(guān)聯(lián)的更多信息。在最上面是Pointer層,這里就是找答案片段的層,在其下的那些層里面是將不同的段落多帶帶處理的,而在Pointer層中則是將所有的段落串起來(lái)作為一個(gè)段落看待,在里面尋找最佳答案;Pointer層是一個(gè)RNN,初始狀態(tài)是用問(wèn)題向量,輸出是兩個(gè)Softmax層,一個(gè)表示答案的開(kāi)始,另一個(gè)表示答案的結(jié)束。
當(dāng)將段落中的答案找出來(lái)之后,還需要形成一個(gè)通順的語(yǔ)句并反饋給用戶,而有時(shí)候答案片段可能有多個(gè),更需要將其串接起來(lái)形成自然語(yǔ)句。生成自然語(yǔ)句是一個(gè)序列的generation問(wèn)題,與機(jī)器翻譯或者圖像caption問(wèn)題是類(lèi)似的。 網(wǎng)絡(luò)結(jié)構(gòu)包含兩大部分:encoder和decoder, 在Decoder部分,可以認(rèn)為和上述問(wèn)題都是一樣的,但是在Encoder部分就會(huì)有很大的區(qū)別,因?yàn)槠鋽?shù)據(jù)來(lái)源和結(jié)構(gòu)完全不同。在機(jī)器翻譯里面,Encoder所處理的就是一個(gè)序列,而在閱讀理解里面,Encoder所處理的數(shù)據(jù)就既有問(wèn)題也有段落,還會(huì)包含了已經(jīng)找出來(lái)的答案信息。
在Encoder中最下面的兩層Embedding和Encode中可以完全共享尋找答案網(wǎng)絡(luò)最下面的兩層參數(shù),這里的Start和End就是閱讀理解中的Poiner層輸出的結(jié)果,將其構(gòu)成二值化序列放進(jìn)來(lái)。當(dāng)然除此之外,如果還有其他的特征也可以放入到Encoder里面來(lái)。Encoder的信息會(huì)輸出給Decoder,Decoder中有一個(gè)非常關(guān)鍵的層就是Attention,Attention能夠準(zhǔn)確地從問(wèn)題或者段落里面找一些關(guān)鍵詞出來(lái),使得必要的詞能夠被輸出到最終的答案語(yǔ)句中去。Decoder還會(huì)生成一些非關(guān)鍵詞,起到順滑和鏈接的作用。在這個(gè)網(wǎng)絡(luò)結(jié)構(gòu)里輸入是一個(gè)問(wèn)題和多個(gè)段落,目標(biāo)是在多個(gè)段落里面找出答案片段,當(dāng)然也可能有多個(gè)答案片段。自然也需要先對(duì)這些問(wèn)題和段落進(jìn)行embedding,在此基礎(chǔ)之上再進(jìn)行進(jìn)一步地處理。中間層的處理方式與前面所提到的問(wèn)題分類(lèi)以及序列標(biāo)注都有所不同,在中間層的PQ attention是將段落和問(wèn)題進(jìn)行關(guān)聯(lián),讓段落的表達(dá)能夠蘊(yùn)含問(wèn)題的語(yǔ)義,具體的做法就是讓段落中的每一個(gè)詞都多帶帶地對(duì)整個(gè)問(wèn)題進(jìn)行attention,這樣做完之后就能夠使得每個(gè)段落中的每個(gè)詞都能夠包含問(wèn)題,也就是一定程度上將問(wèn)題是什么以及段落中的詞與問(wèn)題的關(guān)聯(lián)強(qiáng)度如何展現(xiàn)出來(lái)。因?yàn)槎温渫容^長(zhǎng),會(huì)有很多雜音,所以上面再加一個(gè)Gate層,對(duì)無(wú)關(guān)的詞起到過(guò)濾抑制的作用。在此之上再加一層Fusion進(jìn)行聚合,其功能就是將Gate層銳化的信息再做一個(gè)平滑,同時(shí)把前后的信息在此進(jìn)行融合,使其能夠捕獲答案與段落關(guān)聯(lián)的更多信息。在最上面是Pointer層,這里就是找答案片段的層,在其下的那些層里面是將不同的段落多帶帶處理的,而在Pointer層中則是將所有的段落串起來(lái)作為一個(gè)段落看待,在里面尋找最佳答案;Pointer層是一個(gè)RNN,初始狀態(tài)是用問(wèn)題向量,輸出是兩個(gè)Softmax層,一個(gè)表示答案的開(kāi)始,另一個(gè)表示答案的結(jié)束。
答案生成網(wǎng)絡(luò)---自然語(yǔ)句生成當(dāng)將段落中的答案找出來(lái)之后,還需要形成一個(gè)通順的語(yǔ)句并反饋給用戶,而有時(shí)候答案片段可能有多個(gè),更需要將其串接起來(lái)形成自然語(yǔ)句。生成自然語(yǔ)句是一個(gè)序列的generation問(wèn)題,與機(jī)器翻譯或者圖像caption問(wèn)題是類(lèi)似的。 網(wǎng)絡(luò)結(jié)構(gòu)包含兩大部分:encoder和decoder, 在Decoder部分,可以認(rèn)為和上述問(wèn)題都是一樣的,但是在Encoder部分就會(huì)有很大的區(qū)別,因?yàn)槠鋽?shù)據(jù)來(lái)源和結(jié)構(gòu)完全不同。在機(jī)器翻譯里面,Encoder所處理的就是一個(gè)序列,而在閱讀理解里面,Encoder所處理的數(shù)據(jù)就既有問(wèn)題也有段落,還會(huì)包含了已經(jīng)找出來(lái)的答案信息。
在Encoder中最下面的兩層Embedding和Encode中可以完全共享尋找答案網(wǎng)絡(luò)最下面的兩層參數(shù),這里的Start和End就是閱讀理解中的Poiner層輸出的結(jié)果,將其構(gòu)成二值化序列放進(jìn)來(lái)。當(dāng)然除此之外,如果還有其他的特征也可以放入到Encoder里面來(lái)。Encoder的信息會(huì)輸出給Decoder,Decoder中有一個(gè)非常關(guān)鍵的層就是Attention,Attention能夠準(zhǔn)確地從問(wèn)題或者段落里面找一些關(guān)鍵詞出來(lái),使得必要的詞能夠被輸出到最終的答案語(yǔ)句中去。Decoder還會(huì)生成一些非關(guān)鍵詞,起到順滑和鏈接的作用。
本文為大家分享了AI問(wèn)答系統(tǒng)的架構(gòu)以及通用問(wèn)答各個(gè)環(huán)節(jié)的深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)以及其背后原理。
閱讀原文
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/19726.html
閱讀 3026·2021-11-22 15:25
閱讀 2346·2021-11-18 10:07
閱讀 1115·2019-08-29 15:29
閱讀 551·2019-08-29 13:25
閱讀 1604·2019-08-29 12:58
閱讀 3281·2019-08-29 12:55
閱讀 2979·2019-08-29 12:28
閱讀 587·2019-08-29 12:16