A Sequential Matching Framework for Multi-turn Response Selection in Retrieval-based Chatbots
簡介:針對多輪對話的response selection暴备,關(guān)鍵在于如何選擇上文相關(guān)信息進行建模风响。目前存在的模型大都單獨對上文信息進行建模,忽略了response與context之間的交叉特征桥言。作者提出了序列匹配模型(sequential matching framework (SMF)),計算context中每輪query與response的交互特征,然后通過時序模型RNN對交互特征進行建模昔馋,最后將時序模型的hidden state作為最終的特征用于計算模型匹配得分接校。實驗結(jié)果證明猛频,該模型取得了state of art的效果。
- 將用戶歷史所有query通過表征函數(shù)
進行編碼蛛勉,候選答案通過另一個表征函數(shù)
進行編碼
- 用戶多輪對話過程是一個時序過程鹿寻,因此可以通過時序模型對歷史query進行編碼
- 最后通過匹配函數(shù)
融合時序模型輸出
和答案編碼向量
Unified Framework Of Matching Model
匹配模型可以通過如下公式進行定義
Deep Learning To Respond (DL2R) Architecture
代表詞向量矩陣,因此句子的表示可以通過如下公式獲得
首先通過啟發(fā)式的方法將context轉(zhuǎn)換為
-
啟發(fā)式的方法
- no context,
- whole context,
- add-one,
- drop-out,
诽凌,
表示從context中排出
代表膠狀向量毡熏,拼接向量為一個長向量
- no context,
Multi-View匹配模型
其中,和
分別表示詞粒度的特征和句子粒度的特征
同理皿淋,可以通過如下公式計算
context特征可以通過如下公式計算
其中招刹,詞粒度的特征和句子粒度的特征
可以通過如下公式計算
模型的完整計算公式如下
其中,M1和M2代表特征的線性變化
SMF
簡介:SMF模型與之前模型的主要區(qū)別:1.在模型的底層計算context中query與response的交叉信息窝趣;2.采用query與response交互作用的特征進行時序建模疯暑,這兩個區(qū)別克服了現(xiàn)有模型的缺點。
將context中每一個query與answer做線性變換
將線性變換之后的輸出做為時序模型的輸入
-
最后通過匹配函數(shù)
融合時序模型輸出
SMF模型可以通過如下公式進行總結(jié)
Utterance-Response Matching
SCN
計算query和answer之間的詞級相似度矩陣
計算句子間的相似度矩陣哑舒。分別將context和response輸入時序模型進行編碼
然后妇拯,將和
輸入2D卷積神經(jīng)網(wǎng)絡(luò)
其中,在卷積神經(jīng)網(wǎng)絡(luò)之后洗鸵,接一層max-pooling
最后越锈,將max-pooling之后的特征進行拼接方灾,并投影到低維特征空間
SAN
權(quán)重矩陣計算如下
其中萝风,和
是訓(xùn)練參數(shù)。
代表context與response之間的相關(guān)程度握截。
和
之間的交叉矩陣計算公式
其中火邓,代表Hadamard product丹弱。
同理德撬,可以對句子粒度的特征執(zhí)行相似處理得到
在獲得詞粒度和句子粒度的特征之后,將這兩類特征進行拼接輸入時序模型
Matching Accumulation
SCN和SAN模型都采用GRU作為時序模型對特征進行編碼躲胳,通過標(biāo)準(zhǔn)時序模型的門函數(shù)加強重要特征的權(quán)值蜓洪,減少不重要信息帶來的影響。-
Matching Prediction
Last State
第一個方法就是直接取時序模型的最后一個狀態(tài)做為匹配得分坯苹。該方式基于上下文的重要特征通過GRU門函數(shù)之后隆檀,被編碼在向量
其中,和
為參數(shù)向量
Static Average
第二個方法通過所有hidden states的位置進行加權(quán)粹湃,如下:
是第
個hidden state的權(quán)值恐仑,一旦
確定,對于任何
都是固定的为鳄,因此我們稱之為static average菊霜。與第一種方式相比,static average可以利用更多的信息济赎,避免信息的損失鉴逞。
Dynamic Average
與static average相似,我們同樣采用所有hidden states來計算匹配得分司训。不同之處在于构捡,由hidden state和query向量通過attention機制動態(tài)計算。不同的上下文壳猜,將會計算得到不同的權(quán)值勾徽,因此稱之為dynamic average。
其中统扳,是訓(xùn)練中學(xué)習(xí)的虛擬上下文向量喘帚。
Multi-Turn Response Selection for Chatbots with Deep Attention Matching Network
簡介:受Transformer的啟發(fā),作者從2個方面擴展了attention mechanism:1)通過疊加self-attention咒钟,作者構(gòu)建了不同粒度的文本片段表示吹由;2)通過context與response利用attention抽取真正匹配的文本片段。實驗結(jié)果證明朱嘴,該模型的效果遠遠優(yōu)于目前的state-of-the-art模型倾鲫。
-
Attentive Module
Attentive Module有三個輸入:query sentence、key sentence和value sentence萍嬉。Attentive Module首先計算query sentence與key sentence的相似矩陣乌昔,然后將attention結(jié)果應(yīng)用在value sentence中
其中,壤追、
和
代表句子中詞的個數(shù)磕道,
代表
維的embedding向量,
和
相等行冰。
融合了詞之間的語義信息之后溺蕉,將和
相加贯卦,從而得到一個新的詞表示。為了避免梯度消失和梯度爆炸的問題焙贷,模型接了一層layer normalization;然后贿堰,輸入前饋神經(jīng)網(wǎng)絡(luò)FFN辙芍,激活函數(shù)為
參考residual network,將與
相加(
與
維度相同)作為最終的特征羹与。
Representation
其中故硅,。至此得到了不同粒度的表示
和
纵搁。
Utterance-Response Matching
根據(jù)不同層之間的詞粒度表示吃衅,通過如下公式計算context與response之間相關(guān)性
cross-attention顧名思義,即是在attention計算階段就計算context與response之間的相關(guān)性
Aggregation
至此腾誉,我們得到了一個三維的特征表示
其中徘层,表示Attentive Modulue的深度,
表示context中第i輪utterance詞的個數(shù)利职,
表示response詞的個數(shù)趣效。每一個pixel的定義如下
其中,表示concatenation猪贪。接著跷敬,作者通過2層3D的CNN抽取文本的匹配的特征,然后flatten特征之后將其輸入單層的多層感知機
其中热押,代表sigmoid函數(shù)西傀,表示該
是否為正確的答案。
DAM模型的損失函數(shù)為負對數(shù)損失函數(shù)
A Context-aware Attention Network for Interactive Question Answering
簡介:該論文對多輪問答的建模與其他工作稍有不同桶癣,網(wǎng)絡(luò)結(jié)構(gòu)分為三部分:Question Module拥褂、Input Module和Answer Module。Question Module負責(zé)對當(dāng)前問題進行特征編碼牙寞;Input Module負責(zé)對上文信息進行特征編碼肿仑;Answer Module負責(zé)對答案進行編碼。同時為了獲得上文信息與當(dāng)前問題的關(guān)聯(lián)性碎税,通過Question Module計算得到特征與Input Module計算相關(guān)矩陣尤慰,保留相關(guān)信息,忽略不相關(guān)信息雷蹂。同時為了更好的回答用戶的問題伟端,對于不確定的問題,模型并不直接給出答案匪煌,而是通過反問的方式责蝠,讓用戶明確自己的問題党巾,然后加入該用戶反饋之后再進行回答。實驗結(jié)果證明霜医,該模型取得了比目前state-of-art更好的效果齿拂。
Question Module
首先,對question采用時序模型GRU進行特征編碼
然后肴敛,通過self-attention對每個詞的輸出進行加權(quán)署海,獲得最終的question表示。
Input Module
對上文句子的每個詞采用時序模型GRU進行特征編碼
為了添加上句特征医男,這里采用2層的FFN對上句特征輸出和當(dāng)前GRU狀態(tài)進行投影
在獲得每個詞的表示之后砸狞,通過question的特征對當(dāng)前句子進行attention計算,統(tǒng)計句子每個詞的相關(guān)度镀梭,然后通過加權(quán)求和的方式獲得句子的特征表示刀森。
現(xiàn)在我們得到了上文每個句子的特征表示,接下來我們需要對所有上文句子表示進行處理报账。因為用戶的問題都是具有時序關(guān)系的研底,因此這里采用時序模型GRU對上文所有句子進行編碼,然后通過question進行attention計算透罢,并加權(quán)求和得到最后的上文特征輸出飘哨。
-
Answer Module
答案生成模塊分為兩部分:Answer Generation和Interactive Mechanism。- Answer Generation:根據(jù)當(dāng)前question的特征輸出
和上文特征輸出
直接生成答案琐凭;
- Interactive Mechanism:則是在不確定Answer Generation能很好回答用戶問題時芽隆,給出問題的補充問法,從而讓用戶說的更加完整统屈。
- Answer Generation:根據(jù)當(dāng)前question的特征輸出
Answer Generation
答案生成模塊相對比較簡單胚吁,對和
相加然后通過一個時序模型GRU進行decoder。
Interactive Mechanism
對用戶反饋的文本進行時序編碼愁憔,然后直接求和(這里假設(shè)所有詞具有同等重要權(quán)重)
最后將計算獲得的反饋表征用于生成答案腕扶。通過用戶反饋我們可以判斷上文不同句子的重要程度,因此可以通過該反饋表征更新上文權(quán)重吨掌。
Enhanced Sequential Representation Augmented with Utterance-level Attention for Response Selection
簡介:基于檢索的聊天機器人半抱,針對多輪問答場景,充分利用句子粒度的表征和詞粒度的表征是非常重要的膜宋。句子的特征表示包括:通過句子粒度attention獲得的Sentence Embedding窿侈、位置信息表示和用戶信息表示。接著通過sentence-level attention判斷最相關(guān)的utterances秋茫。實驗結(jié)果證明史简,該模型的效果優(yōu)于baseline model。
Dual Encoder
context的特征表示為肛著,response的特征表示為
圆兵。context與response共享時序模型跺讯,因此有
其中,殉农。然后對前后向的輸出進行concat
Attention Layer
在對詞進行編碼之后刀脏,通過dot attention計算context與response之間詞的相似矩陣
對重要的詞賦于更高的權(quán)重,詞權(quán)重的計算如下
至此超凳,我們獲得了各自的詞對齊特征愈污,因此我們對詞編碼之后的特征進行增廣
Aggregation Layer
由于詞之間包含了詞上下文關(guān)系,因此這里采用了雙向的GRU模型來對詞粒度的上下文進行建模
Pooling Layer
由于我們最終需要的是句子的表示聪建,因此一個必然的操作就是pooling,這里選擇了max-pooling和last hidden組成了pooling layer
Utterance-level Attention Layer
-
utterance embeddings
Sentence Embedding
句子表示由2部分組成:word embedding求平均和時序模型的句子編碼Position Embedding
多輪對話中茫陆,utterances的位置信息是非常重要的特征金麸。最近的utterances與response有更高的相關(guān)性,因此作者將Sentence Embedding和Position Embedding進行拼接來豐富句子的特征簿盅。User Embedding
針對2個用戶的多輪對話挥下,每個用戶都有自己的角色和目的。因此作者對參與者的角色進行one-hot桨醋,然后與Sentence Embedding進行拼接棚瘟。
將utterance embedding輸入時序模型(GRU)對句子進行編碼獲得多輪表示,然后通過bilinear attention對context與response進行匹配
Prediction Layer
詞粒度表示和句子粒度表示
拼接到一個向量中喜最,然后輸入一層的前饋神經(jīng)網(wǎng)絡(luò)偎蘸,激活函數(shù)為
。
Sequential Attention-based Network for Noetic End-to-End Response Selection
簡介:目前處理上下文的模型大部分都是hierarchy-based methods瞬内,因此不可避免的問題就是需要選擇加入上文的輪數(shù)迷雪。如果輪數(shù)設(shè)置較大,上文相對較短的會話不可避免就會大量補零虫蝶;同時如果設(shè)置太小章咧,可能會因為上文信息不夠,而導(dǎo)致語義不清能真。
針對上述問題赁严,本文作者直接將上文信息拼接到一個段文本中,因此將上下文匹配的問題轉(zhuǎn)化為單句匹配問題了粉铐。由于把所有的上文信息都拼接到了一段文本中疼约,從而該段文本不可避免會引入大量的噪聲,因此如果提取文本中的關(guān)鍵信息蝙泼,然后與response進行匹配是本文的關(guān)鍵所在忆谓。
Input Encoding
文章采用了各種不同的word embedding,然后對每個詞的word embedding進行concatenate得到一個維度較高踱承,信息量較大的詞向量倡缠;最后通過一個前饋神經(jīng)網(wǎng)絡(luò)進行降維
哨免。
將context向量拼接為一個長文本,response向量為
昙沦。為了獲得上下文信息琢唾,文章采用了雙向的時序模型(BILSTM)對向量進行編碼
Local Matching
context與response的交叉特征是判斷兩者之間匹配度的重要因子,cross-attention計算公式如下
首先盾饮,通過cross-attention可以得到soft alignment采桃,對齊向量包含了context與response的局部相關(guān)性
然后,通過可以獲得增廣特征
其中丘损,是一層的前饋神經(jīng)網(wǎng)絡(luò)普办,激活函數(shù)為
。
Matching Composition
通過時序模型組合匹配特征
然后徘钥,通過max-pooling和mean-pooling抽取時序特征
最后衔蹲,將特征輸入MLP計算匹配得分,MLP為一層的前饋神經(jīng)網(wǎng)絡(luò)呈础,激活函數(shù)為tanh舆驶,最后對輸出取softmax。
Sentence-encoding based methods
在處理大量候選response的任務(wù)時而钞,直接使用ESIM模型耗時過高沙廉,因此作者采用了相對簡單的孿生網(wǎng)絡(luò)對response進行粗篩,之后再對粗篩的結(jié)果使用ESIM進行rerank臼节。
采用ESIM模型相同的輸入編碼方式撬陵,然后對時序模型的輸出進行加權(quán)求和
其中,网缝,是權(quán)重矩陣袱结,是一個可調(diào)的多頭參數(shù)。
句子向量可以通過權(quán)重矩陣對時序模型輸出加權(quán)求和計算得到
最后途凫,通過concat垢夹、difference和 the element-wise products對特征進行增廣
Multi-level Context Response Matching in Retrieval-Based Dialog Systems
簡介:本文對比的基線是Dual Encoder和SMN模型,從word-level和sentence-level兩個角度進行建模维费。該工作的出發(fā)點更多的是simplicity 和 efficiency果元,因此在結(jié)構(gòu)上并未突出特別的創(chuàng)新點。
Sequence Encoding
首先犀盟,將context concatenate到一個向量而晒。然后,對context與response進行embedding稠密化阅畴,然后通過時序模型LSTM進行編碼倡怎,這里取時序模型的last hidden作為最終輸出,即和
。
Sequence Level Similarity
其中监署,代表向量叉積颤专。
代表
和
之間的相似度青扔。
Word Level Similarity
其中引有,代表dot product。至此涕刚,得到了一個相似矩陣晓避,作者通過另一個時序模型將相似矩陣轉(zhuǎn)換為向量
(
代表隱藏層的維度簇捍,
代表last hidden)。
Response Score
其中俏拱,代表concatenation暑塑。
Deep Hybrid Networks Based Response Selection Fro Multi-Turn Dialogue Systems
簡介:作者提出了deep hybrid network (DHN)抽取上下文信息。首先锅必,通過每個utterance與response計算相似矩陣事格;然后,將多個相似矩陣進行concatenation得到一個大mathing matrix况毅。最后分蓖,通過若干層的深度卷積block抽取高維matching feature尔艇。本文的創(chuàng)新點更多的是將CliqueNet模型應(yīng)用到multi-turn dialogue中尔许,其他無太大創(chuàng)新點。
Multi-turn Context Representation
首先终娃,計算每個utterance與response的匹配矩陣
其中味廊,和
。
另外棠耕,通過時序模型RNN編碼句子中詞的上下文關(guān)系余佛,然后再次計算utterance與response之間的匹配矩陣
其中,窍荧。最終辉巡,多輪context的特征表示為
其中,蕊退。
-
Context-aware Matching
本文Matching Module完全參考CliqueNet網(wǎng)絡(luò)的設(shè)計結(jié)構(gòu)郊楣,Matching Module包含若干卷積block,每個block分為2階段瓤荔。第一階段净蚤,跟DenseNet就是相同的前饋結(jié)構(gòu),每一層都將合并來自前面所有層的輸出输硝。第二個階段今瀑,每個卷積層需要合并的內(nèi)容包含:比自己深的卷積層第一階段的特征圖,比自己淺的卷積層第二階段的特征圖。
其中橘荠,是一個非線性變換函數(shù)屿附,包含了
,
表示卷積砾医,
表示concatenation拿撩。
作者這里疊加了三層block,每一層block包含了原始輸入和第二階段獲得的特征如蚜。每個block第二部分的輸出經(jīng)過transition layer(压恒,其中
是一個average pooling層)處理之后作為下一個block的輸入。將所有block輸出特征池化之后错邦,構(gòu)成了最終的匹配向量
探赫。
-
Aggregation
獲得匹配向量之后,通過一層全連接層撬呢,然后softmax獲得匹配概率伦吠。最后利用交叉墑作為模型的損失函數(shù)
Knowledge-incorporating ESIM models for Response Selection in Retrieval-based Dialog Systems
簡介:論文參考ESIM模型結(jié)構(gòu),將多輪utterance拼接到一段文本中魂拦,然后做單輪匹配毛仪。本文另一個重要的點在于融合進外部信息來豐富匹配的特征,比如:Ubuntu手冊頁的命令描述芯勘。通過結(jié)合更多的外部信息來獲得更有的結(jié)果箱靴。
Word Representation Layer
word representation由兩部分組成:word embedding和character-composed embedding。其中荷愕,word embedding包含了Glove word embedding和word2vec向量(在訓(xùn)練數(shù)據(jù)上預(yù)訓(xùn)練得到)衡怀;另外,character-composed embedding通過拼接BiLSTM前向和后向的final state安疗。Context representation layer
輸入包含三部分:context抛杨、response和外部知識(ubuntu手冊頁的命令描述)。采用BiLSTM模型對文本進行編碼荐类,三部分輸入共享模型參數(shù)
-
Attention matching layer
- Attention Matching Layer同樣分為三部分:
- response與外部信息
- context與外部信息
- context與response
對context與response編碼向量計算attention怖现,然后加權(quán)求和得到對齊表示
其中,計算context與response之間的相似度玉罐。
有了對齊向量之后屈嗤,一個通用的做法就是通過concatenation、difference和element-wise product對特征進行增廣
最后厌小,我們得到 - Attention Matching Layer同樣分為三部分:
Matching aggregation layer
Aggregation Layer采用另一個BiLSTM模型對向量進行編碼
Pooling layer
池化層采用max-pooling和final state組合得到最終的向量,最后將輸入全連接層得到最終的相似度
End-to-end Gated Self-attentive Memory Network for Dialog Response Selection
簡介:作者提出了Gated Self-attentive Memory Network用于在模型訓(xùn)練中融合歷史會話和外部領(lǐng)域知識璧亚,通過self-attention加強utterance與對話歷史(或外部領(lǐng)域知識)的聯(lián)系讨韭。論文的出發(fā)點在于通過end-to-end的方式脂信,更好的融合外部的知識提升模型的效果;同時借鑒transformer的網(wǎng)絡(luò)結(jié)構(gòu)透硝,利用self-attention加強utterance的表征能力狰闪。
-
Bi-RNN based Utterance Encoding
特征編碼層為BiRNN,并且對時序模型正向和反向的last hidden進行concatenate濒生。
-
Memory Attention
輸入向量為埋泵,memory向量為
,其中
罪治。輸出向量為
其中丽声,和
是不同的
。
-
Gated Memory Attention
參考前人的工作觉义,作者采用gating mechanism對輸入和memory輸出進行融合
其中雁社,是激活函數(shù)為sigmoid的全連接神經(jīng)網(wǎng)絡(luò)層。
-
End-to-end GSMN
論文設(shè)計了多個hop晒骇,并且每個hop參數(shù)獨立霉撵。對多個utterance進行求和得到最后的向量
External Knowledge Encoding
作者通過向量表示外部領(lǐng)域知識的key-value pair。例如:代表key中的第
個token洪囤,
代表value中的第
個token徒坡。最終的向量表示為word embedding求平均
Dialog History and Response Relevance
獲得context的特征和response的特征之后,通過雙線性變化計算匹配度
其中瘤缩,是訓(xùn)練參數(shù)喇完。在獲得context與response的相似匹配向量之后,通過softmax轉(zhuǎn)換為概率分布款咖。
Interactive Matching Network for Multi-Turn Response Selection in Retrieval-Based Chatbots
簡介:作者提出了一種新的神經(jīng)網(wǎng)絡(luò)框架:IMN(interactive matching network)何暮,用于多輪對話的答案選擇奄喂。模型同時使用了字符向量和詞向量用于解決問答系統(tǒng)常見的OOV(out-of-vocabulary)問題铐殃,參考ELMO模型作者設(shè)計了multi-layer RNNs,然后將context中所有query拼接為單句跨新,并計算與response之間的交叉信息富腊,以此豐富模型的特征,最后通過一個時序模型聚合文本特征域帐。實驗結(jié)果證明赘被,該模型獲得了state-of-the-art的效果。
Word Representation Layer
參考前人經(jīng)驗肖揣,作者同時采用word-level embedding和character-level embedding(采用cnn模型對字符特征進行編碼得到詞粒度的特征)Sentence Encoding Layer
參考ELMO模型的設(shè)計民假,本文采用BILSTM作為block抽取句子特征,在L個block之后龙优,對每個block的輸出進行加權(quán)求和作為詞的編碼特征羊异。
其中,為attention權(quán)值,在模型訓(xùn)練過程中學(xué)習(xí)得到野舶。
-
Matching Layer
之前大量的論文已經(jīng)證明易迹,response與context之間的交叉特征是一個非常重要的特征∑降溃基于多輪對話的answer selection最重要的一個點就是如何選擇相關(guān)信息睹欲,并且過濾不相關(guān)的噪聲。
首先一屋,將歷史所有會話按照詞粒度特征進行拼接
然后窘疮,計算response與context的相似矩陣
獲得相似矩陣之后,我們就可以分別計算response和context的對齊特征冀墨。
最后考余,通過concat、differences 和 the element-wise products對特征進行增廣轧苫。
至此楚堤,交叉特征計算完成。下一步就是將context特征轉(zhuǎn)換回單句格式含懊。
Aggregation Layer
聚合層常見的設(shè)計是在RNN之后接一個pooling層身冬,文章這里稍作修改,采用max-pooling和last hidden的拼接特征作為輸出岔乔。需要注意酥筝,這里context和response共享BILSTM模型。
在獲得各個句子的輸出特征之后雏门,通過一個時序模型抽取最終的聚合特征嘿歌。
最后,將context聚合特征和response特征拼接作為prediction layer的輸入特征茁影。
Prediction Layer
這里采用multi-layer perceptron (MLP)作為最后一層宙帝,返回匹配得分。Training Criteria
最后通過計算交叉墑對模型進行迭代計算
總結(jié)
- 目前多輪問答已經(jīng)被廣泛的研究并應(yīng)用于生產(chǎn)募闲。大體可以總結(jié)為如下幾類
- 多輪utterance拼接到一個utterance步脓,將多輪問題轉(zhuǎn)換為單輪匹配問題
- 分層建模:先得到句子的表示,然后在通過時序模型對多輪進行建模
- 將問題分為三部分:歷史會話浩螺、當(dāng)前會話和response
- 加入外部信息豐富模型的特征
- 模型結(jié)構(gòu)可以總結(jié)為
- Transformer替換Bi-LSTM或者Bi-GRU
- 參考Residual-net和Dense-net靴患,將模型的層數(shù)由單層擴展到多層
Future work
- reinforcement learning
- multi-task
- deep network
- adversarial learning