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

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

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

計(jì)算文本相似度幾種最常用的方法,并比較它們之間的性能

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-06-30 11:16 ? 次閱讀

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

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

數(shù)據(jù)

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

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

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

下面的表格是STS數(shù)據(jù)集中的幾個(gè)例子??梢钥吹?,兩句話之間的語義關(guān)系通常非常微小。例如第四個(gè)例子:

A man is playing a harp.

A man is playing a keyboard.

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

STS數(shù)據(jù)集中的例子

相似度檢測(cè)方法

用于計(jì)算兩句子間語義相似度的方法非常廣泛,下面是常見的幾種方法。

基準(zhǔn)方法

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

詞移距離

兩文本之間的詞移距離指的是文本一種中所有單詞與文本二中的單詞之間最小累計(jì)距離

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

Smooth Inverse Frequency

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

加權(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ù)計(jì)出現(xiàn)的頻率。

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

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

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

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

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

預(yù)訓(xùn)練句子編碼器以來自然語言推理等任務(wù),來學(xué)習(xí)句子嵌入,以便用于今后的遷移任務(wù)中

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

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

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

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

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

結(jié)果

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

基準(zhǔn)方法

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

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

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

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

我們簡(jiǎn)單的基準(zhǔn)方法表現(xiàn)得都不錯(cuò)

詞移距離

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

詞移距離的表現(xiàn)令人失望

Smooth Inverse Frequency

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

SIF的表現(xiàn)最穩(wěn)定

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

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

預(yù)訓(xùn)練編碼器表現(xiàn)得不錯(cuò),但是SIF也沒比它們差多少

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

斯皮爾曼相關(guān)系數(shù)表現(xiàn)出與皮爾森不同的效果

結(jié)論

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

所有判斷句子相似度的方法比較

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

word2vec比GloVe的選擇更保險(xiǎn)

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

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

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

    關(guān)注

    45

    文章

    3643

    瀏覽量

    134531
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1208

    瀏覽量

    24704
  • 自然語言
    +關(guān)注

    關(guān)注

    1

    文章

    288

    瀏覽量

    13351

原文標(biāo)題:計(jì)算文本相似度常用的四種方法

