一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

21個(gè)經(jīng)典深度學(xué)習(xí)句間關(guān)系模型

深度學(xué)習(xí)自然語言處理 ? 來源:李rumor ? 作者:李rumor ? 2021-03-29 16:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

鴿了很久的NLP入門系列終于在我的努力下又更新了。

上次聊了分類任務(wù)的模型與技巧,今天我們就來聊聊句間關(guān)系任務(wù)。句間關(guān)系的輸入是一對文本,輸出是文本間的關(guān)系。常用的判別有語義相似度、語義關(guān)系推理(蘊(yùn)含/中立/矛盾)、問答對等,拿GLUE榜單來說,其中有6個(gè)(QQP/MNLI/QNLI/STS/RTE/MRPC)都是句間關(guān)系任務(wù)。這個(gè)任務(wù)的應(yīng)用場景也很廣泛,比如搜索推薦的語義相關(guān)性、智能問答中的問題-問題、問題-答案匹配、知識(shí)圖譜中的實(shí)體鏈接、關(guān)系識(shí)別等,是成為NLPer必須卷的一個(gè)方向。

深度學(xué)習(xí)中,文本匹配模型可以分為兩種結(jié)構(gòu):雙塔式和交互式。

雙塔式模型也稱孿生網(wǎng)絡(luò)、Representation-based,就是用一個(gè)編碼器分別給兩個(gè)文本編碼出句向量,然后把兩個(gè)向量融合過一個(gè)淺層的分類器;交互是也稱Interaction-based,就是把兩個(gè)文本一起輸入進(jìn)編碼器,在編碼的過程中讓它們相互交換信息,再得到最終結(jié)果。如下圖:

73d8b002-8e8f-11eb-8b86-12bb97331649.jpg

兩種框架比較的話,交互式通常準(zhǔn)確率會(huì)高一些,畢竟編碼器能使用的信息更多了,而雙塔式的速度會(huì)快很多,比如線上來一個(gè)query,庫里有一百萬個(gè)候選,等交互式算完了用戶都走了,但雙塔式的候選可以提前計(jì)算好,只用給query編碼后去和候選向量進(jìn)行淺層計(jì)算就好了。工程落地的話,通常會(huì)用雙塔式來做召回,把一百萬個(gè)候選縮減為10個(gè),再對這10個(gè)做更精細(xì)的計(jì)算。

所以說這兩種方式都是實(shí)際應(yīng)用中必不可缺的,兩個(gè)方向也都有著不少的模型:

74151862-8e8f-11eb-8b86-12bb97331649.jpg

下面我們就先講講雙塔式模型的SOTA發(fā)展。這里面通常有三個(gè)點(diǎn)可以優(yōu)化:encoder、merged_vec、classifier,大部分研究都在專注提升encoder的能力。我個(gè)人主要將雙塔的發(fā)展分為詞袋、有監(jiān)督、預(yù)訓(xùn)練+遷移三個(gè)階段。

詞袋句向量

最簡單的就是直接從詞向量計(jì)算句向量。首先可以用mean、max池化,相比字面n-gram重合度肯定是有提升的。但當(dāng)句子中的噪聲多起來之后,如果兩個(gè)句子有大量重合的無意義詞匯,分?jǐn)?shù)也會(huì)很高,這時(shí)候就可以考慮加權(quán)求和,比如TF-IDF。

ICLR2017論文SIF提出了名為smooth inverse frequency的方法,先由詞向量加權(quán)平均得到句向量,再對多個(gè)句子組成的句向量矩陣進(jìn)行PCA,讓每個(gè)句向量減去第一主成分,去掉“公共”的部分,保留更多句子本身的特征。該方法在相似度任務(wù)上有10%-30%的提升,甚至超過了一些RNN模型,十分適合對速度要求高、doc相似度計(jì)算的場景。

之前提到的相似度任務(wù)都適用cosine相似度衡量的,也有學(xué)者研究了其他metric。2016年的WMD提出了Word Mover‘s Distance這一概念,用句子A走到句子B的最短距離來衡量兩者的相似程度。表示在下圖中就是非停用詞的向量轉(zhuǎn)移總距離:

743dc956-8e8f-11eb-8b86-12bb97331649.jpg

上面介紹的兩篇文章使用的都是word2vec向量,但實(shí)際操作中我推薦使用fasttext(就是加上ngram,但仍用word2vec結(jié)構(gòu)訓(xùn)練),一方面ngram可以增加信息,另一方面也避免了OOV。

千萬不要小看詞向量,用好了真的是很強(qiáng)的baseline。另外現(xiàn)在很多線上場景因?yàn)閷λ俣纫蟾?,或者是toB的業(yè)務(wù)甲方不愿意買GPU,有不少落地都停留在這個(gè)階段。

