Siamese Network 孿生網(wǎng)絡(luò)簡介

0. 寫在前面

“匹配”這類任務(wù)有著很廣泛的應(yīng)用場景,例如NLP中的文本匹配,推薦領(lǐng)域的物品召回等任務(wù)。由此,學(xué)術(shù)界和工業(yè)界提出了很多不同的方法和模型來解決匹配問題,并致力于效果提升。本篇文章介紹一種經(jīng)典的網(wǎng)絡(luò)模型Siamese Network(孿生神經(jīng)網(wǎng)絡(luò)),該模型能夠處理但不局限于“匹配”問題,下面一起來看下。

個(gè)人心得:

  1. Siamese Network中,兩個(gè)輸入共享編碼層(嵌入層);
  2. 通過調(diào)整Siamese Network的特征變換層及損失函數(shù),能夠使其適用于不同的任務(wù)。

Wikipedia:

https://en.wikipedia.org/wiki/Siamese_neural_network

1. 模型架構(gòu)

Siamese Network的模型架構(gòu)如圖所示。可以看出,該模型的設(shè)計(jì)思路非常符合“匹配”的直觀感受,即將輸入pair通過特征變換后進(jìn)行交叉得到分值(eg. 相似度)。

image

整個(gè)模型可以分為三步:

  1. 將輸入pair送入編碼器,得到編碼后的向量化表示。需要注意的是,在Siamese Network中,輸入pair是共用編碼器參數(shù)的,不論在訓(xùn)練還是在測試過程中,編碼器只有一套,所有輸入共用。
  2. 向量特征組合和交叉。這一步的目的是為了讓模型能夠?qū)W習(xí)輸入pair的“匹配”特征,得到交叉后的特征向量;
  3. 將上一步特征向量送入特征映射層,并設(shè)計(jì)損失函數(shù),使得模型能夠完成指定任務(wù)。

2. Siamese Network 之文本匹配示例

本節(jié)我們以NLP文本匹配任務(wù)為例介紹Siamese Network的設(shè)計(jì)思路。針對(duì)文本匹配的Siamese Network設(shè)計(jì)實(shí)例如下圖所示。

image

我們可以看到,模型輸入層是待匹配的sentence pair,經(jīng)過同一個(gè)編碼器轉(zhuǎn)換后,得到其embedding特征編碼向量。進(jìn)一步,將兩個(gè)embedding向量進(jìn)行交互組合,最后送入全連接層得到分類預(yù)測結(jié)果。其實(shí)抽象出來,在文本匹配任務(wù)中,Siamese Network可以拆解為,將輸入轉(zhuǎn)換到同一個(gè)特征空間,然后進(jìn)行向量交互匹配(類似于余弦相似度),最后進(jìn)行特征變換使得模型能夠?qū)W習(xí)到針對(duì)不同任務(wù)的不同參數(shù)。

3. 總結(jié)

本文我們介紹了孿生神經(jīng)網(wǎng)絡(luò)Siamese Network的設(shè)計(jì)思路和原理,并結(jié)合文本匹配來進(jìn)行闡述。Siamese Network原理簡單,適用范圍廣,可以作為很多場景的一個(gè)不錯(cuò)的baseline模型。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容