文字匹配 文字相似度模型之BiMPM

2021-09-12 22:34:04 字數 3056 閱讀 7777

本文是對**bimpm:bilateralmulti-perspectivematchingfornaturallanguagesentences的解讀。該模型主要用於做文字匹配,即計算文字相似度。

文字匹配是nlp領域較為常見的技術,但是大部分的匹配方法都是從單一的角度去做匹配,例如abcnn把兩個句子通過同樣權重的網路結構,把得到的向量進行相似度計算。bimpm這個模型最大的創新點在於採用了雙向多角度匹配,不單單只考慮乙個維度,採用了matching-aggregation的結構,把兩個句子之間的單元做相似度計算,最後經過全連線層與softamx層得到最終的結果,不過這也成了其缺點,慢。

bimpm的主要結構如圖

可以看到,該模型一共包含五層,每一層各盡其職,接下來我們把這五層分開來詳細說明。

該層的目標是把輸入的序列p與q轉變為d維的向量表示,該向量由兩個部分組成,分別是普通的詞向量和由字元構成的向量,字元向量的值是把所有的字元輸入到lstm中得到的結果。本層實際上即是文字的向量化表示embedding。

本層主要是用於提取p與q的上下文資訊,把上一層拿到的embedding輸入到bilstm中,分別得到兩個方向不同時刻的context embedding

matching layer是該模型的核心層,多維度匹配,該層的目標是把每乙個序列不同時刻的context與另乙個序列的所有時刻的context做乙個比較,並且考慮了兩個方向,這裡設計了一種 multi-perspective 的匹配方法,用於獲取兩個句子細粒度的聯絡資訊,其中具體的比較細節我們會在下文講解。

本層的目的就是把上一層的結果聚集在一起,合併成乙個固定長度的向量,採用的依舊是bilstm模型。

最後就是**層了,這個階段包括兩個全連線層與乙個softmax層或sigmoid層,具體看業務場景。

接下來我們會把matching layer中提到的匹配機制進行乙個詳細說明,首先作者定義了乙個多角度匹配的相似度函式

m =f

m(v1

,v2;

w)m = f_m(v_1,v_2;w)

m=fm​(

v1​,

v2​;

w)其中v

1v_1

v1​與v

2v_2

v2​表示的是兩個d

dd維度的向量,w∈r

l×dw \in r^

w∈rl×d

是權重,其維度為(l,

d)(l,d)

(l,d

)其中l

ll表示的是匹配的角度數量,結果m

mm是乙個l

ll維度的向量,m=[

m1,.

..,m

k,..

.,ml

]m=[m_1,...,m_k,...,m_l]

m=[m1​

,...

,mk​

,...

,ml​

],每乙個m

km_k

mk​表示的是第k

kk個角度的匹配結果,其值的相似度計算方法如下

m k=

cosi

ne(w

k⋅v1

,wk⋅

v2)m_k=cosine(w_k·v_1,w_k·v_2)

mk​=co

sine

(wk​

⋅v1​

,wk​

⋅v2​)fm

f_mfm

​實際上又有四種策略來求相似度,分別看下

該方法會把每乙個時刻的context與另乙個序列的尾的context做乙個相似度計算

該方法會把p序列所有時刻的context與q序列所有時刻的context做乙個相似度計算,最後只保留相似度最大的那個值,

該方法首先會計算p序列每乙個時刻的context與q序列每乙個時刻的context的相似度

然後把得到的相似度作為對應時刻的權重與另乙個序列做加權平均,針對整個序列計算出attentive vector

最後把每乙個時刻的context與attentive vector做乙個相似度計算

該方法其實和attentive-matching方法類似,不過是把最後生成attentive vector的方法改為了求最大值而不是加權平均

序列的每乙個時間步長都通過這四種策略得到相似度的值,由於是雙向的,最終將生成的8個向量串聯起來作為的每個時間步長的匹配向量。

bimpm有兩個優化的點,第乙個是不單單只考慮詞向量,同時兼顧了字向量,其次其更加注重句子之間互動資訊,從不同層次不同粒度來匹配待比較的句子,加大了比較範圍,效果必然是會有一定的提公升,但是也因此引入了更多的引數,加大了訓練難度。

計算文字相似度 文字相似度演算法之 simhash

文字相似度演算法種類繁多,今天先介紹一種常見的網頁去重演算法simhash。1 什麼是simhash 2 simhash步驟 人工智慧,1 大資料,2 科技,3 網際網路,4 機器學習,5 人工智慧 00101 大資料 11001 科技 00110 網際網路 10101 機器學習 01011 has...

文字相似度

這種相似度計算方式相對簡單,原理也易於理解,就是計算單詞集合之間的交集和並集大小的比例,該值越大,表示兩個文字越相似。在涉及到大規模平行計算時,該方法效率上有一定的優勢。jaccard 相似度公式 舉例 句子a 我喜歡看電視,不喜歡看電影。句子b 我不喜歡看電視,也不喜歡看電影。分詞去噪後 a 我,...

計算文字相似度

計算文字相似度 推薦2收藏 簡單講解 文字相似度計算在資訊檢索 資料探勘 機器翻譯 文件複製檢測等領域有著廣泛的應用。比如 控制,我們假設你開發了乙個微博 並且已經把世界上罵人的句子都已經收錄進了資料庫,那麼當乙個使用者發微博時會先跟罵人句子的資料庫進行比較,如果符合裡面的句子就不讓使用者發出。通常...