有監(jiān)督句向量

詞向量雖然可以經(jīng)過處理變成句向量,但詞袋式的融合也會(huì)丟失掉順序信息,同時(shí)在訓(xùn)練時(shí)其目標(biāo)還是word-level的,想要獲得「真正的句向量」,還是需要尋找sentence-level的目標(biāo)函數(shù)。

微軟在2013年提出的CIKM論文DSSM是相當(dāng)知名的多塔模型,它對文本進(jìn)行word hash(也就是表示成ngram,減少詞表數(shù)),再將ngram轉(zhuǎn)成向量再平均得到句向量,經(jīng)過三層MLP得到128維的編碼,用cosine相似度作為每個(gè)Q-D對的分?jǐn)?shù),經(jīng)過sofamax歸一化后得到P(D|Q),最終目標(biāo)為最大化正樣本被點(diǎn)擊的概率。

74aefc02-8e8f-11eb-8b86-12bb97331649.jpg

但BOW式的詞向量平均會(huì)損失上下文信息,所以之后也有學(xué)者提出了CNN-DSSM、LSTM-DSSM,基本上結(jié)構(gòu)都差不多。

Siam-CNN

題目:Applying Deep Learning to Answer Selection: A Study and An Open Task

論文:https://arxiv.org/pdf/1508.01585.pdf

在2015年IBM提出的Siam-CNN架構(gòu)中,作者嘗試了多種孿生架構(gòu),使用CNN作為基礎(chǔ)編碼器,pairwise loss作為損失函數(shù),最后實(shí)驗(yàn)發(fā)現(xiàn)第二種是最好的:

74fd1de2-8e8f-11eb-8b86-12bb97331649.jpg

說實(shí)話這個(gè)結(jié)果有點(diǎn)迷,Query和Answer的表達(dá)還是略有不同的,經(jīng)驗(yàn)上看我覺得第三個(gè)結(jié)構(gòu)更靠譜些。不過作者只在一種數(shù)據(jù)集上進(jìn)行了嘗試,或許換個(gè)數(shù)據(jù)集結(jié)果會(huì)有變化。

Siam-LSTM

題目:Siamese Recurrent Architectures for Learning Sentence Similarity

論文:http://www.mit.edu/~jonasm/info/MuellerThyagarajan_AAAI16.pdf

2016年的Siam-LSTM在結(jié)構(gòu)上比較簡單,就是直接用共享權(quán)重的LSTM編碼,取最后一步的輸出作為表示。有個(gè)改進(jìn)點(diǎn)是作者使用了Manhattan距離計(jì)算損失:

7596b43e-8e8f-11eb-8b86-12bb97331649.jpg

后續(xù)還有一些模型改成雙向、char-level的,這里就不過多贅述了。

Multi-View

題目:Multi-view Response Selection for Human-Computer Conversation

論文:https://www.aclweb.org/anthology/D16-1036.pdf

百度的EMNLP2016論文針對多輪對話問題,提出了Multi-view的Q-A匹配方式,輸入的query是歷史對話的拼接,分別編碼了word sequence view和utterance sequence view兩種表示。詞級別的計(jì)算和Siam-LSTM差不多,都是用RNN的最后一步輸出做Q-A匹配,而句子級別的會(huì)對RNN每步輸出做max pooling得到句子表示,然后再將句子表示輸入到GRU中,取最后一步作為帶上下文的表示與回答匹配,如下圖:

75f2a71c-8e8f-11eb-8b86-12bb97331649.jpg

融合了兩個(gè)level的匹配后比普通方法的R@1要好上4-6個(gè)點(diǎn),提升很明顯。

預(yù)訓(xùn)練+遷移

有監(jiān)督、領(lǐng)域內(nèi)的語料總是有限的,目前很多任務(wù)都開始轉(zhuǎn)向預(yù)訓(xùn)練+遷移的范式。

Skip-Thought

題目:Skip-Thought Vectors

論文:https://arxiv.org/pdf/1506.06726.pdf

代碼:https://github.com/ryankiros/skip-thoughts

多倫多大學(xué)的NIPS2015論文Skip-Thought提出了一種無監(jiān)督句向量訓(xùn)練方法,參考wrod2vec,一句話與它的上下文也是存在關(guān)聯(lián)的,因此我們可以用一個(gè)句子的編碼去預(yù)測它的上下句:

764002be-8e8f-11eb-8b86-12bb97331649.jpg

Skip-Thought用GRU作為編碼器,條件GRU作為解碼器,預(yù)測時(shí)候只用編碼器就可以得到句子表示。

