亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

比較句子相似度方法

admin
2023年3月22日 18:34 本文熱度 1954
編者按:本文作者為Yves Peirsman,是NLP領(lǐng)域的專(zhuān)家。在這篇博文中,作者比較了各種計(jì)算句子相似度的方法,并了解它們是如何操作的。詞嵌入(word embeddings)已經(jīng)在自然語(yǔ)言處理領(lǐng)域廣泛使用,它可以讓我們輕易地計(jì)算兩個(gè)詞語(yǔ)之間的語(yǔ)義相似性,或者找出與目標(biāo)詞語(yǔ)最相似的詞語(yǔ)。然而,人們關(guān)注更多的是兩個(gè)句子或者短文之間的相似度。如果你對(duì)代碼感興趣,文中附有講解細(xì)節(jié)的Jupyter Notebook地址。以下是論智的編譯。

許多NLP應(yīng)用需要計(jì)算兩段短文之間的相似性。例如,搜索引擎需要建模,估計(jì)一份文本與提問(wèn)問(wèn)題之間的關(guān)聯(lián)度,其中涉及到的并不只是看文字是否有重疊。與之相似的,類(lèi)似 Quora 之類(lèi)的問(wèn)答網(wǎng)站也有這項(xiàng)需求,他們需要判斷某一問(wèn)題是否之前已出現(xiàn)過(guò)。要判斷這類(lèi)的文本相似性,首先要對(duì)兩個(gè)短文本進(jìn)行 embedding ,然后計(jì)算二者之間的余弦相似度(cosine similarity)。盡管 word2vecGloVe 等詞嵌入已經(jīng)成為尋找單詞間語(yǔ)義相似度的標(biāo)準(zhǔn)方法,但是對(duì)于句子嵌入應(yīng)如何倍計(jì)算仍存在不同的聲音。接下來(lái),我們將回顧一下幾種最常用的方法,并比較它們之間的性能。


數(shù)據(jù)

我們將在兩個(gè)被廣泛使用的數(shù)據(jù)集上測(cè)試所有相似度計(jì)算方法,同時(shí)還與人類(lèi)的判斷作對(duì)比。兩個(gè)數(shù)據(jù)集分別是:

  • STS基準(zhǔn)收集了2012年至2017年國(guó)際語(yǔ)義評(píng)測(cè)SemEval中所有的英語(yǔ)數(shù)據(jù)

  • SICK數(shù)據(jù)庫(kù)包含了10000對(duì)英語(yǔ)句子,其中的標(biāo)簽說(shuō)明了它們之間的語(yǔ)義關(guān)聯(lián)和邏輯關(guān)系

下面的表格是STS數(shù)據(jù)集中的幾個(gè)例子??梢钥吹剑瑑删湓捴g的語(yǔ)義關(guān)系通常非常微小。例如第四個(gè)例子

A man is playing a harp.
A man is playing a keyboard.

通過(guò)判斷,兩句話之間“非常不相似”,盡管它們的句法結(jié)構(gòu)相同,并且其中的詞嵌入也類(lèi)似。

相似度方法

有很多方法可以計(jì)算兩個(gè)句子之間的意思相似度。在這里,我們看一下最常見(jiàn)的那些。

基準(zhǔn)方法

估計(jì)兩句子間語(yǔ)義相似度最簡(jiǎn)單的方法就是求句子中所有單詞詞嵌入的平均值,然后計(jì)算兩句子詞嵌入之間的余弦相似性。很顯然,這種簡(jiǎn)單的基準(zhǔn)方法會(huì)帶來(lái)很多變數(shù)。我們將研究,如果忽略終止詞并用TF-IDF計(jì)算平均權(quán)重會(huì)帶來(lái)怎樣的影響。

詞移距離

替代上述基準(zhǔn)方法的其中一種有趣方法就是詞移距離(Word Mover’s Distance)。詞移距離使用兩文本間的詞嵌入,測(cè)量其中一文本中的單詞在語(yǔ)義空間中移動(dòng)到另一文本單詞所需要的最短距離。

Smooth Inverse Frequency

