如何將用戶表示成機器可以處理的形式(基於內容的推薦)

當用戶信息(如年齡,性別)和物品信息(如製片方,上映年份,所屬類型)可用時,如何在推薦系統中利用這些信息?也是實現所說的基於內容(content-based)的推薦。其實基於內容的推薦要解決兩個主要問題:item profile 和 user profile。即如何將這些人類的知識轉化成機器可以處理的形式。CB裏面常見的一個詞是Ontology(本體),它的含義就是一種可被機器處理的人類知識的表現形式。最後,有了用戶和物品的適當表示,進行基於物品或者用戶相似度的推薦便是很自然的事了。因此,本文只講述如何profiling用戶。主要有兩個方面:①從用戶喜歡的物品中提取信息②直接使用用戶的個人資料


①從用戶喜歡的物品中提取信息


一種方法是利用物品的分類。作者在[3]中利用物品的taxonomy(類別)來構造用戶preference參數。具體方法是爲每一個用戶充值s分(s爲定值)。每個用戶把這s分平均分配給自己喜歡過的物品上。每個物品再把得到的分數平均分配給它所屬的類目(每個物品所屬的類目都是已知的,作者從Amazon爬來)。最後,得到分數的類目再把自己的分數按照一定規則分配給自己的父類目。最終,一個用戶對應一個length爲類目數的向量。個人感覺這個有點太啓發式了,描述起來都有點複雜。不過,這是對“如何利用物品類別”的一個有益探索。


可以看到,主要想法還是用物品來表示用戶。因此如果是文檔推薦,且文檔類別未知,那一個最簡單的做法是:將每個文檔表示成tf-idf向量形式。每個用戶則表示爲其閱讀過的所有文章的向量平均值。


不過還有更好的做法。[17]是一個paper推薦系統。它同[3]的一個巨大區別在於,每個paper的分類是未知的。於是它將用戶瀏覽過的paper使用IBK(AdaBostM1 boosted的KNN算法)歸類成不同的topic。訓練樣本是手工標記的,而且表示所使用的類名來自開放目錄DMOZ。根據用戶看過哪些topic的paper,系統爲用戶維護一個topic interest向量。興趣度在分類目錄樹上的傳播過程同[3]中類似。最後爲了反映用戶近期愛好,作者引入了時間衰減函數,給近期看過的論文賦予較高的權值。 


②直接使用用戶的配置信息


配置信息的使用要比類別信息要更直觀一點。[18]使用用戶信息來加強傳統的CF推薦算法。它使用MovieLens中提供的用戶的年齡,性別,職業和郵政編碼,爲用戶顯示構造feature向量,如圖1。

圖1   來自[18]



總結:可以看到,這種顯示編碼的方式來做用戶profile是很有限的——除了用戶的個人信息,剩下可以提取的似乎就只有“類別”信息(使用自動聚類方法獲得的cluster也算是分類)。這種方法的弊端是,無法捕捉用戶或物品間更深層次的關係。一個好的替代則是使用Linked Data,可以看這裏


參考文獻:

[3] Taxonomy-driven Computation of Product Recommendations

[17] Ontological User Profiling in Recommender 

[18] COLLABORATIVE FILTERING ENHANCED BY DEMOGRAPHIC CORRELATION

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