但這種方法訓(xùn)出的decoder不用比較浪費(fèi),后續(xù)也有學(xué)者用同樣的思想改成了判別任務(wù),比如Quick-Thought對句子分別編碼,過分類器選擇上下文,又或者BERT中的NSP,或者ALBERT的SOP。

FastSent

題目:Learning Distributed Representations of Sentences from Unlabelled Data

論文:https://www.aclweb.org/anthology/N16-1162.pdf

代碼:https://github.com/fh295/SentenceRepresentation/tree/master/FastSent

2016年的FastSent主要對Skip-Thought的速度進(jìn)行了改進(jìn),其實(shí)就是用詞袋模型去替換RNN編碼,再用中間句子的表示去預(yù)測上下文的詞。同時(shí)也提出了一個(gè)FastSent+AE變體,預(yù)測目標(biāo)也加上了自身的詞。

最終效果在無監(jiān)督任務(wù)上好于Skip-Thought,但有監(jiān)督任務(wù)上還是略遜色。

InferSent

題目:Supervised Learning of Universal Sentence Representations from Natural Language Inference Data

論文:https://www.aclweb.org/anthology/D17-1070.pdf

代碼:https://github.com/facebookresearch/InferSent

前幾篇可遷移的encoder都是無監(jiān)督的,因?yàn)閷W(xué)者們一直沒有發(fā)現(xiàn)更通用的數(shù)據(jù),直到InferSent。

EMNLP2017中Facebook提出了InferSent,文中使用NLI數(shù)據(jù)集來預(yù)訓(xùn)練雙塔結(jié)構(gòu),超越了之前眾多無監(jiān)督方法。該文章用了很簡單的雙塔結(jié)構(gòu),但在計(jì)算loss時(shí)先對兩個(gè)向量用了多種方式融合,再過分類器。同時(shí)也提出了多個(gè)基于RNN、CNN的編碼器,最后實(shí)驗(yàn)發(fā)現(xiàn)BiLSTM+Max效果最好,在評估的10個(gè)任務(wù)中有9個(gè)達(dá)到了SOTA。

76693f08-8e8f-11eb-8b86-12bb97331649.jpg

InferSent提出的結(jié)構(gòu)到現(xiàn)在還用很多同學(xué)在用,包括后文的Sentence-BERT(19年的SOTA)也只是換了個(gè)編碼器而已。同時(shí)用NLI來做預(yù)訓(xùn)練這個(gè)點(diǎn)也很重要,優(yōu)質(zhì)語料對模型提示有很大幫助。

后續(xù)也有模型進(jìn)行了小改進(jìn),比如2017年的SSE,使用3層堆疊BiLSTM+Shortcut,效果比InferSent好一些。

GenSen

題目:Learning General Purpose Distributed Sentence Representations via Large Scale Multi-task Learning

論文:https://arxiv.org/abs/1804.00079

代碼:https://github.com/Maluuba/gensen

同樣是提升可遷移性,微軟在ICLR2018上提出了GenSen,使用GRU編碼,將encoder下游接上4種不同的任務(wù)(預(yù)測上下文、翻譯、NLI、句法分析),但只在6/10個(gè)任務(wù)上超越了之前的模型,個(gè)別情況下增加新的任務(wù)還會(huì)使效果下降。

這種多任務(wù)的思想后續(xù)也被用在其他模型上,比如MT-DNN(狗頭。

USE

題目:Universal Sentence Encoder, Learning Semantic Textual Similarity from Conversations

論文:https://arxiv.org/pdf/1803.11175v1.pdf, https://arxiv.org/pdf/1804.07754.pdf

谷歌在ACL2018提出了USE模型,這也是引用量很高的一篇文章(但寫的不是很清楚,推薦讀第二篇),主要改進(jìn)如下:

提出了用Transformer和平均池化+MLP作為encoder,分別適用不同的場景

爬取了大量reddit的問答數(shù)據(jù),用于無監(jiān)督Q-A訓(xùn)練,因?yàn)閝uery和answer的表示空間不一樣,結(jié)構(gòu)上給answer多加一層DNN。并且在問答任務(wù)上使用batch negative策略,也就是除了對應(yīng)的正確答案外batch內(nèi)剩下的樣本都作為負(fù)例,用softmax計(jì)算P(A|Q)的概率,跟現(xiàn)在對比學(xué)習(xí)的loss一樣。

多任務(wù),在無監(jiān)督訓(xùn)練Q-A的同時(shí)也用SNLI進(jìn)行有監(jiān)督訓(xùn)練

76a88fb4-8e8f-11eb-8b86-12bb97331649.jpg

