Poly-encoder
Poly-encoder
- Poly-encoder
- Bi-encoder
- cross-encoder
- poly-encoder
Poly-encoder
論文《Poly-encoders: Transformer Architectures and Pre-training Strategies for Fast and Accurate Multi-sentence Scoring》開放了一種新的transformer體系結(jié)構(gòu),即Poly-encoder。
Poly-encoder學(xué)習(xí)全局而不是token級(jí)別的self-attention特征,同時(shí)解決了Bi-encoder匹配質(zhì)量低的問題以及 ARC-II、BERT等交互式的cross-encoder匹配速度慢的問題。
Bi-encoder
如圖,Bi-encoder采用兩個(gè)相同的網(wǎng)絡(luò)(如BERT)得出兩個(gè)句子各自的特征向量,再進(jìn)行相似度計(jì)算。
計(jì)算context向量:ycxt=red(T1(CTXT))y_{cxt}=red(T_1(CTXT))ycxt?=red(T1?(CTXT))
計(jì)算candidate向量:ycand=red(T1(CAND))y_{cand}=red(T_1(CAND))ycand?=red(T1?(CAND))
red()的三種計(jì)算方法:
·List item取第一個(gè)位置(CLS)的向量
·求所有位置向量的平均
· 求前n個(gè)位置向量的平均
相似度得分:dot-product(點(diǎn)積),即s{CTXT,CAND}=ycxt?ycandy_{cxt} ·y_{cand}ycxt??ycand?
訓(xùn)練,cross-entopy(交叉熵)
總體來講,利用2個(gè)網(wǎng)絡(luò)分別將context和candidate編碼成向量,最后再通過一個(gè)相似性判別函數(shù)(如cosine、dot-product)計(jì)算兩個(gè)向量間的相似度。
Bi-encoder的特點(diǎn)是context和candidate編碼成向量的過程獨(dú)立(編碼過程不交互),最后才開始交互,速度快但匹配質(zhì)量不高。
因此,這種獨(dú)立編碼的方式可以使我們離線計(jì)算出所有candidates的向量,線上服務(wù)時(shí),只需要計(jì)算query的向量再進(jìn)行相似度匹配,匹配速度快但質(zhì)量不能達(dá)到最佳。
cross-encoder
如圖:
cross-encoder的特點(diǎn)是context和candidate輸入至同意網(wǎng)絡(luò)結(jié)構(gòu)中,編碼過程完全交互(即context和candidate時(shí)時(shí)刻刻應(yīng)相互交互),但匹配速度慢,同時(shí)無(wú)法離線計(jì)算出所有candidates的表征向量,沒處理一個(gè)context必須與所有candidates進(jìn)行交互,模型非常耗時(shí)。
poly-encoder
用多個(gè)向量表示context,(簡(jiǎn)化版:直接去前m個(gè)向量)
參考1
參考2
總結(jié)
以上是生活随笔為你收集整理的Poly-encoder的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 冰与火之歌-五王之战(优达数据分析进阶项
- 下一篇: 11.21 权利的游戏 冰与火之歌