推荐算法--时效性(05)
時效性
推薦系統(tǒng)應(yīng)該考慮時間效應(yīng),因為用戶的興趣是有時間變化的。用戶一年前喜歡的東西現(xiàn)在不一定感興趣,相比于推薦過去喜歡的物品,推薦用戶近期喜歡的物品更有參考價值。而在新聞更是如此,推薦過去跟用戶興趣一致的新聞已經(jīng)失去了意義。每個系統(tǒng)時間效應(yīng)的大小不同,比如時間對電影的作用就沒有新聞那么明顯。要考慮時效性,必須加入時間參數(shù),比如三元組(用戶,物品,時間)代替簡單的二元組(用戶,物品)。給定時間 T ,一般化的時間衰減公式為:
其中??是物品 i 最近的流行度,是時間衰減參數(shù),對于時效性明顯的系統(tǒng),應(yīng)該越大。代碼實現(xiàn)如下:
時效性的 ItemCF 算法
前面提到的 ItemCF 算法有兩個核心組成,(1)物品相似度矩陣(2)基于用戶歷史行為做推薦
(1)加入時效性考慮,用戶在相隔很短的時間內(nèi)喜歡的物品的相似度應(yīng)該高于時間跨度比較大的用戶喜歡物品之間的相似度。原來的物品相似度公式為:
在得到時間信息(用戶對物品產(chǎn)生行為的時間)后,加入時間衰減函數(shù)的公式如下:
衰減項中,其中?是用戶u 對物品 i 產(chǎn)生行為的時間。f 函數(shù)的意義是,用戶對物品 i 和物品 j 產(chǎn)生行為的時間越遠(yuǎn),則??越小。可以找到很多數(shù)學(xué)衰減函數(shù),比如
是時間衰減參數(shù),它的取值在不同的系統(tǒng)中不同。系統(tǒng)用戶興趣變化的越快,應(yīng)該越大。改進后的 ItemCF 算法的物品相似度矩陣計算代碼如下所示:
除了考慮時間對物品相似度的影響,還要考慮時間信息對推薦預(yù)測的影響。一般來說,用戶最近的喜好應(yīng)該和用戶興趣關(guān)系更大,需要將時間比較久的過去的喜歡的物品加上時間衰減函數(shù)。
其中??是現(xiàn)在的時間,?是用戶u 對 物品 i 評價過的時間。 代碼修改如下:
時效性的 UserCF 算法
類似 ItemCF ,UserCF 也有兩個核心。(1)計算用戶相似度矩陣(2)基于相似用戶興趣做推薦
(1)加入時效性考慮,如果兩個用戶在比較近的時間里有共同的喜好,則比在不同時間段用戶有相同喜好的參考意義更大。回顧原來的用戶相似度公式如下:
其中 N(u) 是用戶 u 喜歡的物品集合,N(v) 是用戶 v 喜歡的物品集合。加入時間衰減因子修正公式如下:
其中??是用戶 u 喜歡物品 i 的時間,?是用戶 v 喜歡物品 i 的時間。代碼如下:
同樣地,處了考慮時間信息對用戶相似度矩陣的影響,還應(yīng)該考慮時間信息對推薦算法的影響。找到相似的用戶后,認(rèn)為推薦相似用戶近期感興趣的物品比推薦過去感興趣的物品更有意義。原來的 UserCF 算法中用戶 u 對物品 i 的興趣公式如下:
加入時間衰減函數(shù)后,改進 UserCF 推薦公式如下:
其中?代表現(xiàn)在的時間,?代表相似的用戶 v 喜歡物品 i 的時間。改進后的推薦算法代碼如下:
總結(jié)
以上是生活随笔為你收集整理的推荐算法--时效性(05)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Python Cookbook 3rd
- 下一篇: 机器学习中的聚类方法总结