這樣訓(xùn)練出的模型比InferSent高3-5個(gè)點(diǎn),效果很好?,F(xiàn)在這個(gè)模型也在一直更新,可以在TFhub上使用,不僅速度快,效果也沒比BERT系差太多。

Sentence-BERT

題目:Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks

論文:https://arxiv.org/pdf/1908.10084

代碼:https://github.com/UKPLab/sentence-transformers

EMNLP2019的Sentence-BERT是目前最常用的BERT式雙塔模型,一是效果真的好,二是作者的開源工具做的很方便,用的人越來越多。結(jié)果其實(shí)就是把InferSent改成BERT編碼,訓(xùn)練語料也不變,做離線任務(wù)可以直接用起來。

BERT-flow

題目:On the Sentence Embeddings from Pre-trained Language Models

論文:https://arxiv.org/pdf/2011.05864.pdf

代碼:https://github.com/bohanli/BERT-flow

字節(jié)在EMNLP2020提出了BERT-flow,主要是基于Sentence-BERT做改動(dòng),因?yàn)橹暗念A(yù)訓(xùn)練+遷移都是使用有監(jiān)督數(shù)據(jù),而作者基于對原生BERT表示的分析發(fā)現(xiàn),那些表示在空間的分布很不均勻,于是使用flow-based生成模型將它們映射到高斯分布的均勻空間,比之前的Sentence-BERT提升了4個(gè)點(diǎn)之多。

76d526be-8e8f-11eb-8b86-12bb97331649.jpg

但這個(gè)模型的缺點(diǎn)是又加了一層機(jī)制,在預(yù)測時(shí)候會(huì)降低速度,同時(shí)在知乎上看到個(gè)別同學(xué)在自己任務(wù)上的試用反饋也不太好。不過我倒是驗(yàn)證了SentEval上有監(jiān)督的效果(論文只給了無監(jiān)督的),效果跟Sentence-BERT差不多。

Cross-Thought

題目:Cross-Thought for Sentence Encoder Pre-training

論文:https://arxiv.org/abs/2010.03652

代碼:https://github.com/shuohangwang/Cross-Thought

微軟在EMNLP2020提出了Cross-Thought,先用transformer對每個(gè)句子編碼,再取多個(gè)CLS(紅點(diǎn)部分)作為句子表示再進(jìn)行attention,得到一個(gè)整體的上下文表示,再回頭去預(yù)測每個(gè)句子被mask的token。相比起NSP來說,該任務(wù)的解空間更豐富,相比單純的BERT表示提升明顯,在QA任務(wù)上更是提了幾十個(gè)點(diǎn)。

770c2240-8e8f-11eb-8b86-12bb97331649.jpg

對比學(xué)習(xí)

對比學(xué)習(xí)是20年圖像領(lǐng)域火熱的表示預(yù)訓(xùn)練方法,在訓(xùn)練時(shí)會(huì)給輸入A生成一個(gè)數(shù)據(jù)增強(qiáng)版本B,經(jīng)過編碼器對A和B編碼后,如果兩個(gè)表示還是最接近的(batch內(nèi)分類),就說明這個(gè)編碼器抓住了用于區(qū)分A與其他樣本的本質(zhì)特征。對比學(xué)習(xí)目前在NLP領(lǐng)域還沒開始大放異彩,從20年下半年的一些新論文來看,在預(yù)訓(xùn)練過程、精調(diào)中加入對比損失都會(huì)輕微提升模型效果并增強(qiáng)魯棒性、小樣本場景的表現(xiàn)。相信用對比做出的優(yōu)秀文本表示不久就會(huì)出現(xiàn)。

?。?!我是朋克風(fēng)分割線?。?!

上文講了眾多雙塔模型,其主要的重點(diǎn)都在編碼器的優(yōu)化,對速度要求高的召回場景可以用BOW+MLP、CNN,精度要求高的排序場景可以用LSTM、Transformer。同時(shí)兩個(gè)向量的融合方法以及l(fā)oss也都可以優(yōu)化,比如做一些輕微的交互、像Deformer一樣前面雙塔接后面的多層交互,或者根據(jù)需要選擇pointwise、pairwise(排序場景)損失。

但真要想做句間關(guān)系SOTA的話,比如刷榜,光靠雙塔模型還是不行的,它有兩個(gè)問題比較大:

位置信息。如果用BOW的話“我很不開心”和“我不很開心”兩句的意思就變成一樣了,雖然用RNN、BERT引入位置編碼可以減緩一些,但不去讓兩個(gè)句子相互比較的話對于最后的分類層還是很難的

細(xì)粒度語義。比如“我開心”和“我不開心”這兩句話只有一個(gè)字的區(qū)別,但BOW模型很可能給出較高的相似度,交互式模型則可以稍有緩解

