本文旨在幫大家快速了解文本語義相似度領(lǐng)域的研究脈絡(luò)和進(jìn)展,其中包含了本人總結(jié)的文本語義相似度任務(wù)的處理步驟,文本相似度模型發(fā)展歷程,相關(guān)數(shù)據(jù)集,以及重要論文分享。
文本相似度任務(wù)處理步驟
通過該領(lǐng)域的大量論文閱讀,我認(rèn)為處理文本相似度任務(wù)時(shí)可以分為一下三個(gè)步驟:
預(yù)處理:如數(shù)據(jù)清洗等。此步驟旨在對(duì)文本做一些規(guī)范化操作,篩選有用特征,去除噪音。
文本表示:當(dāng)數(shù)據(jù)被預(yù)處理完成后,就可以送入模型了。在文本相似度任務(wù)中,需要有一個(gè)模塊用于對(duì)文本的向量化表示,從而為下一步相似度比較做準(zhǔn)備。這個(gè)部分一般會(huì)選用一些 backbone 模型,如 LSTM,BERT 等。
學(xué)習(xí)范式的選擇:這個(gè)步驟也是文本相似度任務(wù)中最重要的模塊,同時(shí)也是區(qū)別于 NLP 領(lǐng)域其他任務(wù)的一個(gè)模塊。其主要原因在于相似度是一個(gè)比較的過程,因此我們可以選用各種各樣的比較的方式來達(dá)成目標(biāo)??晒┻x擇的學(xué)習(xí)方式有:孿生網(wǎng)絡(luò)模型,交互網(wǎng)絡(luò)模型,對(duì)比學(xué)習(xí)模型等。
文本相似度模型發(fā)展歷程
從傳統(tǒng)的無監(jiān)督相似度方法,到孿生模型,交互式模型,BERT,以及基于BERT的一些改進(jìn)工作,如下圖:
總體來說,在 BERT 出現(xiàn)之前,文本相似度任務(wù)可以說是一個(gè)百花齊放的過程。大家通過各種方式來做相似度比較的都有。從 BERT 出現(xiàn)之后,由于 BERT 出色的性能,之后的工作主要是基于 BERT 的改進(jìn)。在這個(gè)階段,大家所采用的數(shù)據(jù)集,評(píng)價(jià)指標(biāo)等也逐漸進(jìn)行了統(tǒng)一。
數(shù)據(jù)集
在 BERT 以后,大家在文本相似度任務(wù)上逐漸統(tǒng)一了數(shù)據(jù)集的選擇,分別為 STS12,STS13,STS14,STS15,STS16,STS-B,SICK-R 七個(gè)數(shù)據(jù)集。STS12-16 分別為 SemEval 比賽 2012~2016 年的數(shù)據(jù)集。此外,STS-B 和 SICK-R 也是 SemEval 比賽數(shù)據(jù)集。在這些數(shù)據(jù)集中,每一個(gè)文本對(duì)都有一個(gè) 0~5 分的人工打標(biāo)相似度分?jǐn)?shù)(也稱為 gold label),代表這個(gè)文本對(duì)的相似程度。
評(píng)價(jià)指標(biāo)
首先,對(duì)于每一個(gè)文本對(duì),采用余弦相似度對(duì)其打分。打分完成后,采用所有余弦相似度分?jǐn)?shù)和所有 gold label 計(jì)算 Spearman Correlation。
其中,Pearson Correlation 與 Spearman Correlation 都是用來計(jì)算兩個(gè)分布之間相關(guān)程度的指標(biāo)。Pearson Correlation 計(jì)算的是兩個(gè)變量是否線性相關(guān),而 Spearman Correlation 關(guān)注的是兩個(gè)序列的單調(diào)性是否一致。并且論文《Task-Oriented Intrinsic Evaluation of Semantic Textual Similarity》證明,采用 Spearman Correlation 更適合評(píng)判語義相似度任務(wù)。Pearson Correlation 與 Spearman Correlation 的公式如下:
論文分享
Siamese Recurrent Architectures for Learning Sentence Similarity, AAAI 2016
https://www.aaai.org/ocs/index.php/AAAI/AAAI16/paper/download/12195/12023
Siamese LSTM 是一個(gè)經(jīng)典的孿生網(wǎng)絡(luò)模型,它將需要對(duì)比的兩句話分別通過不同的 LSTM 進(jìn)行編碼,并采用兩個(gè) LSTM 最后一個(gè)時(shí)間步的輸出來計(jì)算曼哈頓距離,并通過 MSE loss 進(jìn)行反向傳導(dǎo)。
Bilateral Multi-Perspective Matching for Natural Language Sentences, IJCAI 2017
https://arxiv.org/abs/1702.03814
BiMPM 是一個(gè)經(jīng)典的交互式模型,它將兩句話用不同的 Bi-LSTM 模型分別編碼,并通過注意力的方式使得當(dāng)前句子的每一個(gè)詞都和另一個(gè)句子中的每一個(gè)詞建立交互關(guān)系(左右句子是對(duì)稱的過程),從而學(xué)習(xí)到更深層次的匹配知識(shí)。在交互之后,再通過 Bi-LSTM 模型分別編碼,并最終輸出。
對(duì)于交互的過程,作者設(shè)計(jì)了四種交互方式,分別為:
句子 A 中每個(gè)詞與句子 B 的最后一個(gè)詞進(jìn)行交互
句子 A 中每個(gè)詞與句子 B 的每個(gè)詞進(jìn)行交互,并求 element-wise maximum
通過句子 A 中的詞篩選句子 B 中的每一個(gè)詞,并將句子 B 的詞向量加權(quán)求和,最終于 A 詞對(duì)比
與 c 幾乎一致,只不過將加權(quán)求和操作變成 element-wise maximum
具體的交互形式是由加權(quán)的余弦相似度方式完成。
其中,Wk 是參數(shù)矩陣,可以理解為 attention 的 query 或者 key,v1 和 v2 分別是要進(jìn)行交互的兩個(gè)詞,這樣計(jì)算 l 次余弦相似度,就會(huì)得到 m 向量(一個(gè) l 維向量)。
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
https://arxiv.org/abs/1810.04805
BERT 可以認(rèn)為是語義相似度任務(wù)的分水嶺。BERT 論文中對(duì) STS-B 數(shù)據(jù)集進(jìn)行有監(jiān)督訓(xùn)練,最終達(dá)到了 85.8 的 Spearman Correlation 值。這個(gè)分?jǐn)?shù)相較于后續(xù)絕大部分的改進(jìn)工作都要高,但 BERT 的缺點(diǎn)也很明顯。對(duì)于語義相似度任務(wù)來說:
在有監(jiān)督范式下,BERT 需要將兩個(gè)句子合并成一個(gè)句子再對(duì)其編碼,如果需要求很多文本兩兩之間的相似度,BERT 則需要將其排列組合后送入模型,這極大的增加了模型的計(jì)算量。
在無監(jiān)督范式下,BERT 句向量中攜帶的語義相似度信息較少。從下圖可以看出,無論是采用 CLS 向量還是詞向量平均的方式,都還比不過通過 GloVe 訓(xùn)練的詞向量求平均的方式要效果好。
基于以上痛點(diǎn),涌現(xiàn)出一批基于 BERT 改進(jìn)的優(yōu)秀工作。
Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks, EMNLP 2019
https://arxiv.org/abs/1908.10084
Sentence-BERT 是一篇采用孿生 BERT 架構(gòu)的工作。Sentence-BERT 作者指出,如果想用 BERT 求出 10000 個(gè)句子之間兩兩的相似度,排列組合的方式在 V100 GPU 上測(cè)試需要花費(fèi) 65 小時(shí);而如果先求出 10000 個(gè)句子,再計(jì)算余弦相似度矩陣,則只需要花費(fèi) 5 秒左右。因此,作者提出了通過孿生網(wǎng)絡(luò)架構(gòu)訓(xùn)練 BERT 句向量的方式。
Sentence-BERT 一共采用了三種 loss,也就是三種不同的方式訓(xùn)練孿生 BERT 架構(gòu),分別為 Cross-entropy loss,MSE loss 以及 Triple loss,模型圖如下:
On the Sentence Embeddings from Pre-trained Language Models, EMNLP 2020
https://arxiv.org/abs/2011.05864
BERT-flow 是一篇通過對(duì) BERT 句向量做后處理的工作。作者認(rèn)為,直接用 BERT 句向量來做相似度計(jì)算效果較差的原因并不是 BERT 句向量中不包含語義相似度信息,而是其中包含的相似度信息在余弦相似度等簡(jiǎn)單的指標(biāo)下無法很好的體現(xiàn)出來。
首先,作者認(rèn)為,無論是 Language Modelling 還是 Masked Language Modelling,其實(shí)都是在最大化給定的上下文與目標(biāo)詞的共現(xiàn)概率,也就是 Ct 和 Xt 的貢獻(xiàn)概率。Language Modelling 與 Masked Language Modelling 的目標(biāo)函數(shù)如下:
因此,如果兩句話預(yù)測(cè)出的 Xt 一致,那么兩句話的 Ct 向量很有可能也是相似的!考慮如下兩句話:
今天中午吃什么?
今天晚上吃什么?
通過這兩句話訓(xùn)練出的語言模型都通過上下文預(yù)測(cè)出了“吃“這個(gè)字,那說明這兩句話的句向量也很可能是相似的,具有相似的語義信息。
其次,作者通過觀察發(fā)現(xiàn),BERT 的句向量空間是各向異性的,且高頻詞距離原點(diǎn)較近,低頻詞距離較遠(yuǎn),且分布稀疏。因此 BERT 句向量無法體現(xiàn)出其中包含的相似度信息。
因此,作者認(rèn)為可以通過一個(gè)基于流的生成模型來對(duì) BERT 句向量空間進(jìn)行映射。具體來說,作者希望訓(xùn)練出一個(gè)標(biāo)準(zhǔn)的高斯分布,使得該分布中的點(diǎn)可以與 BERT 句向量中的點(diǎn)一一映射。由于該方法采用的映射方式是可逆的,因此就可以通過給定的 BERT 句向量去映射回標(biāo)準(zhǔn)高斯空間,然后再去做相似度計(jì)算。由于標(biāo)準(zhǔn)高斯空間是各向同性的,因此能夠?qū)⒕湎蛄恐械恼Z義相似度信息更好的展現(xiàn)出來。
SimCSE: Simple Contrastive Learning of Sentence Embeddings, EMNLP 2021
https://arxiv.org/abs/2104.08821
SimCSE 是一篇基于對(duì)比學(xué)習(xí)的語義相似度模型。首先,對(duì)比學(xué)習(xí)相較于文本對(duì)之間的匹配,可以在拉近正例的同時(shí),同時(shí)將其與更多負(fù)例之間的距離拉遠(yuǎn),從而訓(xùn)練出一個(gè)更加均勻的超球體向量空間。作為一類無監(jiān)督算法,對(duì)比學(xué)習(xí)中最重要的創(chuàng)新點(diǎn)之一是如何構(gòu)造正樣本對(duì),去學(xué)習(xí)到類別內(nèi)部的一些本質(zhì)特征。
SimCSE 采用的是一個(gè)極其樸素,性能卻又出奇的好的方法,那就是將一句話在訓(xùn)練的時(shí)候送入模型兩次,利用模型自身的 dropout 來生成兩個(gè)不同的 sentence embedding 作為正例進(jìn)行對(duì)比。模型圖如下:
ConSERT: A Contrastive Framework for Self-Supervised Sentence Representation Transfer, ACL 2021
https://arxiv.org/abs/2105.11741
ConSERT 同樣也是一篇基于對(duì)比學(xué)習(xí)的文本相似度工作。ConSERT 是采用多種數(shù)據(jù)增強(qiáng)的方式來構(gòu)造正例的。其中包括對(duì)抗攻擊,打亂文本中的詞順序,Cutoff以及 Dropout。這里需要注意的是,雖然 ConSERT 與 SimCSE 都采用了 Dropout,但 ConSERT 的數(shù)據(jù)增強(qiáng)操作只停留在 embedding layer,而 SimCSE 則是采用了 BERT 所有層中的 Dropout。此外,作者實(shí)驗(yàn)證明,在這四種數(shù)據(jù)增強(qiáng)方式中,Token Shuffling 和 Token Cutoff 是最有效的。
Exploiting Sentence Embedding for Medical Question Answering, AAAI 2018
https://arxiv.org/abs/1811.06156
注:由于本人工作中涉及的業(yè)務(wù)主要為智慧醫(yī)療,因此會(huì)有傾向的關(guān)注醫(yī)療人工智能領(lǐng)域的方法和模型。
MACSE 是一篇針對(duì)醫(yī)學(xué)文本的句向量表征工作,雖然其主要關(guān)注的是 QA 任務(wù),但他的句向量表征方式在文本相似度任務(wù)中同樣適用。
醫(yī)學(xué)文本區(qū)別于通用文本的一大特征就是包含復(fù)雜的多尺度信息,如下:
因此,我們就需要一個(gè)能夠關(guān)注到醫(yī)學(xué)文本多尺度信息的模型。
在本文中,通過多尺度的卷積操作,就可以有效的提取到文本中的多尺度信息,并且通過注意力機(jī)制對(duì)多尺度信息進(jìn)行加權(quán),從而有效的關(guān)注到特定文本中在特定尺度上存在的重要信息。
實(shí)驗(yàn)結(jié)果匯總
以下為眾多基于 BERT 改進(jìn)的模型在標(biāo)準(zhǔn)數(shù)據(jù)集上測(cè)試的結(jié)果,出自 SimCSE 論文:
可以看到,BERT-flow 相較于原生 BERT 提升了將近 10 個(gè)點(diǎn),而基于對(duì)比學(xué)習(xí)的工作又要比基于后處理的工作的效果好很多。此外需要注意的是,在這里 Sentence-BERT 被歸為了有監(jiān)督模型中。這是因?yàn)?Sentence-BERT 雖然沒有用到 STS 標(biāo)簽,但訓(xùn)練時(shí)用的是 NLI 數(shù)據(jù)集,也用到了 NLI 中人工打標(biāo)的標(biāo)簽,因此 SimCSE 作者將 Sentence-BERT 歸為了有監(jiān)督模型中。
好了,以上就是文本語義相似度領(lǐng)域的研究脈絡(luò)和進(jìn)展,希望能對(duì)大家有所幫助。當(dāng)然 2022 年也有不少優(yōu)秀的工作出現(xiàn),不過這一部分就留到以后吧!
審核編輯 :李倩
-
模型
+關(guān)注
關(guān)注
1文章
3073瀏覽量
48587 -
語義
+關(guān)注
關(guān)注
0文章
21瀏覽量
8653 -
文本
+關(guān)注
關(guān)注
0文章
118瀏覽量
17047
原文標(biāo)題:一文詳解文本語義相似度的研究脈絡(luò)和最新進(jìn)展
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論