利用上下文信息的推荐系统
利用上下文信息的推薦系統(tǒng)
讀書筆記,參考書本: 項(xiàng)亮, 推薦系統(tǒng)實(shí)踐. 2012
(主要討論時(shí)間信息,如何將時(shí)間信息結(jié)合到推薦算法中)
時(shí)間效應(yīng)舉例
時(shí)間是一種重要的上下文信息,對(duì)用戶興趣有著深入而廣泛的影響。一般認(rèn)為,時(shí)間信息對(duì)用戶興趣的影響表現(xiàn)在以下幾個(gè)方面。
? 用戶興趣是變化的 -- 我們這里提到的用戶興趣變化是因?yàn)橛脩糇陨碓虬l(fā)生的變化。比如隨著年齡的增長(zhǎng),用戶小時(shí)候喜歡看動(dòng)畫片,長(zhǎng)大了喜歡看文藝片。一位程序員隨著工作時(shí)間的增加,逐漸從閱讀入門書籍過(guò)渡到閱讀專業(yè)書籍。一個(gè)人參加工作了,工作后的興趣和學(xué)生時(shí)代的興趣相比發(fā)生了變化。那么,如果我們要準(zhǔn)確預(yù)測(cè)用戶現(xiàn)在的興趣,就應(yīng)該關(guān)注用戶最近的行為,因?yàn)橛脩糇罱男袨樽钅荏w現(xiàn)他現(xiàn)在的興趣。當(dāng)然,考慮用戶最近的興趣只能針對(duì)漸變的用戶興趣,而對(duì)突變的用戶興趣很難起作用,比如用戶突然中獎(jiǎng)了。
? 物品也是有生命周期的 -- 一部電影剛上映的時(shí)候可能被很多人關(guān)注,但是經(jīng)久不衰的電影是很少的,很多電影上映后不久就被人們淡忘了。此外,物品也可能受新聞事件的影響,比如一部已經(jīng)被淡忘的電影會(huì)因?yàn)橥蝗槐荒硞€(gè)新聞事件涉及而重新熱門起來(lái)。因此,當(dāng)我們決定在某個(gè)時(shí)刻給某個(gè)用戶推薦某個(gè)物品時(shí),需要考慮該物品在該時(shí)刻是否已經(jīng)過(guò)時(shí)了。比如,我們給一個(gè)NBA迷推薦10年前的某個(gè)NBA新聞顯然是不太合適的(當(dāng)然這也不一定,比如用戶當(dāng)時(shí)就是在尋找舊的NBA新聞時(shí))。不同系統(tǒng)的物品具有不同的生
命周期,比如新聞的生命周期很短暫,而電影的生命周期相對(duì)較長(zhǎng)。
? 季節(jié)效應(yīng) -- 季節(jié)效應(yīng)主要反映了時(shí)間本身對(duì)用戶興趣的影響。比如人們夏天吃冰淇淋,冬天吃火鍋,夏天穿T恤,冬天穿棉衣。當(dāng)然,我們也不排除有特別癖好的人存在,但大部分用戶都是遵循這個(gè)規(guī)律的。除此之外,節(jié)日也是一種季節(jié)效應(yīng):每年的圣誕節(jié),人們都要去購(gòu)物;每年的奧斯卡頒獎(jiǎng)禮,人們都要關(guān)注電影。2011年ACM推薦大會(huì)的一個(gè)研討會(huì)曾經(jīng)舉辦過(guò)一次上下文相關(guān)的電影推薦算法比賽 ,該比賽要求參賽者預(yù)測(cè)數(shù)據(jù)集中用戶在奧斯卡頒獎(jiǎng)禮附近時(shí)刻的行為。關(guān)注季節(jié)效應(yīng)的讀者可以關(guān)注一下這個(gè)研討會(huì)上發(fā)表的相關(guān)論文。
時(shí)間效應(yīng)研究
在給定時(shí)間信息后,推薦系統(tǒng)從一個(gè)靜態(tài)系統(tǒng)變成了一個(gè)時(shí)變的系統(tǒng),而用戶行為數(shù)據(jù)也變成了時(shí)間序列。
研究一個(gè)時(shí)變系統(tǒng),需要首先研究這個(gè)系統(tǒng)的時(shí)間特性。包含時(shí)間信息的用戶行為數(shù)據(jù)集由一系列三元組構(gòu)成,其中每個(gè)三元組(u,i,t)代表了用戶u在時(shí)刻t對(duì)物品i產(chǎn)生過(guò)行為。
時(shí)效性
同時(shí)也要注意物品的生存周期和系統(tǒng)的時(shí)效性。不同類型網(wǎng)站的物品具有不同的生命周期,比如新聞的生命周期很短,而電影的生命周期很長(zhǎng)。
還有實(shí)時(shí)和非實(shí)時(shí)系統(tǒng),實(shí)現(xiàn)推薦系統(tǒng)的實(shí)時(shí)性除了對(duì)用戶行為的存取有實(shí)時(shí)性要求,還要求推薦算法本身具有實(shí)時(shí)性,而推薦算法本身的實(shí)時(shí)性意味著:
? 實(shí)時(shí)推薦系統(tǒng)不能每天都給所有用戶離線計(jì)算推薦結(jié)果,然后在線展示昨天計(jì)算出來(lái)的結(jié)果。所以,要求在每個(gè)用戶訪問(wèn)推薦系統(tǒng)時(shí),都根據(jù)用戶這個(gè)時(shí)間點(diǎn)前的行為實(shí)時(shí)計(jì)算推薦列表
? 推薦算法需要平衡考慮用戶的近期行為和長(zhǎng)期行為,即要讓推薦列表反應(yīng)出用戶近期行為所體現(xiàn)的興趣變化,又不能讓推薦列表完全受用戶近期行為的影響,要保證推薦列表對(duì)用戶興趣預(yù)測(cè)的延續(xù)性。
時(shí)間多樣性
提高推薦結(jié)果的時(shí)間多樣性需要分兩步解決:首先,需要保證推薦系統(tǒng)能夠在用戶有了新的行為后及時(shí)調(diào)整推薦結(jié)果,使推薦結(jié)果滿足用戶最近的興趣;其次,需要保證推薦系統(tǒng)在用戶沒有新的行為時(shí)也能夠經(jīng)常變化一下結(jié)果,具有一定的時(shí)間多樣性。
對(duì)于第一步,又可以分成兩種情況進(jìn)行分析。第一是從推薦系統(tǒng)的實(shí)時(shí)性角度分析。有些推薦系統(tǒng)會(huì)每天離線生成針對(duì)所有用戶的推薦結(jié)果,然后在線直接將這些結(jié)果展示給用戶。這種類型的系統(tǒng)顯然無(wú)法做到在用戶有了新行為后及時(shí)調(diào)整推薦結(jié)果。第二,即使是實(shí)時(shí)推薦系統(tǒng),由于使用的算法不同,也具有不同的時(shí)間多樣性。對(duì)于不同算法的時(shí)間多樣性,Neal Lathia博士在博士論文中進(jìn)行了深入探討 ,這里就不再詳述了。
那么,如果用戶沒有行為,如何保證給用戶的推薦結(jié)果具有一定的時(shí)間多樣性呢?一般的思路有以下幾種。
? 在生成推薦結(jié)果時(shí)加入一定的隨機(jī)性。比如從推薦列表前20個(gè)結(jié)果中隨機(jī)挑選10個(gè)結(jié)果展示給用戶,或者按照推薦物品的權(quán)重采樣10個(gè)結(jié)果展示給用戶。
? 記錄用戶每天看到的推薦結(jié)果,然后在每天給用戶進(jìn)行推薦時(shí),對(duì)他前幾天看到過(guò)很多次的推薦結(jié)果進(jìn)行適當(dāng)?shù)亟禉?quán)。
? 每天給用戶使用不同的推薦算法。可以設(shè)計(jì)很多推薦算法,比如協(xié)同過(guò)濾算法、內(nèi)容過(guò)濾算法等,然后在每天用戶訪問(wèn)推薦系統(tǒng)時(shí)隨機(jī)挑選一種算法給他進(jìn)行推薦。
相關(guān)算法
最近最熱門
在獲得用戶行為的時(shí)間信息后,最簡(jiǎn)單的非個(gè)性化推薦算法就是給用戶推薦最近最熱門的物品了。
在給定時(shí)間T,物品i最近的流行度可以定義為
α是時(shí)間衰減參數(shù)。
【個(gè)人感覺本質(zhì)是個(gè)反比例函數(shù)】
時(shí)間上下文相關(guān)的ItemCF算法
基于物品的個(gè)性化推薦時(shí)應(yīng)用最廣泛的。該算法由兩個(gè)核心部分構(gòu)成:
? 利用用戶行為離線計(jì)算物品之間的相似度;
? 根據(jù)用戶的歷史行為和物品相似度矩陣,給用戶做在線個(gè)性化推薦。
時(shí)間信息在上面兩個(gè)核心部分中都有重要的應(yīng)用,這體現(xiàn)在兩種時(shí)間效應(yīng)上。
? 物品相似度 用戶在相隔很短的時(shí)間內(nèi)喜歡的物品具有更高相似度。以電影推薦為例,用戶今天看的電影和用戶昨天看的電影其相似度在統(tǒng)計(jì)意義上應(yīng)該大于用戶今天看的電影和用戶一年前看的電影的相似度。
? 在線推薦 用戶近期行為相比用戶很久之前的行為,更能體現(xiàn)用戶現(xiàn)在的興趣。因此在預(yù)測(cè)用戶現(xiàn)在的興趣時(shí),應(yīng)該加重用戶近期行為的權(quán)重,優(yōu)先給用戶推薦那些和他近期喜歡的物品相似的物品。
在得到時(shí)間信息(用戶對(duì)物品產(chǎn)生行為的時(shí)間)后,我們可以通過(guò)如下公式改進(jìn)相似度計(jì)算用戶和物品相似度
為與時(shí)間有關(guān)的衰減項(xiàng)。其中
是用戶u對(duì)物品i產(chǎn)生行為的時(shí)間。f函數(shù)的含義是,用戶對(duì)物品i和物品j產(chǎn)生行為的世界越遠(yuǎn),
越小。
衰減函數(shù)
除了考慮時(shí)間信息對(duì)相關(guān)表的影響,我們也應(yīng)該考慮時(shí)間信息對(duì)預(yù)測(cè)公式的影響。一般來(lái)說(shuō),用戶現(xiàn)在的行為和用戶最近的行為關(guān)系更大。可以用以下方式修正:
其中,是當(dāng)前時(shí)間。上面公式表明,
,和物品j相似的物品在用戶u的推薦列表中獲得越高的排名。
為時(shí)間衰減參數(shù)。
作者:錦繡拾年
鏈接:https://www.jianshu.com/p/b92a2b87b83d
來(lái)源:簡(jiǎn)書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。