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

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

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

自然語言任務(wù)方案思考:句子相似度和匹配

深度學(xué)習(xí)自然語言處理 ? 來源:深度學(xué)習(xí)自然語言處理 ? 作者:CS的陋室 ? 2021-01-13 09:33 ? 次閱讀

0 小系列初衷

自己接觸的項目大都是初創(chuàng),沒開始多久的項目,從0到1的不少,2020年快結(jié)束,感覺這個具有一定個人特色的技術(shù)經(jīng)驗可以在和大家分享一下。

計劃篇章:

(已完成)文本分類篇。針對NLP文本分類任務(wù)。

(已完成)序列標(biāo)注(NER)篇。針對命名實體識別、序列標(biāo)注任務(wù)。

文本匹配篇。針對語義相似度計算、向量匹配等問題。

人工特征學(xué)習(xí)篇。針對多特征的機(jī)器、深度學(xué)習(xí)方案。

開始我把這個標(biāo)題叫做語義匹配,后來感覺還是不能叫這個名字,應(yīng)該把問題放大為句子相似度和匹配問題。

1 語義匹配的場景

語義匹配的核心其實是評價兩個query之間的相似度,可以看看現(xiàn)在常用的場景:

搜索領(lǐng)域,語義向量召回是一個比較新潮的召回方式,靈活性更高,下游的精排部分也可以通過語義相似度來進(jìn)行排序。

智能客服,之前的阿里小蜜的文章也提過,對于長尾的結(jié)果,可以通過向量召回的方式來進(jìn)行處理。

對話領(lǐng)域,可以說是智能客服的眼神,閑聊類的,可以通過語義匹配完成閑聊的回復(fù),當(dāng)然多輪也有多輪的玩法。

可以看到,各種領(lǐng)域,其實語義匹配的舞臺非常大,了解這方面的方案對NLP技術(shù)棧的了解非常有用。

2 方法選型

2.1 文本層面的相似

最簡單的方法往往就是最淺層的方案,所以還是文本層面的相似,方法逐步升級是這樣的:

編輯距離,這應(yīng)該是最嚴(yán)格的一種相似了。

cqr,分子是句子1和句子2詞匯的交集詞匯量,分母是句子1和句子2的并集詞匯量。

加權(quán)的cqr,可以做一個簡單的詞權(quán)重,然后做加權(quán)的cqr。

BM25。傳統(tǒng)搜索的常用方法。

文本層面的方法,在搜索領(lǐng)域已經(jīng)非常成熟,BM25已經(jīng)具有很高的準(zhǔn)度,結(jié)合上游常用的一些改寫,其實已經(jīng)能夠達(dá)到很好的效果,這也是經(jīng)典搜索最常用的一套范式。

2.2 向量表征作召回

向量召回是當(dāng)前比較流行的一種新的搜索技術(shù),這里以來兩個關(guān)鍵技術(shù)點,向量索引和句子表征技術(shù)。

向量索引的是指就是一種向量最近鄰的搜索方案,最常用的場景就是KNN,而在我們的場景中,就是把句子表征成一個向量,構(gòu)建索引,新來一個句子,用同樣的放哪個還是構(gòu)建一個向量,就可以完成相似度召回,常用的構(gòu)建索引方式推薦兩種,這兩種都已經(jīng)有開源工具支持。

annoy,一種基于樹的構(gòu)造方法。

hnsw,一種基于圖的構(gòu)造方法,這應(yīng)該是目前我已知速度最快的方法了。

說完了向量索引,就要說向量表征了,只有足夠好的向量表征,上面說的向量召回,召回的東西才會足夠好,為什么我說好呢,就是因為這里涉及的好的維度多:

準(zhǔn)確率足夠高,召回的內(nèi)容真的是和句子足夠接近。

有比較強(qiáng)的泛化能力,這也是語義向量召回相比傳統(tǒng)搜索的相似召回最突出的優(yōu)勢,只要語義足夠接近,“查詢”和“查看”就可能匹配到,“冪冪”和“楊冪”也能打中,這樣能降低我們挖掘數(shù)據(jù)帶來的成本。

好的相似度匹配能識別關(guān)鍵詞,只需要模型端到端處理,不需要單獨抽關(guān)鍵詞。

那么,這個語義表征,一般都是什么方法呢,這里也是提幾個:

word2vector預(yù)訓(xùn)練。如果語料不足甚至沒有語料,我們其實可以用開源的預(yù)訓(xùn)練好的w2v詞向量作為基線,取均值就能拿到句向量。

如果有一些平行樣本,可以開始考慮用一些平行預(yù)料(sentence1,setence2,label)進(jìn)行finetuning,說白了就是兩個向量分別去詞向量后均值,最終用余弦或者歐氏距離計算相似度就行。

數(shù)據(jù)量足夠后,就可以開始在上面搭積木了,CNN、LSTM之類的都可以嘗試,當(dāng)然經(jīng)驗之談,self-attention可以嘗試。

數(shù)據(jù)量再多點,我們就可以上bert之類的大家伙了。

