短文本語義相似度計算

寫在開始之前:語義即聯繫。

以下部分來自於我在公司內部的分享。

一、相關概念

在學術上,大致有以下三個概念和文本相似度相關:
在這裏插入圖片描述

  • Semantic Textual Similarity(文本語義相似度):5分表示非常相似,0分表示非常不相似。
  • Paraphrase Identification(複述判定):1表示是複述,0表示不是複述。
  • Natural Language Inference(自然語言推斷):C表示矛盾,N表示中立,E表示蘊含;這個概念和文本語義相似其實有些出入,但是由於其計算方法和STS以及PI有些相似,故把本概念列出。

當我們在討論兩個短文本是不是相似(或者是不是表達同一個意思),需要做兩件事:

  • 表徵(特徵提取):即如何表徵短文本;
  • 計算:如何基於表徵,度量文本之間的關係。
    後面,我們從無監督方法和有監督方法兩個角度,並圍繞“表徵”與“計算”兩件事展開討論。

二、一個簡單但重要的方法TFIDF

說它簡單,因爲它是一種簡單的詞袋模型;
說它重要,因爲它很容易和倒排索引結合,正所謂 “天下武功,無堅不摧,唯快不破!”,我會在另一篇博客中專門介紹TFIDF和倒排。
每條短文本都表示成維度爲詞典大小(V)的向量,對應位置元素的值爲當前詞的TFIDF值
在這裏插入圖片描述
在這裏插入圖片描述

使用TFIDF做表徵,使用COS(餘弦)計算。
TFIDF最大的問題是沒有考慮詞語之間的語義(即詞語之間的相互聯繫,或者詞語之間的相似性),其本質是因爲這種VSM模型假設句子所在的空間的基是正交(orthogonal)的:
在這裏插入圖片描述
其中V爲詞典大小,從而:
在這裏插入圖片描述

三、解決TFIDF忽略詞語之間語義的一個方法——SoftCosine

SoftCosine的思想是:找到一個非正交的基。
首先,我們需要明確三個概念以及它們之間的關係:
在這裏插入圖片描述
下面兩個圖很重要!
在這裏插入圖片描述
解釋:給定向量,還需要給定一組基,向量纔有座標。向量a還是向量a,但是相對於不同的“基”,向量a的座標是不同的,分別是(1,2)和(0.9,0.7)。
在這裏插入圖片描述
解釋:這裏和上圖不同,我們只是拿到了座標,理所當然,給定不同的基,就可以得到不同的向量,可以看出,a,b在不同的(1,2)和(2,1)兩個座標,在不同的基下面,對應不同的向量。
? 算了…我要舉例子了
這個例子當中,有兩句話:

a : a player will play a game they like to play
b : they play the game they like
得到字典:
在這裏插入圖片描述
我們用VSM(空間向量模型)把句子a和句子b表示爲:
在這裏插入圖片描述
現在還不要把a,b看成兩個向量,先把腦袋中默認的正交基忘掉,a,b現在還只是座標而已。我們現在有座標了,那麼選擇不同的基,就可以讓這兩個座標展現出不同的角度(即不同的遠近關係)。
Softcosine的大致思路如下:
在這裏插入圖片描述
那麼,選擇什麼樣的基是好的呢? 答案:最好是兩個基向量的餘弦距離能夠度量對應的兩個詞語之間的相似性。
這裏,要多說一句【隔了一天, 突然不想寫了…?】,那就再多說一句。
我們的目標是把原來的基向量(e1,e2,… … ,eV)變換爲(e1*,e2*,… … ,eV*)。注意,eV和eV*的維度是相同的,都是V。
假設w1的特徵用 f1 (維度爲df) 表示,w2的特徵用 f2 維度爲df)表示,我們希望這個非正交基能滿足下面的公式:
cos(e1*,e2*) = S12 = similarity(f1,f2)
在實際工作中,特徵f 就是選擇的word2vec, glove, fasttext 等等詞向量。

在這裏插入圖片描述
其實本來是想記錄一下生成方式的sif 和 usif 推導過程,沒想到說了很久的舊東西。
先看看一個灰度圖片SVD分解之後,把最大奇異值對應的奇異向量抹掉之後,圖片的變換,左邊是原圖,右邊是抹掉最大奇異值對應的奇異向量之後,重新合成的結果:
在這裏插入圖片描述
就這樣吧~,有空再寫…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章