交互式匹配

比起雙塔只能在encoder上下功夫,交互式模型的套路就多多了,其核心思想是將兩個(gè)句子逐個(gè)詞比較。比如判斷“進(jìn)擊的巨人”和“進(jìn)擊的矮子”語義是否相同時(shí),前三個(gè)字在兩句話中都能找到,而第二句里沒找到跟“巨人”接近的,那分?jǐn)?shù)就會(huì)被降低一些。因此得讓兩個(gè)句子有interaction,一般用attention解決,因?yàn)闆]那么在意速度了,在交互前后都可以加encoder,再讓向量拼接、做差、點(diǎn)積。。。不說了,請開始讓它們表演。

DecAtt

題目:A Decomposable Attention Model for Natural Language Inference

論文:https://arxiv.org/pdf/1606.01933.pdf

Google在EMNLP2016提出了輕量級的交互模型DecAtt,作者的出發(fā)點(diǎn)是讓句子中的各個(gè)元素相互對比,找出詞級別的同義和反義。分為三步計(jì)算:

Attend:將兩個(gè)句子中每對次 相互attention,加權(quán)后得到對齊的

Compare:將 分別拼接,過一層FFN得到

Aggregate:分別將第二步得到的表示求和得到 ,拼接起來進(jìn)行分類

77865768-8e8f-11eb-8b86-12bb97331649.jpg

比較難懂的主要是第二步,作者的解釋是經(jīng)過第一步attend后可以將問題拆解為子問題,再通過每個(gè)詞向量的compare解決。

這個(gè)模型的缺點(diǎn)是最后一步求句向量時(shí)用了求和操作,如果序列過長的話數(shù)值會(huì)較大,造成梯度大,需要裁剪。但計(jì)算還是很輕量的,從結(jié)果來看跟LSTM差不多。

MatchPyramid

題目:Text Matching as Image Recognition

論文:https://arxiv.org/pdf/1602.06359.pdf

代碼:https://github.com/pl8787/MatchPyramid-TensorFlow

計(jì)算所在2016AAAI發(fā)表的MatchPyramid主要受圖像處理的啟發(fā),先對詞進(jìn)行交互得到Matching矩陣,然后通過多層2D卷積抽取更高維度的特征,最后得到表征用MLP分類。作者憑借此模型在2017年的Quora Question Pairs比賽上拿到了全球第四。

77d3a842-8e8f-11eb-8b86-12bb97331649.jpg

相比上文的DecAtt,MatchPyramid通過CNN捕獲到了ngram特征。從結(jié)果看比DSSM等模型高出了3、5個(gè)點(diǎn)。

PWIM

題目:Pairwise Word Interaction Modeling with Deep Neural Networks for Semantic Similarity Measurement

論文:https://www.aclweb.org/anthology/N16-1108.pdf

代碼:https://github.com/lanwuwei/Subword-PWIM

ACL2016的PWIM模型主打細(xì)粒度交互,模型非常的深,分為以下四個(gè)計(jì)算步驟:

Context Modeling:用BiLSTM對輸入編碼

Pairwise Word Interaction Modeling:作者定義了一個(gè)對比向量的函數(shù)coU(包含cosine、點(diǎn)積、歐式距離),對兩句話的詞進(jìn)行兩兩比較,總共計(jì)算了前向向量、反向向量、前后向拼接、前后向相加四種表示的coU,作者將輸出稱為simCube

Similarity Focus Layer:提出了一個(gè)算法,根據(jù)simCube的分?jǐn)?shù)排序,計(jì)算出一個(gè)mask矩陣,其中重要元素的權(quán)重是1,非重要為0.1。作者認(rèn)為如果句子A中的某個(gè)詞在句子B中也找到了,那這就是一個(gè)衡量兩者相似度的重要指標(biāo)。最終mask和simCube相乘得到focusCube

Deep ConvNet:作者把前面產(chǎn)出的三維矩陣看作圖像,用19層卷積神經(jīng)網(wǎng)絡(luò)的到最后的表征,再過softmax分類

7834bd44-8e8f-11eb-8b86-12bb97331649.jpg

這篇文章真的是花式計(jì)算,雖然從結(jié)果來看超過了雙層BiLSTM 2、3個(gè)點(diǎn),但這計(jì)算復(fù)雜度讓人難以承受。在后文也會(huì)被ESIM超越,所以就別用了,當(dāng)做多學(xué)習(xí)一些思想吧~

ESIM

題目:Enhanced LSTM for Natural Language Inference

論文:https://www.aclweb.org/anthology/P17-1152.pdf

代碼:https://github.com/coetaur0/ESIM