現(xiàn)在的語義相似度,更多是通過優(yōu)化交互特征來提升相似度計算的效果,但是在向量召回這里,由于目前只能支持簡單的相似度召回,兩個query只有在計算相似度的最后一步才能夠見面,因此query之間的交互特征是無法提取的,所以很多現(xiàn)在流行的方法是用不了的。

2.3 語義相似度

如果語義相似度要被用在后續(xù)的精排,無論是搜索、對話甚至是推薦,在經(jīng)歷初篩之后,我們往往有更多時間和經(jīng)歷來比對剩余的結(jié)果和用戶query之間的相似程度,此時我們就可以使用交互特征逐一匹配,完成最后的精排,這些方案往往在大量比賽中就有提到,以DSSM為基,升級很多方案,包括很多人知道的EISM等,當(dāng)然比賽的經(jīng)驗也告訴我們,模型本身還可以加入更多的文本特征來協(xié)助衡量語義相似度,因此在用語義相似度模型的同時,可以加入一些人工特征來協(xié)助優(yōu)化,這也是推薦系統(tǒng)的wide&deep中所提到的深淺層特征均用的思想。

這里給一篇螞蟻金服比賽的文章吧,大家可以根據(jù)這個思路去參考優(yōu)化:https://blog.csdn.net/u014732537/article/details/81038260

3 優(yōu)化手段

當(dāng)然,上面的方式是讓大家用最快的速度去完成一個demo或者說baseline,然后我們需要一系列的手段進(jìn)行優(yōu)化,在這里也給大家介紹一些有用的方案。

如果你的場景里需要一些英文,可以加入一些英文文本去finetuning,開放域的。

針對問答場景,由于用戶的問題都有明顯意圖,因此做一些詞權(quán)重、attention的操作有利于效果提升,包括提槽,當(dāng)然在淺層模型的情況下,詞的歸一化也有好處。

通過傳統(tǒng)的搜索,用ES召回之類而方式,可以召回很多文本接近但是語義遙遠(yuǎn)的case,通過人工標(biāo)注的樣本對效果的提升很有好處。

同樣是hard case挖掘,用自己的語義模型做召回,召回在閾值附近的case,做一下人工的復(fù)核,這樣做樣本也對效果提升有好處,這其實用的是主動學(xué)習(xí)的思想。

4 小結(jié)

做完搜索,后來又開始做向量表征和召回,感覺就很奇妙,能夠理解傳統(tǒng)搜索和相對新潮的向量表征召回之間的關(guān)系,這兩者之間的關(guān)系還是挺微妙地,互相借鑒的過程中能夠產(chǎn)生一些火花,例如向量檢索之前可以召回一些相似的、標(biāo)準(zhǔn)的query然后來檢索,這樣能大幅提升準(zhǔn)確率,也一定程度降低了對模型深度的要求。(隱約感覺是時候?qū)懸黄嘘P(guān)模型和規(guī)則特征之間關(guān)系的文章了?)

責(zé)任編輯:xj

原文標(biāo)題:任務(wù)方案思考:句子相似度和匹配

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

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

    關(guān)注

    0

    文章

    21

    瀏覽量

    8650
  • 自然語言處理
    +關(guān)注

    關(guān)注

    1

    文章

    585

    瀏覽量

    13418

原文標(biāo)題:任務(wù)方案思考:句子相似度和匹配

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