從語(yǔ)義上來(lái)講,求一句話中詞嵌入的平均值似乎給與不相關(guān)的單詞太多權(quán)重了。而Smooth Inverse Frequency試著用兩種方法解決這一問(wèn)題:

  • 加權(quán):就像上文用的TF-IDF,SIF取句中詞嵌入的平均權(quán)重。每個(gè)詞嵌入都由a/(a + p(w))進(jìn)行加權(quán),其中a的值經(jīng)常被設(shè)置為0.01,而p(w)是詞語(yǔ)在語(yǔ)料中預(yù)計(jì)出現(xiàn)的頻率。

  • 常見(jiàn)元素刪除:接下來(lái),SIF計(jì)算了句子的嵌入中最重要的元素。然后它減去這些句子嵌入中的主要成分。這就可以刪除與頻率和句法有關(guān)的變量,他們和語(yǔ)義的聯(lián)系不大。

最后,SIF使一些不重要的詞語(yǔ)的權(quán)重下降,例如but、just等,同時(shí)保留對(duì)語(yǔ)義貢獻(xiàn)較大的信息。

預(yù)訓(xùn)練編碼器

上述兩種方法都有兩個(gè)重要的特征。首先,作為簡(jiǎn)單的詞袋方法,它們并不考慮單詞的順序。其次,它們使用的詞嵌入是在一種無(wú)監(jiān)督方法中學(xué)習(xí)到的。這兩種特點(diǎn)都有潛在的威脅。由于不同的詞語(yǔ)順序會(huì)有不同的意思(例如 the dog bites the manthe man bites the dog ),我們想讓句子的嵌入對(duì)這一變化有所反饋。另外,監(jiān)督訓(xùn)練可以更直接地幫助句子嵌入學(xué)習(xí)到句意。

于是就出現(xiàn)了預(yù)訓(xùn)練編碼器。預(yù)訓(xùn)練的句子編碼器的目的是充當(dāng) word2vecGloVe 的作用,但是對(duì)于句子嵌入來(lái)說(shuō):它們生成的嵌入可以用在多種應(yīng)用中,例如文本分類(lèi)、近似文本檢測(cè)等等。一般來(lái)說(shuō),編碼器在許多監(jiān)督和非監(jiān)督的任務(wù)中訓(xùn)練,目的就是能盡量多地獲取通用語(yǔ)義信息。目前已經(jīng)有好幾款這樣的編碼器了,我們以 InferSent谷歌語(yǔ)句編碼器 為例。



InferSent是由Facebook研發(fā)的預(yù)訓(xùn)練編碼器,它是一個(gè)擁有最大池化的BiLSTM,在SNLI數(shù)據(jù)集上訓(xùn)練,該數(shù)據(jù)集含有57萬(wàn)英語(yǔ)句子對(duì),所有句子都屬于三個(gè)類(lèi)別的其中一種:推導(dǎo)關(guān)系、矛盾關(guān)系、中立關(guān)系。

為了與Facebook競(jìng)爭(zhēng),谷歌也推出了自己的語(yǔ)句編碼器,它有兩種形式:

  • 其中一種高級(jí)模型,采用的是變換過(guò)的模型編碼子圖生成的語(yǔ)境感知詞所表示的元素總和。

  • 另一種是簡(jiǎn)單一些的深度平均網(wǎng)絡(luò)(DAN),其中輸入的單詞和雙字符的嵌入相加求平均數(shù),并經(jīng)過(guò)一個(gè)前饋深層神經(jīng)網(wǎng)絡(luò)。

基于變換的模型的結(jié)果更好,但是在書(shū)寫(xiě)的時(shí)候,只有基于DAN的編碼器可用。與InferSent不同,谷歌的橘子編碼器是在監(jiān)督數(shù)據(jù)和非監(jiān)督數(shù)據(jù)上共同訓(xùn)練的。

結(jié)果

我們?cè)?SICKSTS數(shù)據(jù)集 上測(cè)試了上述所有方法,得出句子對(duì)之間的相似度,并與人類(lèi)判斷相比較。

