POST TIME:2018-12-03 21:39
先思考一個問題,我們怎么量化兩個事物的相似度呢?當然,這也是保舉系統需要多次面臨的問題。
我們知道向量的概念,可以形象化地體現為帶箭頭的線段。二維空間向量體現方法為,多維空間向量體現為,向量是描述事物一種很好模型。
好比,假設用戶有5個維度:
對服裝的喜歡程度(1~5分)對家居的喜歡程度(1~5分)對3C的喜歡程度(1~5分)對圖書的喜歡程度(1~5分)對化妝品的喜歡程度(1~5分)一個用戶A:對服裝的喜歡程度3,對家居的喜歡程度1,對3C的喜歡程度4,對圖書的喜歡程度5,對化妝品的喜歡程度0,用戶A可以用向量體現為一個用戶B:對服裝的喜歡程度3,對家居的喜歡程度4,對3C的喜歡程度5,對圖書的喜歡程度0,對化妝品的喜歡程度2,用戶B可以用向量體現為這兩個用戶的相似程度是多大呢?既然我們把這兩個用戶體現為向量,那么我們可以考慮向量怎么判斷相似性。沒錯,看這兩個向量的夾角。夾角約小,則相似度越大。
對于向量和而言,他們的在多維空間的夾角可以用向量余弦公式計算:
余弦相似度的值自己是一個0~1的值,0代表完全正交,1代表完全一致。就剛才用戶A和用戶B的例子而言,我們可以知道他們的相似度為:
余弦公式自己應用范圍很廣,量化相似度在搜索保舉,商業策略中都是常見問題,余弦公式是很好的解決方案。就保舉自己而言,計算內容的相似度,計算用戶的相似度,計算用戶類型的相似度,計算內容類型的相似度,這些都是可以應用的場景。
1. 保舉的素質是什么保舉和搜索素質有相似的地方。搜索滿足用戶從海量數據中迅速找到本身感興趣內容的需求,屬于用戶主動獲取。保舉則是系統從海量數據中按照獲取到的用戶數據,猜測用戶感興趣的內容并保舉給用戶,屬于系統保舉給用戶。素質上都是為了在這個信息過載的時代,幫手用戶找到本身感興趣的東西。
保舉系統有很多種形式。運營或者編纂篩選出本身認為最好的內容放在首頁,廣義上講這也是一種保舉。不過這個不在我們本期文章的討論范圍,本期主要是討論系統級另外保舉。這里主要介紹四類常見的保舉方法:
基于內容的保舉基于內容的協同過濾基于用戶的協同過濾基于標簽的保舉2. 基于內容的保舉基于內容的保舉是基礎的保舉策略。如果你瀏覽或購買過某種類型的內容,則給你保舉這種類型下的其他內容。
以電影保舉為例。好比你之前看過《盜夢空間》,則系統會關聯數據庫中盜夢空間的信息。系統會保舉克里斯托弗·諾蘭導演的其他作品,好比《致命魔術》;系統會保舉主演里昂納多的其他作品,好比《第十一小時》。
如果這個電影系統的數據被很好地分類,那么保舉系統也會給用戶保舉這個分類下的其他作品。盜夢空間如果被歸為科幻作品,那么可能會保舉其他科幻作品,好比《星際迷航》。
基于內容的保舉好處在于易于理解,,但是壞處是保舉方式比較依賴于完整的內容知識庫的建立。如果內容格式化比較差,那么基于內容的保舉就無法實行。同時如果用戶留下的數據比較少,則保舉效果很差,因為無法擴展。
3. 基于內容的協同過濾協同過濾(Collaborative Filtering)與傳統的基于內容過濾直接分析內容進行保舉差別,協同過濾會分析系統已有數據,并結合用戶表示的數據,對該指定用戶對此信息的愛好程度預測。
基于內容的協同過濾(item-based CF),通過用戶對差別內容的評分來評測內容之間的相似性,基于內容之間的相似性做出保舉;最典型的例子是著名的“啤酒加尿布”,就是通過分析知道啤酒和尿布經常被美國爸爸們一起購買,于是在尿布邊上保舉啤酒,增加了啤酒銷量。
需要計算用戶u對物品j的興趣,公式如下:
這里N(u)體現用戶有關聯的商品的集合,wji體現物品j和i的相似度,rui體現用戶u對物品i的打分,示例如下:
這里還有兩個問題沒有仔細描述,如何打分,如何計算相似度。
打分的話需要按照業務計算,如果有打分系統最好,沒有打分系統,則需要按照用戶對這個物品的行為得到一個分數。
上一篇:柯潔失敗了,AI+成下一個戰場