注:論文的一些比較經(jīng)典的描述盡量用原文汗茄,并且主要關(guān)注模型的特點(diǎn)和具體的結(jié)構(gòu),論文關(guān)于相關(guān)工作以及效果就不贅述了四康。
SMN的一些特點(diǎn):
SMN 首先在不同的粒度上把一個(gè)response 和每個(gè)上下文語(yǔ)句進(jìn)行匹配。(1對(duì)N)產(chǎn)生N個(gè)匹配對(duì)狭握。
然后從以上的每個(gè)匹配對(duì)的word中以及Segment中挖掘重要的匹配信息闪金,然后經(jīng)過(guò)卷積和池操作(CNN)變成一個(gè)向量。(N對(duì)產(chǎn)生N個(gè)向量)
然后這N個(gè)向量會(huì)通過(guò)GRU,按照一個(gè)時(shí)間序列來(lái)累積成一個(gè)最終向量哎垦。
之后設(shè)計(jì)好L函數(shù)在最后利用最終向量可以計(jì)算出一個(gè)匹配積分囱嫩。
解決多輪和單輪的不同的地方:
在于上下文也要和response進(jìn)行匹配。
1:如何從上下文中分辨出重要的信息漏设。(關(guān)鍵信息)
2:如何對(duì)上下文語(yǔ)句的關(guān)系進(jìn)行建模墨闲。(信息順序)
那么看看SMN是如何實(shí)現(xiàn): 關(guān)鍵信息 信息順序 不同粒度挖掘上下文每局話(huà)以及response。
對(duì)于每個(gè)上下文中的每句話(huà) 以及 response郑口,模型都通過(guò) word embedding 和 GRU的隱藏層輸出的隱含狀態(tài) 分別建立了一個(gè) word - word 相似度 矩陣鸳碧,以及一個(gè) sequence - sequence 相似度矩陣。
對(duì)于這兩個(gè)矩陣就可以從word level 以及 sequence level捕捉到重要的匹配信息犬性。
并且這個(gè)信息會(huì)通過(guò)卷積和池操作被挖掘以及融合成一個(gè)matching vector瞻离。
通過(guò)這種方法,來(lái)自不同粒度的上下文信息就會(huì)被識(shí)別出來(lái)乒裆。并且相似度高的特征會(huì)被CNN挖掘出來(lái)套利,從而實(shí)現(xiàn)了 關(guān)鍵信息。
然后這些matching vector會(huì)被按照順序(講話(huà)的順序從上到下)傳入GRU來(lái)形成一個(gè)最終向量鹤耍。
這就模擬了語(yǔ)句之間的聯(lián)系關(guān)系和獨(dú)立關(guān)系肉迫,也就是實(shí)現(xiàn)了 信息順序。
SMN 相當(dāng)于擴(kuò)展了MM(Match Matrix)稿黄。在多輪中使用 2D matching paradigm喊衫。
SMN的優(yōu)點(diǎn):
1:在從一開(kāi)始,一個(gè)response匹配多個(gè)上下文語(yǔ)句抛猖,因此每個(gè)語(yǔ)句的匹配信息都能夠被充分挖掘格侯,并且最后應(yīng)用到最后的積分的時(shí)候引入的loss比較小。
2:從每個(gè)上下文語(yǔ)句中提取的信息是來(lái)自于不同的粒度的财著,并且是under sufficient supervision form the response联四。所以每個(gè)話(huà)之間的,并且對(duì)response selection有用的語(yǔ)義結(jié)構(gòu)都能夠被充分挖掘出來(lái)撑教。
3:匹配和語(yǔ)句關(guān)系是連著的朝墩,不是相互獨(dú)立建模,因?yàn)檎Z(yǔ)句之間的關(guān)系(比如語(yǔ)句的順序)會(huì)被計(jì)算進(jìn)去伟姐。(最后那個(gè)GRU)
具體每個(gè)層在做的事情:
1:Utterance-Response Matching收苏。
首先:
令
word bedding ->
GRU ->
然后可以構(gòu)造word-word similarity matrix 以及 sequence-sequence similarity matrix
。
其中:
其中e是每個(gè)word的word embedding愤兵。
是 詞之間的 比如可以有
是 句之間的 這個(gè)就比如用GRU 把 U和R轉(zhuǎn)化成兩個(gè)vector鹿霸。(拿出隱層的輸出隱藏狀態(tài))
而這兩個(gè)vector可以理解成語(yǔ)句的vector。
對(duì)于隱藏層輸出為
對(duì)于 有
A是一個(gè)m*m的矩陣秆乳,在這里做一個(gè)線(xiàn)性變換用的懦鼠。
注意:M_1和M_2就一個(gè)钻哩。M_1上面的一個(gè)元素都是一個(gè)值,這個(gè)值用對(duì)應(yīng)的兩個(gè)word embedding計(jì)算出來(lái)肛冶。(比如上面用dot product)
M_2 上面的一個(gè)元素也是一個(gè)值街氢,這個(gè)值用H_U和H_R對(duì)應(yīng)的兩個(gè)向量(h向量)計(jì)算出來(lái)的。
然后:
這兩個(gè)矩陣可以作為CNN的兩個(gè)輸入端睦袖,然后CNN 會(huì)挖掘特征以及把重要的信息轉(zhuǎn)化成一個(gè)matching vector v珊肃。
CNN 會(huì)做alternates convoution 以及 max-pooling 操作。
通過(guò)CNN的特點(diǎn)(略)馅笙,可以了解到以下事實(shí):
對(duì)于識(shí)別出合適的回答是有效果的上下文語(yǔ)句中的單詞之間或者段落之間是會(huì)有比較大的相似度的伦乔。并且這樣在相似矩陣?yán)锩娴闹狄矔?huì)比較大。
所以CNN 會(huì)選擇這些比較大的相似特征的地方并且提出一個(gè)matching vecotr延蟹。
這就是為什么SMN 能夠識(shí)別重要的信息评矩。并且是基于我們的response的。
(important information in context and leverage it in matching under the supervision of the response)阱飘。
之所以考慮multiple channels 是因?yàn)橄胍獜亩鄠€(gè)粒度去捕捉重要的信息斥杜。
2: Matching Accumulation。
我們假設(shè)是上面那層的輸出.matching vector沥匈。
然后輸入進(jìn)GRU蔗喂。用GRU的隱含狀態(tài)來(lái)表示。
(encodes the matching sequence into its hidden states)
高帖。
這個(gè)層的作用有兩個(gè):
1:模擬句子的上下順序缰儿。
2:可以清理一些CNN引入的噪音。(要細(xì)看)reset gate 和 update gate可以控制信息散址。
3:Matching Prediction and Learning乖阵。
對(duì)于輸入到這層的,我們可以有预麸。
對(duì)于L(H_m) 有三種函數(shù)表示:
1)
2)
3)attention mechanism
訓(xùn)練損失函數(shù)。
最后:
Response Candidate Retrieval吏祸。
實(shí)際中对蒲,做一個(gè) 基于索引的chatbot。需要檢索一定數(shù)量的response candidates from a index beforehand贡翘。但是candidate retrieval 并不是本文的重點(diǎn)蹈矮。但是在現(xiàn)實(shí)的系統(tǒng)中是十分重要的。
可以使用5 keywords based on ti-idf scores鸣驱。