1、UGC標籤系統的代表應用
- Delicious:給網頁打標籤
- CiteULike:給論文打標籤
- Last.fm:給音樂打標籤
- 豆瓣:書影音
- Hulu:視頻
打標籤的作用:
- 表達 標籤系統幫助我表達對物品的看法。
- 組織 打標籤幫助我組織我喜歡的電影。
- 學習 打標籤幫助我增加對電影的瞭解。
- 發現 標籤系統使我更容易發現喜歡的電影。
- 決策 標籤系統幫助我判定是否看某一部電影。
2、標籤系統中的推薦問題
2.1 用戶爲什麼標註?
- 社會維度:便於上傳者組織自己的信息,便於幫助其他用戶找到信息
- 功能維度:更好地組織內容,方便用戶將來的查找;傳達某種信息,比如照片的拍攝時間和地點等
2.2 用戶如何打標籤?
2.3 用戶打什麼標籤?
我們希望是能夠準確描述物品內容屬性的關鍵詞,但是實際上會打上奇奇怪怪的各種標籤。
比如:是什麼?種類,誰擁有,用戶觀點,用戶相關的標籤,用戶的目的
3、基於標籤的推薦系統
豆瓣標籤與產品線:
- 在每本書的頁面 上,有“豆瓣成員常用標籤”的應用
- 在用戶給書做評價時,豆瓣也會讓用戶給圖書打標籤。
- 在最終的個性化推薦結果裏, 豆瓣利用標籤將用戶的推薦結果做了聚類,顯示了對不同標籤下用戶的推薦結果
用戶標籤行爲一般用一個三元組集合表示(u,i,b),表示用戶u給物品i打上了標籤b
3.1 實驗設置
測評方法:
- 準確率&召回率
- 覆蓋率
- 多樣性:用物品標籤向量的餘弦相似度度量物品之間的相似度,然後利用下面的公式計算,然後將之合在一起計算均值就是整體的多樣性。
- 新穎性:推薦結果的平均熱門程程度。 對於物品i,定義它的流行度item_pop(i)爲給這個物品打過標籤的用戶數
3.2 一個最簡單的算法(SimpleTagBased)
- 統計每個用戶最常用的標籤
- 對於每個標籤,統計被打過這個標籤次數最多的物品
- 對於一個用戶,首先找他常用的標籤,然後找到具有這些標籤的最熱門物品進行推薦
3.3 算法的改進
3.3.1 TF-IDF
-
改進原因:傾向於給熱門標籤和熱門物品很大的權重,可以利用TF-IDF,對公式進行改進
-
改進方法:
- 對熱門標籤進行懲罰(TagBasedTFIDF):
- 對熱門物品和熱門標籤進行懲罰agBasedTFIDF++
- 對熱門標籤進行懲罰(TagBasedTFIDF):
-
改進效果:適當懲罰熱門標籤和熱門物品,在增進推薦結果個性化的同時並不會降低推薦結果的離線精度
3.3.2 數據稀疏性:標籤擴展
-
改進原因:剛好用戶喜歡的標籤和物品所在的標籤重合的概率,在用戶是新用戶或者物品時新物品的時候會很低,所以可以使用標籤擴展的方法,將相似的標籤也加入到用戶標籤集合中。
-
改進方法:相似度的計算,可以使用從數據中統計中得到的標籤相似度。
-
改進效果:能夠提高基於標籤的物品推薦的準確率和召回率,但可能會稍微降低推薦結果的覆蓋率和新穎度。
3.3.3 標籤清理
- 改進原因:
- 不是所有的標籤都反應出用戶的興趣
- 可以將標籤用來作爲推薦理由,所以需要標籤質量很高
- 改進方法
- 標籤清理
- 去除詞頻很高的停止詞;
- 去除因詞根不同造成的同義詞,比如 recommender system和recommendation system;
- 去除因分隔符造成的同義詞,比如 collaborative_filtering和collaborative-filtering
- 利用用戶反饋,判斷標籤適不適合
- 標籤清理
3.4 基於圖的推薦算法
-
用圖來表示標籤、用戶、物品
- 要定義3種不同的頂點,即用戶頂點、物品頂點和標籤頂點,相互之間用邊相連
- 要定義3種不同的頂點,即用戶頂點、物品頂點和標籤頂點,相互之間用邊相連
-
利用PersonalRank計算所有物品節點相對於當前用戶節點在圖上的相關性,然後按照相關性從大到小的排序,給用戶推薦排名最高的 N個物品。
-
用圖模型來解釋前面3.2的算法:構建一個圖,從用戶指向標籤,再從標籤指向物品,然後利用PersonalRank算法計算。
3.5 基於標籤的推薦解釋
- 用戶對標籤的興趣對幫助用戶理解爲什麼給他推薦某個物品更有幫助;
- 用戶對標籤的興趣和物品標籤相關度對於幫助用戶判定自己是否喜歡被推薦物品具有同樣的作用
- 物品標籤相關度對於幫助用戶判定被推薦物品是否符合他當前的興趣更有幫助;
- 客觀事實類標籤相比主觀感受類標籤對用戶更有作用
4、給用戶推薦標籤
4.1 爲什麼要給用戶推薦標籤
- 方便用戶輸入標籤
- 提高標籤質量
4.2 如何給用戶推薦標籤
- PopularTags:給用戶u推薦整個系統裏最熱門的標籤
- ItemPopularTags:給用戶u推薦物品i上最熱門的標籤
- UserPopularTags:給用戶u推薦他自己經常使用的標籤
- HybridPopularTags:通過一個係數將上面的 推薦結果線性加權,生成最終的推薦結果
4.3 實驗設計與結果
10折交叉驗證
對新用戶或者不熱門的物品進行推薦的一些想法:
- 從物品的內容數據中抽取關鍵詞作爲標籤。
- 針對有結果,但結果不太多的情況,可以做一些關鍵詞擴展,類似3.3.2
4.4 基於圖的標籤推薦算法
步驟:生成圖,利用PersonalRank算法進行排名。需要重新定義頂點的啓動概率,只有用戶和物品有非0的啓動概率。