文章目錄
流行的推薦系統通過3種方式聯系用戶興趣和物品
(1):利用用戶喜歡過的物品,給用戶推薦與他喜歡過的物品相似的物品,這是基于物品的算法。
(2):利用和用戶興趣相似的其他用戶,給用戶推薦那些和他們興趣愛好相似的其他用戶喜歡的物品,這是基于用戶的算法。
(3):通過一些特征(feature)聯系用戶和物品,給用戶推薦那些具有用戶喜歡的特征的物品。
特征有不同的表現形式,可以是物品的屬性集合(圖書:作者,出版社、主題和關鍵詞),也可以表現為隱語義向量(用戶的行為歷史)還有種特征表現形式———-標簽
標簽的定義:
標簽是一種無層次化結構的、用來描述信息的關鍵詞,它可以用來 描述物品的語義。根據給物品打標簽的人的不同,標簽應用一般分為兩種:一種是讓作者或者專 家給物品打標簽;另一種是讓普通用戶給物品打標簽,也就是UGC(User Generated Content,用 戶生成的內容)的標簽應用。UGC的標簽系統是一種表示用戶興趣和物品語義的重要方式。當一 個用戶對一個物品打上一個標簽,這個標簽一方面描述了用戶的興趣,另一方面則表示了物品的 語義,從而將用戶和物品聯系了起來
UGC:
普通用戶給物品打標簽,也就是UGC(User Generated Content,用 戶生成的內容)的標簽應用。
一般用戶會打什么樣的標簽呢?
(1)表明物品是什么(2)表明物品的種類(3)表明誰擁有物品
(4)表達用戶的觀點(5)用戶相關的標簽(6)用戶的任務
(7)類型(8)時間(9)人物
(10)地點(11)語言(12)獎項
(一)一個簡單的標簽算法:
(1) 統計每個用戶常用的標簽
(2)對于每個標簽,統計被打過這個標簽次數最多的物品
(3)對于一個用戶,首先找到他常用的標簽,然后找到具有這些標簽的最熱門物品推薦給這個用戶。
python標簽的推薦算法:
但是上面的推薦算法并不是完美,這里我們需要考慮到對熱門標簽和熱門物品進行打壓
可以改進下算法:
借用TF-IDF的思想
標簽的清理方法:
(1)去除詞頻很高的停止詞
(2)去除因詞根不同造成的同義詞
(3)去除因分隔符造成的同義詞
(二)基于圖的推薦算法
首先,我們需要將用戶打標簽的行為表示到一張圖上。我們知道,圖是由頂點、邊和邊上的 權重組成的。而在用戶標簽數據集上,有3種不同的元素,即用戶、物品和標簽。因此,我們需 要定義3種不同的頂點,即用戶頂點、物品頂點和標簽頂點。然后,如果我們得到一個表示用戶u 給物品i打了標簽b的用戶標簽行為(u,i,b),那么最自然的想法就是在圖中增加3條邊,首先需要在 用戶u對應的頂點v(u)和物品i對應的頂點v(i)之間增加一條邊(如果這兩個頂點已經有邊相連,那 么就應該將邊的權重加1),同理,在v(u)和v(b)之間需要增加一條邊,v(i)和v(b)之間也需要邊相 連接。
圖4-11是一個簡單的用戶—物品—標簽圖的例子。該圖包含3個用戶(A、B、C)、3個物品(a、 b、c)和3個標簽(1、2、3)。 在定義出用戶—物品—標簽圖后,我們可以用第2章提到的PersonalRank算法計算所有物品節點, 相對于當前用戶節點在圖上的相關性,然后按照相關性從大到小的排序,給用戶推薦排名最高的 N個物品。
(三)給用戶推薦標簽
給用戶推薦標簽的意義:
1 方便用戶輸入
2 提高標簽質量
這篇主要講了使用標簽進行推薦,實際中的推薦系統更多是多種推薦的組合。