ACL2017中的ESIM也是效果很好的模型,基于DecAtt改動(dòng),在兩句話交互融合后又加了一層BiLSTM,將效果提升了1-2個(gè)點(diǎn)。同時(shí)也嘗試使用句法樹進(jìn)一步提升效果。它的計(jì)算過程有一下四步:

用BiLSTM對embedding編碼,得到表示

將兩句話的BiLSTM輸出進(jìn)行attention,得到融合的句子表示

將 拼接作為新表示,用BiLSTM進(jìn)行推理

池化后過進(jìn)行最終分類

788972b2-8e8f-11eb-8b86-12bb97331649.jpg

DIIN

題目:Natural Language Inference over Interaction Space

論文:https://arxiv.org/pdf/1709.04348.pdf

代碼:https://github.com/YerevaNN/DIIN-in-Keras

ICLR2018的DIIN看起來像PWIM一樣花式,比ESIM高出5、6個(gè)點(diǎn)。主要有以下改動(dòng):

在embedding層除了使用詞向量,還使用了字向量、詞性特征和英文詞根的完全匹配特征

使用Self-Attention編碼

78e548e4-8e8f-11eb-8b86-12bb97331649.jpg

HCAN

題目:Bridging the Gap Between Relevance Matching and Semantic Matching for Short Text Similarity Modeling

論文:https://cs.uwaterloo.ca/~jimmylin/publications/Rao_etal_EMNLP2019.pdf

代碼:https://github.com/jinfengr/hcan

HCAN是Facebook在EMNLP2019提出的模型,雖然比上文的ESIM、PWIM等模型高上4+個(gè)點(diǎn),但還是被BERT甩了很遠(yuǎn)。不過這個(gè)模型的核心也不只是做語義匹配,而是同時(shí)做檢索相關(guān)性(Relevance Matching),也就是搜索中query-doc的匹配。

模型計(jì)算如下:

Encoding層作者提出了三種方法,堆疊的CNN作為Deep Encoder,不同尺寸卷積核作為Wide Encoder,BiLSTM作為Contextual Encoder編碼更長距離的上下文

先把兩句話交互得到attention score矩陣,之后對于query中每個(gè)詞,求得doc中最相似的詞的分?jǐn)?shù),作為向量Max(S),按照同樣的方法求出Mean(S),長度都為|Q|,再分別乘上query中每個(gè)詞的tfidf統(tǒng)計(jì),得到相關(guān)性匹配向量

用加性attention對query和doc進(jìn)行交互,得到新的表示,再花式拼接過BiLSTM,得到語義匹配向量

將 拼接起來過MLP,最后分類

通過實(shí)驗(yàn)結(jié)果來看,Deep Encoder的表現(xiàn)是最好的,在7/8個(gè)評估上都超過另外兩個(gè)。

79eddd78-8e8f-11eb-8b86-12bb97331649.jpg

RE2

題目:Simple and Effective Text Matching with Richer Alignment Features

論文:https://www.aclweb.org/anthology/P19-1465.pdf

代碼:https://github.com/hitvoice/RE2

RE2是阿里在ACL2019提出的模型,也是很不錯(cuò)的一個(gè)工作,優(yōu)點(diǎn)是模型輕量且效果好。上文雖然很多模型都用到了交互,但只交互1、2次,而RE2則像transformer一樣把兩句話交互了多次。

7a042baa-8e8f-11eb-8b86-12bb97331649.jpg

計(jì)算邏輯是(圖中只展示了雙塔的一半):

Encoding:對輸入進(jìn)行embedding得到,拼接上之前的輸出,用CNN編碼

Alignment:把encoder的輸入輸出拼接起來,兩句話進(jìn)行attention

Fusion:將encoder的輸入輸出與attention的結(jié)果一起融合,得到的表示進(jìn)入下一循環(huán)或max pooling輸出句子表示

將兩個(gè)句子表示各種拼接后進(jìn)行分類

7a6b0578-8e8f-11eb-8b86-12bb97331649.jpg

這個(gè)模型除了多次交互之外,還有個(gè)點(diǎn)是一直都把最初的embedding拼接上,從消融實(shí)驗(yàn)看可以提升1-6個(gè)點(diǎn)。

!?。∥沂桥罂孙L(fēng)分割線?。。?/p>

一口氣講了7個(gè)交互式匹配模型,感覺自己都不會(huì)愛了。其實(shí)大部分都是為了解之前的思想,因?yàn)楝F(xiàn)在無腦用BERT就夠了。

同時(shí)老司機(jī)們也很清楚,模型只是工具,數(shù)據(jù)才是天花板,數(shù)據(jù)質(zhì)量不好/數(shù)量不夠,模型再花哨也沒用。所以這里分享兩個(gè)數(shù)據(jù)洗刷刷經(jīng)驗(yàn):

