轉(zhuǎn)移
利用上下文信息進(jìn)行推薦,利用用戶訪問推薦系統(tǒng)的時(shí)間、地點(diǎn)、心情等進(jìn)行推薦。用戶上班下班的興趣不一樣,周末和上班興趣不一樣,上廁所閱讀和在辦公室閱讀不一樣。
時(shí)間:賣衣服的系統(tǒng)冬天跟夏天推薦的衣服;地點(diǎn):中關(guān)村附近不需要深圳的信息。
以看視頻為例,上班時(shí)間看下班后看,在家看還是在父母家看,一個(gè)人看和朋友一起看,都是上下文信息,結(jié)合上下文信息推薦會(huì)差別很大。
將上下文信息,尤其是地點(diǎn)和時(shí)間信息加到推薦算法中,讓推薦系統(tǒng)能準(zhǔn)確預(yù)測(cè)某個(gè)特定時(shí)間以及特定地點(diǎn)的興趣。
對(duì)于時(shí)間而言,對(duì)于用戶的影響表現(xiàn)在以下:
1、用戶的興趣是變化的,用戶自身的原因。隨著年齡的增長(zhǎng),小時(shí)候動(dòng)畫片,長(zhǎng)大以后文藝片。
一個(gè)人參加工作,他的興趣也會(huì)發(fā)生變化。我們要預(yù)測(cè)用戶現(xiàn)在的興趣就要關(guān)注他最近的行為。考慮用戶最近的興趣只能是漸變的興趣,對(duì)于突變的興趣很難起作用,如中彩票。
2、物品也有生命周期。如新聞事件,當(dāng)我們決定某個(gè)時(shí)間給某個(gè)用戶推薦某個(gè)物品的時(shí)候,也許它已經(jīng)過時(shí)了。不同的物品具有不同的周期,如電影的周期長(zhǎng)于新聞的周期。
3、季節(jié)效應(yīng),某個(gè)時(shí)段的效應(yīng)。夏天穿短袖,冬天厚外套,圣誕季購物,奧斯卡頒獎(jiǎng)期間關(guān)注電影。
用戶的興趣是不斷變化的,變化體現(xiàn)在用戶不斷增長(zhǎng)的新行為中。一個(gè)實(shí)時(shí)的推薦提供需要能響應(yīng)用戶的新行為,讓推薦列表不斷變化,滿足用戶不斷變化的新興趣。
實(shí)時(shí)推薦系統(tǒng)除了對(duì)于用戶行為的存取有實(shí)時(shí)的要求,還對(duì)推薦算法本身具有實(shí)時(shí)性要求。推薦系統(tǒng)不能每天給所有用戶離線計(jì)算推薦結(jié)果,需要根據(jù)用戶這個(gè)時(shí)間點(diǎn)的行為計(jì)算實(shí)時(shí)推薦列表。推薦算法需要平衡用戶的近期行為和長(zhǎng)期行為,既要反映出用戶近期行為所體現(xiàn)的興趣變化,又不能讓推薦列表完全受用戶近期行為影響,保證推薦列表對(duì)用戶興趣預(yù)測(cè)的連續(xù)性。
很多推薦系統(tǒng)面臨的問題是,每天給用戶推薦的結(jié)果都差不多,沒什么變化,即推薦系統(tǒng)的時(shí)間多樣性不高。推薦系統(tǒng)時(shí)間的多樣性對(duì)于推薦系統(tǒng)有正面意義。精度優(yōu)先,適當(dāng)提高時(shí)間多樣性。
如果你不知道推薦什么,推薦最近最熱門準(zhǔn)沒錯(cuò)。
近期的行為比遠(yuǎn)期的行為更能體現(xiàn)用戶的興趣,所以預(yù)測(cè)用戶行為的時(shí)候,加重近期行為的權(quán)重。
基于用戶的協(xié)同規(guī)律算法基本思想是給用戶推薦和他感興趣的用戶喜歡的物品。如果加上了時(shí)間信息,我們有優(yōu)化方向。1、如果用戶A06年喜歡C,07年java;用戶BA07年喜歡C,06年java;用戶C和A相同。那么如果沒有時(shí)間參數(shù)的情況下,用戶ABC是一樣的興趣度,實(shí)際上,我們更會(huì)認(rèn)為是不一樣的。根據(jù)用戶興趣發(fā)展路徑定義決策路徑圖。2、找到和當(dāng)前用戶興趣相似的一組用戶以后,向用戶推薦相似用戶最近喜歡的物品。
利用社交網(wǎng)絡(luò)的數(shù)據(jù)給用戶推薦物品,推薦理由加入了社交因素,如朋友也認(rèn)同,朋友關(guān)注了,信任度大大提升。
社交關(guān)系:雙向確認(rèn)的社交關(guān)系,單向關(guān)注的社交關(guān)系,社區(qū)的社交關(guān)系(通過位置、共屬一個(gè)群等,如豆瓣小組,一個(gè)公司一個(gè)學(xué)校的人)
社交化推薦的優(yōu)勢(shì):增加推薦的信任度,用戶不相信計(jì)算機(jī),但是相信好朋友的推薦。還可以直接解決冷啟動(dòng)的問題。
基于好友的推薦需要考量好友之間關(guān)系的權(quán)重,興趣的權(quán)重關(guān)系。
推薦系統(tǒng)數(shù)據(jù)存儲(chǔ),根據(jù)數(shù)據(jù)規(guī)模和是否需要實(shí)時(shí)存取來決定存儲(chǔ)媒介。需要實(shí)時(shí)存取的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫和緩存中,大規(guī)模的非實(shí)時(shí)存取數(shù)據(jù)存儲(chǔ)在分布式文件系統(tǒng)中HDFS。數(shù)據(jù)能否實(shí)時(shí)存取對(duì)于推薦系統(tǒng)十分重要,因?yàn)橹挥写罅靠焖佾@取到用戶新行為,才能實(shí)時(shí)適應(yīng)用戶當(dāng)前的需求,才能實(shí)時(shí)推薦。
推薦系統(tǒng)是聯(lián)系用戶和物品的媒介。而聯(lián)系用戶和物品的方式有三種。用戶喜歡物品,物品與其他物品相似,建立用戶與后面物品的聯(lián)系;用戶有相似興趣的用戶或好友用戶,后面的用戶喜歡物品,建立用戶與物品的關(guān)系;用戶具有喜歡某些特征,某些物品具有某些特征,建立用戶與物品的關(guān)系。實(shí)際上三種方式都可以抽象成一種,基于特征的推薦系統(tǒng)架構(gòu)。
當(dāng)用戶來了,為用戶生成特征,然后根據(jù)特征找到關(guān)聯(lián)的物品,最終生成推薦列表。推薦系統(tǒng)的任務(wù)有兩個(gè),一個(gè)是為用戶生成特征,二是根據(jù)特征找物品。
用戶特征有很多種,1、人口統(tǒng)計(jì)學(xué)特征,如年齡性別國家等注冊(cè)信息。2、行為特征,瀏覽過的物品,收藏,評(píng)分等行為。3、話題特征,根據(jù)用戶的歷史行為,計(jì)算出用戶對(duì)什么話題感興趣。
推薦系統(tǒng)的任務(wù)有很多:1、將新加入的物品推薦給用戶;2、將商業(yè)上需要宣傳的物品推薦給用戶;3、給用戶推薦不同種類的物品;4、給用戶推薦不同新穎度的物品,如首頁推薦熱門,到了推薦系統(tǒng)頁面推薦長(zhǎng)尾的物品;5考慮用戶訪問推薦系統(tǒng)的上下文。
如果要考慮上面的所有特征所有任務(wù)會(huì)使系統(tǒng)非常復(fù)雜, 很難通過配置文件方便的配置不同的特征和任務(wù)的權(quán)重。因此推薦系統(tǒng)的模式是,多個(gè)引擎,每個(gè)引擎負(fù)責(zé)一類的特征和一類的任務(wù),然后將結(jié)果按照一定的權(quán)重或者優(yōu)先級(jí)合并,排序然后返回。
這種做法的好處還有,1、可以方便的增加刪除引擎,控制不同引擎對(duì)推薦結(jié)果的影響,對(duì)于絕大多數(shù)的需求,只需要組合不同的引擎。2、可以實(shí)現(xiàn)推薦引擎級(jí)別的用戶反饋,每個(gè)引擎實(shí)際是一種策略,而不同的用戶喜歡不同的策略。通過分析用戶對(duì)于推薦結(jié)果的反饋了解用戶比較喜歡哪些策略的推薦,從而對(duì)引擎組裝權(quán)重。
推薦引擎的架構(gòu)分為三部分:
第一部分,從數(shù)據(jù)庫或緩存中拿到用戶數(shù)據(jù),通過不同的分析行為,輸出用戶的特征向量。
第二部分,將用戶的特征向量通過相關(guān)處理變?yōu)槌跫?jí)推薦物品列表。特征-物品相關(guān)推薦,離線表的形式(特征id,物品id,權(quán)重)
第三部分,對(duì)初始推薦列表進(jìn)行過濾,排名等處理,從而生成最終的推薦結(jié)果。
一個(gè)特征向量包括特征和特征權(quán)重。用戶的特征向量,一種是人口統(tǒng)計(jì)學(xué)特征,第二種是從用戶行為中計(jì)算出來的。用戶的行為有很多種,不同的種類權(quán)重不同。用戶行為時(shí)間也不同,相對(duì)來說,近期的行為比較重要。如果用戶對(duì)于熱門物品進(jìn)行了操作,并不能反映出個(gè)性,對(duì)于非熱門物品尤其是冷門的真實(shí)行為提高權(quán)重。
對(duì)于一個(gè)搜索引擎,可以在配置文件中配置很多的離線表以及它們的權(quán)重,在線服務(wù)時(shí),將這些相關(guān)表按照配置的權(quán)限相加,最后將最終的相關(guān)表保存在內(nèi)存中,給用戶推薦的時(shí)候已經(jīng)是加權(quán)以后的相關(guān)表了。特征-物品相關(guān)推薦還接受一個(gè)候選物品集合,候選物品集合的目的是保證推薦結(jié)果只包含候選物品集合中的物品。它的應(yīng)用場(chǎng)景是產(chǎn)品需求希望把某些類型的電視劇推薦給用戶,如有些產(chǎn)品是要求給用戶推薦最近一周加入的新物品,那么候選物品集合中包含最近一周添加的物品。
得到初始的推薦列表以后,不能直接呈現(xiàn)給用戶,還需要進(jìn)行過濾。用戶已經(jīng)產(chǎn)生行為的物品不要,候選物品以外的物品不需要,某些質(zhì)量很差的物品不需要。
排名模塊,1新穎度排名,向用戶推薦他們不知道的,長(zhǎng)尾中的物品。2多樣性,將推薦結(jié)果按照不同的類型氛圍積累,然后選擇類中排名最高的組合成為推薦列表,或者根據(jù)推薦理由來組織。3時(shí)間多樣性,保證用戶不要每天來看推薦系統(tǒng)的時(shí)候都是同樣的推薦結(jié)果,用戶沒有新的行為推薦列表內(nèi)容也更新。