文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于相似計(jì)算的本體映射優(yōu)化方法

    在基于相似計(jì)算的本體映射中,相似計(jì)算量大的主要原因是待映射概念和待
    發(fā)表于 04-14 09:15 ?29次下載

    優(yōu)化相似計(jì)算在推薦系統(tǒng)中的應(yīng)用

    推薦系統(tǒng)技術(shù)發(fā)展至今,產(chǎn)生了許多經(jīng)典的推薦算法。為了進(jìn)一步地提高推薦系統(tǒng)的推薦準(zhǔn)確和用戶滿意,文章對(duì)相似計(jì)算方法進(jìn)行了研究,分析了不同
    發(fā)表于 01-04 14:55 ?0次下載

    綜合結(jié)構(gòu)和內(nèi)容的XML文檔相似計(jì)算方法

    綜合結(jié)構(gòu)和內(nèi)容的XML文檔相似計(jì)算方法_趙寧寧
    發(fā)表于 01-03 18:00 ?0次下載

    一中余弦相似的改進(jìn)方法

    的改進(jìn)方法(單側(cè)相似)。單側(cè)相似給出了不同位置時(shí)間序列的包含關(guān)系,這種關(guān)系是余弦
    發(fā)表于 11-01 17:42 ?0次下載
    一中余弦<b class='flag-5'>相似</b><b class='flag-5'>度</b>的改進(jìn)<b class='flag-5'>方法</b>

    基于雙語LDA的跨語言文本相似計(jì)算方法

    基于雙語主題模型思想分析雙語文本相似性,提出基于雙語LDA跨語言文本相似計(jì)算方法。先利用雙語平行語料集訓(xùn)練雙語LDA模型,再利用該模型預(yù)測(cè)新語料集主題分布,將新語料集的雙語文檔映射到
    發(fā)表于 11-21 14:41 ?1次下載
    基于雙語LDA的跨語言<b class='flag-5'>文本相似</b><b class='flag-5'>度</b><b class='flag-5'>計(jì)算方法</b>

    一種基于WordNet的混合式語義相似計(jì)算方法

    語義相似計(jì)算是自然語言處理中的重要研究內(nèi)容,在過去幾十年的研究工作中,已有大量的語義相似計(jì)算方法
    發(fā)表于 11-21 14:43 ?0次下載

    提高相似計(jì)算的準(zhǔn)確率的過濾推薦算法

    項(xiàng)目的評(píng)分差異,計(jì)算評(píng)分差異的加權(quán)信息熵;最后,將時(shí)序行為影響力融入到基于加權(quán)信息熵的相似中,其中融合參數(shù)d由隨機(jī)粒子群優(yōu)化算法選擇。通過與其他相似
    發(fā)表于 11-23 14:24 ?4次下載

    基于R-Grams文本相似計(jì)算方法文本聚類方法

    針對(duì)傳統(tǒng)文本聚類中存在著聚類準(zhǔn)確率和召回率難以平衡等問題,提出了一種基于R-Grams文本相似計(jì)算方法文本聚類
    發(fā)表于 12-29 17:09 ?0次下載

    基于結(jié)構(gòu)相似社團(tuán)檢測(cè)算法

    性度量,采用了一種優(yōu)化的方法計(jì)算復(fù)雜網(wǎng)絡(luò)的相似矩陣;其次,將計(jì)算得到的
    發(fā)表于 01-14 10:38 ?0次下載

    句子相似計(jì)算方法

    計(jì)算詞語語義相似的基礎(chǔ)上,提出一種以句子中心詞為基準(zhǔn)衡量詞語組合相對(duì)位置偏移量的句子相似計(jì)算方法
    發(fā)表于 01-25 14:25 ?1次下載

    思必馳在中文文本相似計(jì)算方向上取得階段性成果

    ? 文本相似計(jì)算旨在識(shí)別兩段文本在語義上是否相似,是自然語言處理領(lǐng)域的一個(gè)重要研究方向,其在智能問答、信息檢索等領(lǐng)域都發(fā)揮重要作用,具有很
    的頭像 發(fā)表于 01-14 11:29 ?2081次閱讀

    針對(duì)協(xié)同過濾推薦算法的相似計(jì)算方法

    協(xié)同過濾推薦算法通過對(duì)用戶行為進(jìn)行相似計(jì)算來實(shí)現(xiàn)目標(biāo)推薦,但傳統(tǒng)協(xié)同過濾算法的相似計(jì)算存在一
    發(fā)表于 03-25 14:25 ?6次下載
    針對(duì)協(xié)同過濾推薦算法的<b class='flag-5'>相似</b><b class='flag-5'>度</b><b class='flag-5'>計(jì)算方法</b>

    基于時(shí)空分析的交通路口相似計(jì)算方法

    在交通領(lǐng)域中,傳統(tǒng)的交通時(shí)空數(shù)據(jù)分析方法存在擁堵路口的時(shí)空數(shù)據(jù)相似性檢索效率低、可靠性差的問題,從空間場(chǎng)景相似和動(dòng)態(tài)數(shù)據(jù)相似
    發(fā)表于 05-13 16:25 ?5次下載

    快速了解文本語義相似領(lǐng)域的研究脈絡(luò)和進(jìn)展

    文本表示:當(dāng)數(shù)據(jù)被預(yù)處理完成后,就可以送入模型了。在文本相似任務(wù)中,需要有一個(gè)模塊用于對(duì)文本的向量化表示,從而為下一步相似
    的頭像 發(fā)表于 08-16 10:04 ?896次閱讀

    最常用的可充電電池以及它們之間的區(qū)別

    隨著技術(shù)的發(fā)展,可充電電池已經(jīng)無處不在,這些類型的電池變得越來越強(qiáng)大和緊湊。本文重點(diǎn)介紹市場(chǎng)上最常用的可充電電池以及它們之間的區(qū)別。我們不會(huì)更深入地研究它們的化學(xué)成分或種類,而是
    的頭像 發(fā)表于 06-18 15:12 ?1938次閱讀