負(fù)例的構(gòu)造。都說句間關(guān)系任務(wù)負(fù)例的構(gòu)造是很重要的,確實(shí)如此。但構(gòu)造前一定要把正、負(fù)界定清楚,明確這個(gè)任務(wù)的粒度有多細(xì)。比如“我很不開心”和“我不太開心”都是不開心,但程度不一樣,在自己的任務(wù)中到底是算正例還是負(fù)例呢?這個(gè)界定的越清楚、標(biāo)注人員培訓(xùn)越到位,數(shù)據(jù)噪聲也就越少。之后才是盡量構(gòu)造有難度的負(fù)例,比如用BOW召回一些再人工標(biāo)注,讓樣本們越來越逼近分類邊界

數(shù)據(jù)增強(qiáng)。交互式模型雖然準(zhǔn)確,但他們有個(gè)缺點(diǎn)是容易過擬合,因?yàn)閷Α敖换ァ笨吹锰亓?。比如一對正例里只有一兩個(gè)字一樣,模型可能就會(huì)認(rèn)為這兩個(gè)字很重要,有些overlap超低的文本對也會(huì)給出高得分。這時(shí)候就要對正例進(jìn)行清洗,看看特殊情況是否存在,再嘗試用增刪改的方法加一些負(fù)例,避免過擬合這種極端正例。另外BERT這種交互式模型是不對稱的,如果做paraphrase任務(wù)也可以鏡面構(gòu)造些新正負(fù)例。

總結(jié)

可能是文本匹配方面看得比較多吧,終于把我收藏的模型都扒拉出來了,直接像文本分類一樣再給大家提供一個(gè)選型方案吧:

7ab0cff4-8e8f-11eb-8b86-12bb97331649.jpg

原文標(biāo)題:【代碼&技巧】21個(gè)經(jīng)典深度學(xué)習(xí)句間關(guān)系模型

文章出處:【微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5560

    瀏覽量

    122762
  • nlp
    nlp
    +關(guān)注

    關(guān)注

    1

    文章

    490

    瀏覽量

    22604

原文標(biāo)題:【代碼&技巧】21個(gè)經(jīng)典深度學(xué)習(xí)句間關(guān)系模型

