簡單業務推薦排序算法

場景

用戶在進行搜索時,假設搜索出來的結果有B1,B2,B3…Bn類業務,每類業務分別有S1,S2,S3…Sn條推薦內容。在把各個業務展示給用戶時,需要把和用戶搜索關鍵詞“相關性”最高的業務放在前面。

原理

詞頻因子(Tf)

Tf計算因子代表了詞頻,即一個單詞在文檔中出現的次數。一般來說在某個文檔中反覆出現的單詞,往往能夠表徵文檔的主題信息。即Tf值越大,越能代表文檔所反映的內容,那麼應該給予這個單詞更大的權值。爲了抑制長文檔在詞頻數量上存在優勢,詞頻因子Tf的計算公式:

Tf=1+log(n)
n表示特徵單詞在該文檔中出現的次數

逆文檔詞頻(IDF)

IDF代表的是文檔集合範圍的一種全局因子。表示在文檔集合(業務)中,特徵單詞之間的相對重要性。逆文頻率因子IDF計算公式:

IDF=log(N/n)
N代表文檔集合中總共有多少個文檔
n表示特徵單詞在文檔集合中出現的文檔個數

IDF反映了一個特徵詞在整個文檔集合中的分佈情況。IDF值越低,這個詞區分不同文檔的能力越差。

Tf*IDF框架

Tf*IDF框架結合了詞頻因子和逆文檔詞頻因子的計算框架,將兩者相乘做爲特徵權值。特徵權值越大,則越可能說明詞和文檔的相關性越高。

算法

假設用戶搜索關鍵詞進行分詞後的結果爲特徵單詞w1,w2,w3…wk。對於業務Bi的Si條內容(設爲c1,c2,c3…cj),對於一條內容cu(1<=u<=j),其中特徵單詞wv(1<=j<=k)對應的詞頻因子爲Tfv。
基於Tf*IDF框架計算出來的業務權值爲:

weight(Bi)=max(sum(Tfv*IDF))
即取業務Bi中所有內容中最大權值的當做業務的權值。

業務推薦時按照業務權值從大到小的順序推薦給用戶,這樣用戶就能最先看到和自己搜索最匹配的業務內容。

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