基準(zhǔn)方法

盡管他們很簡(jiǎn)潔,在平均詞嵌入之間求余弦相似性的基準(zhǔn)方法表現(xiàn)得非常好。但是,前提仍要滿(mǎn)足一些條件:

  • 簡(jiǎn)單 word2vec 嵌入比 GloVe 嵌入表現(xiàn)的好

  • 在用 word2vec 時(shí),尚不清楚使用停用詞表或TF-IDF加權(quán)是否更有幫助。在STS上,有時(shí)有用;在SICK上沒(méi)用。僅計(jì)算未加權(quán)的所有word2vec嵌入平均值表現(xiàn)得很好。

  • 在使用GloVe時(shí),停用詞列表對(duì)于達(dá)到好的效果非常重要。利用TF-IDF加權(quán)沒(méi)有幫助。

詞移距離

基于我們的結(jié)果,好像沒(méi)有什么使用詞移距離的必要了,因?yàn)樯鲜龇椒ū憩F(xiàn)得已經(jīng)很好了。只有在STS-TEST上,而且只有在有停止詞列表的情況下,詞移距離才能和簡(jiǎn)單基準(zhǔn)方法一較高下。

Smooth Inverse Frequency

SIF是在測(cè)試中表現(xiàn)最穩(wěn)定的方法。在SICK數(shù)據(jù)集上,它的表現(xiàn)和簡(jiǎn)單基準(zhǔn)方法差不多,但是在STS數(shù)據(jù)集上明顯超過(guò)了它們。注意,在帶有word2vec詞嵌入的SIF和帶有GloVe詞嵌入的SIF之間有一些差別,這種差別很顯著,它顯示了SIF的加權(quán)和去除常用元素后減少的非信息噪音。

預(yù)訓(xùn)練編碼器

預(yù)訓(xùn)練編碼器的情況比較復(fù)雜。但是我們的結(jié)果顯示編碼器還不能完全利用訓(xùn)練的成果。谷歌的句子編碼器看起來(lái)要比InferSent好一些,但是皮爾森相關(guān)系數(shù)的結(jié)果與SIF的差別不大。

而斯皮爾曼相關(guān)系數(shù)的效果更直接。這也許表明,谷歌的句子編碼器更能了解到句子的正確順序,但是無(wú)法分辨其中的差別。

結(jié)論

語(yǔ)句相似度是一個(gè)復(fù)雜現(xiàn)象,一句話的含義并不僅僅取決于當(dāng)中的詞語(yǔ),而且還依賴(lài)于它們的組合方式。正如開(kāi)頭我們舉的那個(gè)例子(harp和keyboard),語(yǔ)義相似度有好幾種維度,句子可能在其中一種維度上相似,而在其他維度上有差異。目前的句子嵌入方法也只做到了表面。通常我們?cè)谄柹嚓P(guān)系數(shù)(Pearson correlation)上進(jìn)行測(cè)試,除了有些情況下斯皮爾曼相關(guān)系數(shù)(Spearman correlation)會(huì)有不一樣的結(jié)果。

所以,如果你想計(jì)算句子相似度,你會(huì)選擇哪種方法呢?我們的建議如下:

  • word2vecGloVe 的選擇更保險(xiǎn)

  • 雖然句子中無(wú)加權(quán)的平均詞嵌入是簡(jiǎn)單的基準(zhǔn)做法,但是Smooth Inverse Frequency是更強(qiáng)有力的選擇

  • 如果你可以用預(yù)訓(xùn)練編碼器,選擇谷歌的那款吧。但是要記住它的表現(xiàn)可能不會(huì)總是那么驚艷。

Google 編碼器

GitHub地址

github.com/nlptown/sentence-similarity/blob/master/Simple%20Sentence%20Similarity.ipynb

模型

https://tfhub.dev/google/universal-sentence-encoder-multilingual-large/3

Google Research(Universal Sentence Encoder): https://www.dazhuanlan.com/2019/11/21/5dd5876d6a9da/


該文章在 2023/3/22 18:34:53 編輯過(guò)
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶(hù)的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved