閱讀408 返回首頁    go 阿裏雲 go 技術社區[雲棲]


【BABY夜談大數據】基於內容的推薦

起因

這個係列主要也是自己最近在研究大數據方向,所以邊研究、開發也邊整理相關的資料。網上的資料經常是碎片式的,如果要完整的看完可能需要同時看好幾篇文章,所以我希望有興趣的人能夠更輕鬆和快速地學習相關的知識。我會盡可能用簡單的方式去簡介一些概念和算法,盡可能讓沒有工科基礎的人也能大致了解。

簡單講解

基於內容的推薦算法是非常常見的推薦引擎算法。

這種算法常用於根據用戶的行為曆史信息,如評價、分享、點讚等行為並將這些行為整合計算出用戶的偏好,再對計算推薦項目與用戶偏好的相似度,將最相似的推薦給用戶。例如在書籍推薦中,可以根據用戶已經看過或者評分的書籍的一些共性(比如作者、分類、標簽)再推薦給用戶相似度高的書籍。

基於內容推薦可以通過兩種方式,一個是像上麵所說通過用戶的行為進行個性化推薦,但是上麵的推薦方式很依賴用戶的數據、不利於沒有用戶數據情況下的冷啟動。一般適合商品不多、用戶有特殊興趣的情況。

第二種就是根據事物的相關性,這種方式是通過比較事物之間共有屬性的相似度來進行推薦,例如如果A用戶喜歡Dota2,Dota2是屬於競技類網遊,那麼A用戶就有可能喜歡英雄聯盟。

這種方式的好處就是可以不依賴用戶的行為,但是要求事物的內容是準確和完善的並且是沒有歧義的,不過也可以通過手動輸入標簽的方式來解決這個問題。

相關算法

1.基於關鍵詞的空間向量模型

關鍵詞一般通過TF-IDF來進行提取,TF-IDF是一種常用的加權計算方法,它是基於統計學的方法,一般用來評估一個詞在一段話或一篇文章中的重要性。

TF-IDF對區別文檔最有意義的詞語應該是那些在文檔中出現頻率高,而在整個文檔集合的其他文檔中出現頻率少的詞語,所以如果特征空間坐標係取TF詞頻作為測度,就可以體現同類文本的特點。

另外考慮到單詞區別不同類別的能力,TF-IDF法認為一個單詞出現的文本頻數越小,它區別不同類別文本的能力就越大。因此引入了逆文本頻度IDF的概念,以TF和IDF的乘積作為特征空間坐標係的取值測度,並用它完成對權值TF的調整,調整權值的目的在於突出重要單詞,抑製次要單詞。

有很多不同的數學公式可以用來計算TF-IDF。

如果某個詞或短語在一篇文章中出現的頻率TF(詞頻)高,並且在其他文章中很少出現,則認為此詞或者短語具有很好的類別區分能力,適合用來分類。TFIDF實際上是:TF * IDF,TF詞頻(Term Frequency),IDF反文檔頻率(Inverse Document Frequency)。TF表示詞條在文檔d中出現的頻率。IDF的主要思想是:如果包含詞條t的文檔越少,也就是n越小,IDF越大,則說明詞條t具有很好的類別區分能力。如果某一類文檔C中包含詞條t的文檔數為m,而其它類包含t的文檔總數為k,顯然所有包含t的文檔數n=m+k,當m大的時候,n也大,按照IDF公式得到的IDF的值會小,就說明該詞條t類別區分能力不強。

詞頻 (TF) 是一詞語出現的次數除以該文件的總詞語數。假如一篇文件的總詞語數是100個,而詞語“母牛”出現了3次,那麼“母牛”一詞在該文件中的詞頻就是 0.03 (3/100)。一個計算文件頻率 (DF) 的方法是測定有多少份文件出現過“母牛”一詞,然後除以文件集裏包含的文件總數。所以,如果“母牛”一詞在1,000份文件出現過,而文件總數是 10,000,000份的話,其文件頻率就是 0.0001 (1000/10,000,000)。最後,TF-IDF分數就可以由計算詞頻除以文件頻率而得到。以上麵的例子來說,“母牛”一詞在該文件集的TF- IDF分數會是 300 (0.03/0.0001)。這條公式的另一個形式是將文件頻率取對數。

向量空間模型是通過進行特征選擇計算,通過加權公式將文本轉化為數值的一種形式。這樣就可以將向量空間模型通過計算得到相似度。

我們可以將用戶的喜好以文檔描述並轉換成向量模型,對商品也是這麼處理,然後再通過計算商品文檔和用戶偏好文檔的餘弦相似度。

有關餘弦相似度和TF-IDF詳細可以等下一篇文章。
*
2.Rocchoi算法*

Rocchio算法,是一種高效的分類算法,廣泛地被應用到文本分類,查詢擴展等領域。它通過構造原型向量的方法得到最優解。

Rocchio算法應該算是人們思考文本分類問題時最先能想到,也最符合直覺的解決方法。基本的思路是把一個類別裏的樣本文檔各項取個平均值(例如把所有 “體育”類文檔中詞匯“籃球”出現的次數取個平均值,再把“裁判”取個平均值,依次做下去),可以得到一個新的向量,形象的稱之為“質心”,質心就成了這 個類別最具代表性的向量表示。再有新文檔需要判斷的時候,比較新文檔和質心有多麼相像(八股點說,判斷他們之間的距離)就可以確定新文檔屬不屬於這個類。

通過上述的這兩種算法就可以判斷內容之間是否相似從而進行推薦。

最後更新:2017-07-13 18:02:21

  上一篇:go  【BABY夜談大數據】計算文本相似度
  下一篇:go  阿裏雲首推音樂變速短視頻SDK,上線抖音 freestyle隻需1步