收藏 人收藏

    評論

    相關(guān)推薦

    圖像識別技術(shù)包括自然語言處理嗎

    圖像識別技術(shù)與自然語言處理是人工智能領(lǐng)域的兩個重要分支,它們在很多方面有著密切的聯(lián)系,但也存在一些區(qū)別。 一、圖像識別技術(shù)與自然語言處理的關(guān)系 1.1 圖像識別技術(shù)的定義 圖像識別技術(shù)是指利用
    的頭像 發(fā)表于 07-16 10:54 ?394次閱讀

    nlp自然語言處理基本概念及關(guān)鍵技術(shù)

    、問答系統(tǒng)、文本摘要等眾多領(lǐng)域有著廣泛的應(yīng)用。 1. NLP的基本概念 1.1 語言模型 語言模型是NLP的基礎(chǔ),它用于描述一個句子自然語言中出現(xiàn)的概率。
    的頭像 發(fā)表于 07-09 10:32 ?261次閱讀

    nlp自然語言處理的主要任務(wù)及技術(shù)方法

    自然語言處理(Natural Language Processing,簡稱NLP)是人工智能和語言學(xué)領(lǐng)域的一個分支,它研究如何讓計算機(jī)能夠理解、生成和處理人類語言。NLP技術(shù)在許多領(lǐng)域都有廣泛
    的頭像 發(fā)表于 07-09 10:26 ?406次閱讀

    自然語言處理技術(shù)有哪些

    自然語言處理(Natural Language Processing,簡稱NLP)是人工智能領(lǐng)域的一個分支,它致力于使計算機(jī)能夠理解、解釋和生成人類語言。自然語言處理技術(shù)的發(fā)展已經(jīng)取得了顯著的進(jìn)展
    的頭像 發(fā)表于 07-03 14:30 ?600次閱讀

    自然語言處理模式的優(yōu)點

    自然語言處理(Natural Language Processing,簡稱NLP)是人工智能領(lǐng)域的一個重要分支,它致力于使計算機(jī)能夠理解、生成和處理人類語言。隨著技術(shù)的發(fā)展,自然語言處理在各個領(lǐng)域
    的頭像 發(fā)表于 07-03 14:24 ?407次閱讀

    自然語言處理技術(shù)的核心是什么

    自然語言處理(Natural Language Processing,簡稱NLP)是人工智能領(lǐng)域的一個重要分支,其核心目標(biāo)是使計算機(jī)能夠理解、生成和處理人類語言。NLP技術(shù)的發(fā)展已經(jīng)取得了顯著的進(jìn)展
    的頭像 發(fā)表于 07-03 14:20 ?340次閱讀

    自然語言處理是什么技術(shù)的一種應(yīng)用

    自然語言處理(Natural Language Processing,簡稱NLP)是人工智能和語言學(xué)領(lǐng)域的一個分支,它涉及到使用計算機(jī)技術(shù)來處理、分析和生成自然語言文本。自然語言處理技
    的頭像 發(fā)表于 07-03 14:18 ?310次閱讀

    自然語言處理包括哪些內(nèi)容

    自然語言處理(Natural Language Processing,簡稱NLP)是人工智能領(lǐng)域的一個重要分支,它涉及到計算機(jī)與人類語言之間的交互。NLP的目標(biāo)是讓計算機(jī)能夠理解、生成和處理人類語言
    的頭像 發(fā)表于 07-03 14:15 ?517次閱讀

    自然語言列舉法描述法各自的特點

    自然語言文本。在自然語言處理中,列舉法和描述法是兩種常見的方法。 列舉法 列舉法是一種基于規(guī)則的方法,它通過列舉所有可能的情況來解決問題。在自然語言處理中,列舉法通常用于詞性標(biāo)注、命名實體識別、句法分析等
    的頭像 發(fā)表于 07-03 14:13 ?673次閱讀

    自然語言處理屬于人工智能的哪個領(lǐng)域

    自然語言處理(Natural Language Processing,簡稱NLP)是人工智能(Artificial Intelligence,簡稱AI)領(lǐng)域的一個重要分支。它涉及到計算機(jī)與人類語言
    的頭像 發(fā)表于 07-03 14:09 ?692次閱讀

    什么是自然語言處理 (NLP)

    自然語言處理(Natural Language Processing, NLP)是人工智能領(lǐng)域中的一個重要分支,它專注于構(gòu)建能夠理解和生成人類語言的計算機(jī)系統(tǒng)。NLP的目標(biāo)是使計算機(jī)能夠像人類一樣
    的頭像 發(fā)表于 07-02 18:16 ?586次閱讀

    自然語言處理技術(shù)的原理的應(yīng)用

    自然語言處理(Natural Language Processing, NLP)作為人工智能(AI)領(lǐng)域的一個重要分支,旨在使計算機(jī)能夠理解和處理人類自然語言。隨著互聯(lián)網(wǎng)的普及和大數(shù)據(jù)技術(shù)的發(fā)展
    的頭像 發(fā)表于 07-02 12:50 ?239次閱讀

    神經(jīng)網(wǎng)絡(luò)在自然語言處理中的應(yīng)用

    自然語言處理(NLP)是人工智能領(lǐng)域中的一個重要分支,它研究的是如何使計算機(jī)能夠理解和生成人類自然語言。隨著人工智能技術(shù)的飛速發(fā)展,神經(jīng)網(wǎng)絡(luò)在自然語言處理中的應(yīng)用逐漸展現(xiàn)出其強(qiáng)大的潛力和優(yōu)勢。本文
    的頭像 發(fā)表于 07-01 14:09 ?285次閱讀

    【大語言模型:原理與工程實踐】大語言模型的基礎(chǔ)技術(shù)

    的特征,并且這些特征融合了這些詞在當(dāng)前序列的上下文語義,因此能夠解決一詞多義的問題。憑借這種優(yōu)勢,基于動態(tài)詞向量語言模型進(jìn)行預(yù)訓(xùn)練的方法被廣泛應(yīng)用于自然語言處理任務(wù)中。 經(jīng)典結(jié)構(gòu)
    發(fā)表于 05-05 12:17

    一種基于自然語言的軌跡修正方法

    本研究提出了ExTraCT框架,利用自然語言進(jìn)行軌跡校正。該框架結(jié)合了大型語言模型(LLMs)用于自然語言理解和軌跡變形函數(shù)。ExTraCT能夠根據(jù)場景在線生成軌跡修改特征及其自然語言
    的頭像 發(fā)表于 01-19 10:45 ?335次閱讀
    一種基于<b class='flag-5'>自然語言</b>的軌跡修正方法