【T-BABY 夜談大數據】基於內容的推薦算法

這個系列主要也是本身最近在研究大數據方向,因此邊研究、開發也邊整理相關的資料。網上的資料常常是碎片式的,若是要完整的看完可能須要同時看好幾篇文章,因此我但願有興趣的人可以更輕鬆和快速地學習相關的知識。我會盡量用簡單的方式去簡介一些概念和算法,儘量讓沒有工科基礎的人也能大體瞭解。算法

簡單講解學習

基於內容的推薦算法是很是常見的推薦引擎算法。大數據

這種算法經常使用於根據用戶的行爲歷史信息,如評價、分享、點贊等行爲並將這些行爲整合計算出用戶的偏好,再對計算推薦項目與用戶偏好的類似度,將最類似的推薦給用戶。例如在書籍推薦中,能夠根據用戶已經看過或者評分的書籍的一些共性(好比做者、分類、標籤)再推薦給用戶類似度高的書籍。開發

基於內容推薦能夠經過兩種方式,一個是像上面所說經過用戶的行爲進行個性化推薦,可是上面的推薦方式很依賴用戶的數據、不利於沒有用戶數據狀況下的冷啓動。通常適合商品很少、用戶有特殊興趣的狀況。文檔

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

這種方式的好處就是能夠不依賴用戶的行爲,可是要求事物的內容是準確和完善的而且是沒有歧義的,不過也能夠經過手動輸入標籤的方式來解決這個問題。數學

相關算法io

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算法應該算是人們思考文本分類問題時最早能想到,也最符合直覺的解決方法。基本的思路是把一個類別裏的樣本文檔各項取個平均值(例如把全部 「體育」類文檔中詞彙「籃球」出現的次數取個平均值,再把「裁判」取個平均值,依次作下去),能夠獲得一個新的向量,形象的稱之爲「質心」,質心就成了這 個類別最具表明性的向量表示。再有新文檔須要判斷的時候,比較新文檔和質心有多麼相像(八股點說,判斷他們之間的距離)就能夠肯定新文檔屬不屬於這個類。

經過上述的這兩種算法就能夠判斷內容之間是否類似從而進行推薦。

相關文章
相關標籤/搜索