文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    在OpenVINO?工具套件的深度學(xué)習(xí)工作臺(tái)中無法導(dǎo)出INT8模型怎么解決?

    無法在 OpenVINO? 工具套件的深度學(xué)習(xí) (DL) 工作臺(tái)中導(dǎo)出 INT8 模型
    發(fā)表于 03-06 07:54

    BP神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)關(guān)系

    BP神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)之間存在著密切的關(guān)系,以下是對它們之間關(guān)系的介紹: 一、BP神經(jīng)網(wǎng)絡(luò)的基本概念 BP神經(jīng)網(wǎng)絡(luò),即反向傳播神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural N
    的頭像 發(fā)表于 02-12 15:15 ?846次閱讀

    NPU與機(jī)器學(xué)習(xí)算法的關(guān)系

    在人工智能領(lǐng)域,機(jī)器學(xué)習(xí)算法是實(shí)現(xiàn)智能系統(tǒng)的核心。隨著數(shù)據(jù)量的激增和算法復(fù)雜度的提升,對計(jì)算資源的需求也在不斷增長。NPU作為一種專門為深度學(xué)習(xí)等機(jī)器學(xué)習(xí)任務(wù)設(shè)計(jì)的處理器,其與機(jī)器
    的頭像 發(fā)表于 11-15 09:19 ?1191次閱讀

    深度學(xué)習(xí)模型的魯棒性優(yōu)化

    深度學(xué)習(xí)模型的魯棒性優(yōu)化是一個(gè)復(fù)雜但至關(guān)重要的任務(wù),它涉及多個(gè)方面的技術(shù)和策略。以下是一些關(guān)鍵的優(yōu)化方法: 一、數(shù)據(jù)預(yù)處理與增強(qiáng) 數(shù)據(jù)清洗 :去除數(shù)據(jù)中的噪聲和異常值,這是提高
    的頭像 發(fā)表于 11-11 10:25 ?1172次閱讀

    GPU深度學(xué)習(xí)應(yīng)用案例

    能力,可以顯著提高圖像識(shí)別模型的訓(xùn)練速度和準(zhǔn)確性。例如,在人臉識(shí)別、自動(dòng)駕駛等領(lǐng)域,GPU被廣泛應(yīng)用于加速深度學(xué)習(xí)模型的訓(xùn)練和推理過程。 二、自然語言處理 自然語言處理(NLP)是
    的頭像 發(fā)表于 10-27 11:13 ?1328次閱讀

    FPGA加速深度學(xué)習(xí)模型的案例

    FPGA(現(xiàn)場可編程門陣列)加速深度學(xué)習(xí)模型是當(dāng)前硬件加速領(lǐng)域的一個(gè)熱門研究方向。以下是一些FPGA加速深度
    的頭像 發(fā)表于 10-25 09:22 ?1196次閱讀

    AI大模型深度學(xué)習(xí)關(guān)系

    AI大模型深度學(xué)習(xí)之間存在著密不可分的關(guān)系,它們互為促進(jìn),相輔相成。以下是對兩者關(guān)系的介紹: 一、深度
    的頭像 發(fā)表于 10-23 15:25 ?2865次閱讀

    FPGA做深度學(xué)習(xí)能走多遠(yuǎn)?

    ,共同進(jìn)步。 歡迎加入FPGA技術(shù)微信交流群14群! 交流問題(一) Q:FPGA做深度學(xué)習(xí)能走多遠(yuǎn)?現(xiàn)在用FPGA做深度學(xué)習(xí)加速成為一個(gè)
    發(fā)表于 09-27 20:53

    【《大語言模型應(yīng)用指南》閱讀體驗(yàn)】+ 基礎(chǔ)知識(shí)學(xué)習(xí)

    今天來學(xué)習(xí)大語言模型在自然語言理解方面的原理以及問答回復(fù)實(shí)現(xiàn)。 主要是基于深度學(xué)習(xí)和自然語言處理技術(shù)。 大語言模型涉及以下幾個(gè)過程: 數(shù)據(jù)收
    發(fā)表于 08-02 11:03

    深度學(xué)習(xí)模型有哪些應(yīng)用場景

    深度學(xué)習(xí)模型作為人工智能領(lǐng)域的重要分支,已經(jīng)在多個(gè)應(yīng)用場景中展現(xiàn)出其巨大的潛力和價(jià)值。這些應(yīng)用不僅改變了我們的日常生活,還推動(dòng)了科技進(jìn)步和產(chǎn)業(yè)升級。以下將詳細(xì)探討深度
    的頭像 發(fā)表于 07-16 18:25 ?4056次閱讀

    ai大模型和ai框架的關(guān)系是什么

    AI大模型和AI框架是人工智能領(lǐng)域中兩個(gè)重要的概念,它們之間的關(guān)系密切且復(fù)雜。 AI大模型的定義和特點(diǎn) AI大模型是指具有大量參數(shù)的
    的頭像 發(fā)表于 07-16 10:07 ?8.8w次閱讀

    深度神經(jīng)網(wǎng)絡(luò)模型量化的基本方法

    深度神經(jīng)網(wǎng)絡(luò)模型量化是深度學(xué)習(xí)領(lǐng)域中的一種重要優(yōu)化技術(shù),旨在通過減少模型參數(shù)的精度(即從高精度浮點(diǎn)數(shù)如32位浮點(diǎn)數(shù)FP32降低到低精度整數(shù)如
    的頭像 發(fā)表于 07-15 11:26 ?1317次閱讀

    深度學(xué)習(xí)模型量化方法

    深度學(xué)習(xí)模型量化是一種重要的模型輕量化技術(shù),旨在通過減少網(wǎng)絡(luò)參數(shù)的比特寬度來減小模型大小和加速推理過程,同時(shí)盡量保持
    的頭像 發(fā)表于 07-15 11:01 ?1093次閱讀
    <b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>模型</b>量化方法

    利用Matlab函數(shù)實(shí)現(xiàn)深度學(xué)習(xí)算法

    在Matlab中實(shí)現(xiàn)深度學(xué)習(xí)算法是一個(gè)復(fù)雜但強(qiáng)大的過程,可以應(yīng)用于各種領(lǐng)域,如圖像識(shí)別、自然語言處理、時(shí)間序列預(yù)測等。這里,我將概述一個(gè)基本的流程,包括環(huán)境設(shè)置、數(shù)據(jù)準(zhǔn)備、
    的頭像 發(fā)表于 07-14 14:21 ?3617次閱讀

    基于Python的深度學(xué)習(xí)人臉識(shí)別方法

    基于Python的深度學(xué)習(xí)人臉識(shí)別方法是一個(gè)涉及多個(gè)技術(shù)領(lǐng)域的復(fù)雜話題,包括計(jì)算機(jī)視覺、深度學(xué)習(xí)、以及圖像處理等。在這里,我將概述一
    的頭像 發(fā)表于 07-14 11:52 ?1683次閱讀