文字上的演算法讀書筆記五--nlp的需要知道的術語

imagination_gogo發表於2018-10-11

搜尋引擎的基本的術語

1.tf/df/idf

tf是詞頻,就是某個詞的出現的次數,表示的是一個詞的區域性資訊。

df是文件頻率,就是指某個詞的文件頻率,這個詞在多少個文件中出現。

idf是逆文件頻率,它是詞重要性的一個很好的衡量。計算如下:

在大量語料庫中統計的,所以一般表示一個詞的全域性資訊。

2.pagerank

pagerank用來衡量網頁重要性的一個指標。

核心思想是投票原則。如果指向某個網頁的連結非常多且質量很高,那麼該網頁的質量也就很高。計算公式:

網頁鏈向網頁A,C(A)表示網頁A的外鏈數量,d是阻尼係數(0<d<1),PR(A)就表示網頁A的pagerank值。

5.3 相似度計算

搜尋引擎中計算query和文件的相似度,問答系統中計算問題和答案的相似度,廣告系統中計算query和廣告詞的匹配程度?

推薦系統中要給某個使用者推薦某件物品,是否要計算這件物品和這個使用者興趣的相似度呢?

相似度是指Q和D的相似度。計算相似度,抽象成數學形式。一般會表示成向量或矩陣。

1.距離方法

餘弦距離,歐式距離,漢明距離,明氏距離,曼哈頓距離,Jaccard距離和Jaccard相似係數,皮爾森相關係數,編輯距離等等。

編輯距離是指兩個串,由一個變成另一個所需的最少的編輯次數,這個編輯包括:替換,插入,刪除操作。

餘弦公式如下:

接近1越相似。

皮爾森相關係數在推薦系統中用的也比較多:

是Q和D的平均距離,-1到1

2.Hash方法

minhash和simhash.

minhash降維,基於結論為:兩個集合經隨機轉換後得到的兩個最小hash值相等的概率等於兩集合的Jaccard相似度。

simhash是設計一個hash,使得內容相近的事情生成的hash簽名也相近。

文字中的模型

1.bool模型

向量量化,計算Q和D的餘弦相似度。

2.tf*idf模型

bool模型只考察詞是否出現,但是沒有考慮到詞的貢獻,出現的位置就是tf*idf。利用了詞的和區域性資訊tf和全域性資訊idf。

3.BM25模型(增加了長度特徵)

if*idf對bool模型有了優化,但是用到了tf,那麼句子越長,潛在的tf就越大,長句子會沾光。多利用一個長度資訊。

k1,b是引數,是文件長度,avgdl是文件平均長度。

4.Proximity模型(增加了位置資訊)


比如老大/的/幸福和老大/的/幸福以及幸福/的/老大。分數一樣,但是D1要比D2的相似度要高啊,接著優化,加入位置特徵。

5.語義特徵模型(增加了Topic特徵)

關鍵詞模型,必須詞嚴格一樣,比如計算機/好用和電腦/好用,相似度為0,但是或多或少是有相似度的啊,

加上語義特徵模型。主題模型,用的語義模型和關鍵詞加權。

就是關鍵詞模型,就是語義相似度模型。

計算方法1:

計算方法2:

計算權重為:

計算方法3:

主題分佈的相似度,直接計算的相似度。

計算方法4:

KL距離衡量。KL不滿足對稱性,只有用兩個,才能得分相同:

6.句法特徵模型(增加了句法特徵)

 

兩個句子A(我的顯示器的顏色)和B(我的顯示器變顏色),以上模型分數都不低,但是意思完全不一樣,加入句法特徵來優化,加入句子的句法樹的匹配程度。

7.深度表示模型(增加語義特徵)

詞表示成向量,句子表示成向量,計算相似度

論文《Learning Deep Structured Semantic Models for Web Search using Clickthrough Data》

提出將句子逐層表示成語義空間的特徵向量,然後計算句子的相似度。

有監督學習,標註一批相似的問題對,目標函式是

句子相似度演算法是由多個模型共同組成的。一個是深度學習就是ReNN模型。在句法關係上座標是

x是詞的向量,W是每種關係及每個詞對應的引數,h是隱藏層,它的計算如下:

或者用LSTM表示句子向量,其他的訓練方式和目標函式都是一樣的。

不光可以用來計算句子相似度,還可以對問題和答案進行排序。

還需要結合起亞模型(詞向量、互資訊、同反義詞等)

相關文章