Natural language sentence matching領(lǐng)域在2017年的一篇文章
NLSM 一般有兩種架構(gòu)來(lái)解決:
-
"Siamese" architecture(單一架構(gòu))
訓(xùn)練一個(gè)網(wǎng)絡(luò)宾肺,將兩個(gè)句子編碼到同一個(gè)向量空間中他托,根據(jù)句向量相似度判斷句子是否匹配。
這種方法的優(yōu)點(diǎn)是模型一般比較簡(jiǎn)單輕量互妓,得到的向量可以用于可視化或者聚類等任務(wù),其缺點(diǎn)是在編碼階段佳谦,兩個(gè)句子沒(méi)有顯式地交互凤壁,這可能會(huì)丟失掉一些重要的信息。
-
matching aggregation(匹配聚合)
在這個(gè)框架下膘掰,首先匹配兩個(gè)句子中較小的單位(如單詞或上下文向量)章姓,然后(通過(guò)CNN或LSTM)將匹配結(jié)果聚合到一個(gè)向量中佳遣,做出最后的判斷。新的框架捕獲了兩句話之間更多的交互特性凡伊,因此它獲得了顯著的改進(jìn)零渐。
以前的匹配聚合框架只考慮了單粒度的匹配,比如word to word系忙,沒(méi)有考慮phrase或sentence級(jí)別诵盼。
并且只有單向的匹配,沒(méi)有反向匹配银还。
本文在匹配聚合框架上提出了一些改進(jìn)风宁,解決了上述兩個(gè)問(wèn)題
加入multi-perspective matching(多視角匹配)
使用BiLSTM引入雙向匹配
BiMPM模型:
Word Representation Layer
沒(méi)什么好說(shuō)的,貼個(gè)別人寫(xiě)的
這一層的目標(biāo)是用d維向量表示P和Q中的每個(gè)單詞蛹疯。我們構(gòu)造了包含兩個(gè)分量的d維向量:一個(gè)詞嵌入和一個(gè)字符組合嵌入戒财。單詞嵌入是每個(gè)單獨(dú)單詞的固定向量,使用GloVe [Pennington et al.苍苞, 2014]或word2vec [Mikolov et al.固翰, 2013]對(duì)其進(jìn)行預(yù)處理。字符組合嵌入是通過(guò)將單詞內(nèi)的每個(gè)字符(表示為字符嵌入)輸入長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(LSTM)來(lái)計(jì)算的羹呵,其中字符嵌入是隨機(jī)初始化的骂际,并與NLSM任務(wù)中的其他網(wǎng)絡(luò)參數(shù)共同學(xué)習(xí)。該層的輸出是兩個(gè)字向量序列P和Q冈欢。
Context Representation Layer
使用BiLSTM對(duì)句子做雙向編碼
Matching Layer
核心部分歉铝,?的每一個(gè)節(jié)點(diǎn)?與?做匹配
分別使用四種匹配方式,將結(jié)果拼接起來(lái)凑耻,實(shí)現(xiàn)multi-perspective matching的效果
Aggregation Layer
過(guò)一遍BiLSTM太示,將正向和反向最后的?拿出來(lái)
Prediction Layer
將上一步得到的四個(gè)向量拼接到一起,做softmax香浩,算出?和?的相似度
multi-perspective matching
有時(shí)間再詳寫(xiě)类缤,大致如圖
原文鏈接 arxiv
Github實(shí)現(xiàn) BIMPM-pytorch
參考文章
[1] 文本相似度:Bilateral Multi-Perspective Matching for Natural Language Sentences