日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

讀者讀完本文后,你會知道每類范式常用的算法有哪些、實(shí)現(xiàn)的思路是什么、以及常用的應(yīng)用場景。本文也可以作為讀者落地推薦算法到真實(shí)推薦場景的參考指南。

一、推薦算法與產(chǎn)品介紹

什么是推薦系統(tǒng)?

在介紹推薦算法之前需要先介紹一下什么是信息過載。

信息過載就是信息的數(shù)量遠(yuǎn)超于人手工可以遍歷的數(shù)量。比如,當(dāng)你沒有目的性的去逛超市,你不可能把所有的商品都看一遍都有什么。同樣,無論是去書店看書,還是在電影網(wǎng)站上搜索電影,這些物品的量級對于沒有目的性、需求性的用戶而言都是信息過載。

那么什么是推薦系統(tǒng)呢?

就是當(dāng)用戶的目的不明確、且該服務(wù)對于用戶而言構(gòu)成了信息過載;但該系統(tǒng)基于一定的策略規(guī)則,將物品進(jìn)行了排序,并將前面的物品展示給了用戶,這樣的系統(tǒng)就可以稱之為推薦系統(tǒng)。

舉例說明,在網(wǎng)站購物過程中,無論是天貓或者京東這樣的平臺,如果我們有明確的需求去搜索框里檢索。如希望買啤酒,那么檢索結(jié)果就是很多種類的啤酒;如果沒有明確的需求,就會有猜你喜歡等等模塊,這些模塊就是推薦系統(tǒng)基于一定的規(guī)則策略計(jì)算出來的,這些規(guī)則策略就是個性化推薦算法。

在工業(yè)級推薦系統(tǒng)的推薦業(yè)務(wù)流程一般分為召回和排序兩個階段,召回就是將用戶可能會感興趣的標(biāo)的物通過算法從全量標(biāo)的物庫中取出來,一般會采用多個算法來召回,比如熱門召回、協(xié)同過濾召回、標(biāo)簽召回等,排序階段將召回階段的標(biāo)的物列表根據(jù)用戶可能的點(diǎn)擊概率大小排序(即所謂的ctr預(yù)估)。在實(shí)際業(yè)務(wù)中,在排序后還會增加一層調(diào)控邏輯,根據(jù)業(yè)務(wù)規(guī)則及運(yùn)營策略對排序后的列表進(jìn)一步增補(bǔ)微調(diào),滿足特定的運(yùn)營需求。

個性化召回

1、什么是個性化召回? 在item全集中選取一部分作為候選集。這里就存在一個問題,就是說為什么要選取一部分作為作為候選集,而不是全部?其原因在于:

  • 1.不同的用戶不會喜歡所有類型的item;
  • 2.基于服務(wù)性能的考慮,如果選擇了全部的item作為候選集,對于后續(xù)的排序就將耗費(fèi)大量的時間,對于整體推薦的后端,服務(wù)響應(yīng)時間將會是災(zāi)難性的。

根據(jù)用戶的屬性行為上下文等信息從物品全集中選取其感興趣的物品作為候選集。

下面舉例說明:

如果某個推薦系統(tǒng)中,物品全集是如下左圖中9個item,這里有兩個用戶A和B,他們分別對不同的item感興趣。這里拿信息流產(chǎn)品舉例,如果user A對體育類新聞感興趣,user B對娛樂類新聞感興趣,那就按照簡單的類別召回,得到結(jié)果如下右圖所示。

在候選集{a,b,c,….,g,h,i}中為User A,User B選取一部分item作為候選集

個性化推薦算法(推薦系統(tǒng))概要

 

2、召回的重要作用 召回決定了最終推薦結(jié)果的天花板

為什么這么說呢?這里先看一下推薦系統(tǒng)的整體架構(gòu),工業(yè)中的個性化推薦系統(tǒng)中的策略部分的架構(gòu)主要由一下三部分構(gòu)成:召回、排序、以及最后的策略調(diào)整部分(同上文提到),其中召回部分包括各路個性化召回之后將所有的item merge進(jìn)入rank部分,rank只是調(diào)整召回完item的展現(xiàn)順序,rank完之后還有一些策略的調(diào)整,比如信息流場景中的控制相同作者的數(shù)目等等,所以可以看到個性化召回的候選集是多么的重要,因?yàn)樽罱K展現(xiàn)給用戶的就是從這個候選集中選出來的。那么就可能會有疑問,為什么不能將所有的item進(jìn)行排序?這是為了保證后端響應(yīng)時間。

個性化推薦算法(推薦系統(tǒng))概要

 

與用戶離的最近的是端,在移動互聯(lián)網(wǎng)的時代主要的流量集中在了移動App也可以是網(wǎng)站前端。連接接前后端的是WEB API層。WEB層主要給APP端提供API服務(wù),解析端上發(fā)來的請求,調(diào)用后端rpc服務(wù)。得到的結(jié)果投全到端上。web api層盡量不做策略業(yè)務(wù)邏輯,但是會做一些諸如log寫實(shí)時信息隊(duì)列,或?qū)懛植际酱鎯@樣的事情來方便后續(xù)的數(shù)據(jù)分析和模型訓(xùn)練。

最后是后端的RPC服務(wù)。個性化推薦算法主要發(fā)揮作用的部分。

RPC服務(wù)的三大策略部分。

  • 第一:個性化召回,基于用戶的行為,通過算法模型來為用戶精準(zhǔn)推薦?;蚧谟脩舢嬒竦臉?biāo)簽推薦同類型的item。舉個栗子,如果某個用戶過往經(jīng)常點(diǎn)擊體育類的item,那么用戶畫像就給她標(biāo)上體育的lable。那么有較新的體育類新聞,會優(yōu)先推薦給改用戶。召回決定了最終推薦結(jié)果的天花板,因?yàn)檫@一步?jīng)Q定了候選集。
  • 第二部分:排序部分。第一部分召回了用戶感興趣的物品集合后,我們需要決策 出展現(xiàn)給用戶的順序。好的順序可以讓用戶在列表的開始找到自己的所需,完成轉(zhuǎn)化。因?yàn)橛脩舻拿恳淮蜗吕际怯谐杀镜?,如何不能在最初的幾屏里,顯示用戶的所需,用戶就很可能流失掉。結(jié)合剛才召回所舉的例子,給用戶召回了體育類的item,不同的item可能會有不同的瀏覽人數(shù),評論人數(shù),發(fā)布時間,不同的字?jǐn)?shù),不同的時長,不同的發(fā)布時間等等,同樣該用戶也有體育類的細(xì)分的傾向性。
  • 第三部分:策略調(diào)整部分,基于業(yè)務(wù)場景的策略調(diào)整部分。由于召回和排序大多數(shù)是基于模型來做的,所以基于業(yè)務(wù)場景的策略調(diào)整部分可以增加一些規(guī)則來fit業(yè)務(wù)場景。比如在信息流場景中,我們不希望給用戶一直連續(xù)推薦同一個作者的新聞,我們可以加一些打散的策略。

3、工業(yè)界個性化召回架構(gòu)

個性化推薦算法(推薦系統(tǒng))概要

 

整體的召回架構(gòu)可以分為兩大類:

  • 第一大類是離線模型

根據(jù)用戶行為基于離線的model file算出推薦結(jié)果,這些推薦結(jié)果可以是用戶喜歡哪些item集合,也可以是item之間的相似度文件 ,計(jì)算出具有某種lable的item的排序。然后離線計(jì)算好的排序的文件寫入KV存儲。在用戶訪問服務(wù)的時候,Recall部分直接從KV中讀取。因?yàn)槲覀冎苯哟鎯Φ氖莍tem ID,我們讀取到的item id的時候還需要去Detail Server中得到每個item id的詳情,然后將詳情拼接好傳給rank。(在線的server recall部分直接調(diào)用這個結(jié)果,拿到ID之后訪問detail server得到詳情,再往rank部分傳遞)

  • 第二大類是深度學(xué)習(xí)模型

如果采用深度學(xué)習(xí)的一些model,這是需要將model file算出來的item embedding的向量也需要離線存入KV中,但是用戶在訪問我們的KV的時候,在線訪問深度學(xué)習(xí)模型服務(wù)(recall server)的User embedding。同時去將user embedding層的向量和item embedding層的向量做最近鄰計(jì)算,并得到召回。

下面是電視貓(一款基于OTT端[智能電視或者智能盒子]的視頻播放軟件)的推薦系統(tǒng)的業(yè)務(wù)流程,包含召回、排序和業(yè)務(wù)調(diào)控三大算法和策略模塊,可以作為大家設(shè)計(jì)推薦系統(tǒng)算法模塊的參考。

個性化推薦算法(推薦系統(tǒng))概要

 

推薦算法是一種機(jī)器學(xué)習(xí)算法,所以算法模型的質(zhì)量強(qiáng)依賴于用于算法訓(xùn)練的數(shù)據(jù)集,這里我們簡單提下推薦系統(tǒng)可以利用的數(shù)據(jù)有哪些(參考下面圖及上面圖的數(shù)據(jù)源)。一般推薦系統(tǒng)依賴三大類數(shù)據(jù):標(biāo)的物metadata數(shù)據(jù)(標(biāo)的物相關(guān)的描述信息)、用戶畫像數(shù)據(jù)(用戶相關(guān)數(shù)據(jù),如年齡、地域、性別、收入等)、用戶行為數(shù)據(jù)(用戶對標(biāo)的物的操作行為,如播放、點(diǎn)擊、購買、收藏等)。這三類數(shù)據(jù)是主要可用的模型數(shù)據(jù)。另外人工標(biāo)注數(shù)據(jù)、第三方數(shù)據(jù)等也可以用來補(bǔ)充完善上述三類數(shù)據(jù)。

個性化推薦算法(推薦系統(tǒng))概要

 

相信大家對推薦流程及算法依賴的數(shù)據(jù)有了初步了解,下面我們來根據(jù)不同的推薦范式重點(diǎn)講解對應(yīng)的推薦產(chǎn)品及可行的推薦算法,方便大家將不同的推薦算法對應(yīng)到不同的推薦產(chǎn)品中。

上面我們提到的5類推薦范式,可以從三個維度來理解:

  • 一個是用戶維度 -一 個是標(biāo)的物維度
  • 一個是用戶與標(biāo)的物笛卡爾積維度

從用戶維度來看就是為用戶推薦可能感興趣的標(biāo)的物,從標(biāo)的物維度來看,就是用戶在訪問標(biāo)的物詳情頁(或者退出標(biāo)的物詳情頁)時,關(guān)聯(lián)一組標(biāo)的物作為推薦。第三個維度是將用戶維度和標(biāo)的物維度結(jié)合起來,不同的用戶訪問同樣的標(biāo)的物詳情頁看到的內(nèi)容也不一樣。

1. 基于用戶維度的推薦

基于用戶維度的推薦可以根據(jù)個性化的力度分為非個性化、群組個性化、完全個性化。這三種粒度對應(yīng)我們前面提到的非個性化范式、群組個性化范式、完全個性化范式。

非個性化是每個用戶看到的推薦內(nèi)容都完全一樣,傳統(tǒng)門戶網(wǎng)站的編輯對內(nèi)容的編排就是非個性化的方式,每個用戶看到的內(nèi)容都是一樣的。對于各類網(wǎng)站或者APP的排行榜的推薦形態(tài)也是非個性化的。下面圖是網(wǎng)易云音樂的排行榜推薦,根據(jù)各個維度計(jì)算各類榜單。

個性化推薦算法(推薦系統(tǒng))概要

 

群組個性化就是將相同特征的用戶聚合成一組,同一組用戶在某些特征上具備相似性,我們?yōu)檫@一組用戶推薦完全一樣的內(nèi)容。

精細(xì)化運(yùn)營一般會采用該方式,通過用戶畫像系統(tǒng)圈一批人,并對這批人做統(tǒng)一的運(yùn)營。比如視頻行業(yè)的會員精細(xì)化運(yùn)營,當(dāng)會員快到期時,可以借助精準(zhǔn)運(yùn)營留住用戶,具體可以將快到期的會員用戶圈出來,針對這批用戶做會員打折活動,促進(jìn)用戶產(chǎn)生新的購買。

下圖是電視貓電視劇頻道”戰(zhàn)爭風(fēng)云“tab的基于群組的個性化重排序。我們將用戶根據(jù)興趣分組(聚類),同一組內(nèi)的用戶看到的內(nèi)容是一樣的順序,但是不同組的用戶的排序是不一樣的。但是不管哪個用戶其實(shí)看到的內(nèi)容集合(戰(zhàn)爭風(fēng)云tab的全部內(nèi)容)是相同的,只不過根據(jù)用戶的興趣做了排序,把用戶更喜歡的內(nèi)容排在了前面。

個性化推薦算法(推薦系統(tǒng))概要

 

對于天貓這類購物網(wǎng)站來說,對未登錄用戶或是冷啟動的用戶,可以采用基于人群屬性來做推薦。通過將用戶按照性別、年齡段、收貨城市等粗粒度的屬性劃分為若干人群,然后基于每個人群的行為數(shù)據(jù)挑選出該人群點(diǎn)擊率最高的TopK個商品作為該人群感興趣的商品推薦給他們。該方法也是一種群組個性化推薦策略。

完全個性化就是為每個用戶推薦的內(nèi)容都不一樣,是根據(jù)用戶的行為及興趣來為用戶做推薦,是最常用的一種推薦形式。大多數(shù)時候我們所說的推薦就是指這種形式的推薦。下圖是淘寶首頁的猜你喜歡推薦,這個推薦就是完全個性化的,每個人推薦的都不一樣。

個性化推薦算法(推薦系統(tǒng))概要

 

完全個性化也可以基于用戶的好友關(guān)系來做推薦。下面圖是微信最近上線的好物推薦,是基于社交關(guān)系的個性化推薦,將你的好友買過的商品推薦給你。

個性化推薦算法(推薦系統(tǒng))概要

 

從另外一個角度看,完全個性化推薦可以分為只基于用戶個人行為的推薦和基于群組行為的推薦?;趥€人行為的推薦,在構(gòu)建推薦算法時只依賴個人的行為,不需要其他用戶的行為,常見的基于內(nèi)容推薦就是這類推薦?;谌航M行為的推薦,除了利用自己的行為外,還依賴其他用戶的行為構(gòu)建算法模型,這類推薦可以認(rèn)為是全體用戶的“協(xié)同進(jìn)化“,像協(xié)同過濾、基于模型的推薦等都是這類推薦形式。

2. 基于標(biāo)的物維度的推薦

基于標(biāo)的物維度的推薦是用戶在訪問標(biāo)的物詳情頁時,或者訪問后退出時,關(guān)聯(lián)一批相似或者相關(guān)的標(biāo)的物列表,對應(yīng)我們上面提到的標(biāo)的物關(guān)聯(lián)標(biāo)的物范式。下圖是電視貓APP節(jié)目詳情頁的相似影片,就是常見的一類標(biāo)的物關(guān)聯(lián)標(biāo)的物的推薦模式。

個性化推薦算法(推薦系統(tǒng))概要

 

除了視頻網(wǎng)站外,電商、短視頻等APP都大量使用基于標(biāo)的物維度的推薦。下圖分別是淘寶APP和網(wǎng)易新聞APP上的標(biāo)的物關(guān)聯(lián)標(biāo)的物推薦。淘寶APP上當(dāng)你點(diǎn)擊某個衣服詳情頁后從該詳情頁退出,就會在該衣服圖片下面用小圖展示4個相關(guān)的衣服(下面左圖紅色圈圈部分),網(wǎng)易新聞視頻模塊當(dāng)你點(diǎn)擊播放一個視頻超過幾秒后就會在該視頻下面展示一行相關(guān)視頻(見下面右圖紅色圈圈部分),如果你一直播放,當(dāng)該視頻播完后會播放后面的相似視頻,最終形成連播推薦的效果。這兩款A(yù)PP的相似推薦都是非常好的推薦形態(tài),交互非常自然流暢,毫無違和感。

3. 基于用戶和標(biāo)的物交叉維度的推薦

這類推薦,不同用戶對同一個標(biāo)的物的關(guān)聯(lián)推薦是不一樣的,對應(yīng)我們上面提到的笛卡爾積范式。還是拿電視貓來舉例,如果該推薦是用戶與標(biāo)的物笛卡爾積式的推薦的話,不同用戶看到雙重約會這個電影,下面的相似影片是不一樣的,推薦會整合用戶的興趣特征,過濾掉用戶已經(jīng)看過的電影等等。對于搜索來說,不同的人搜索同一個關(guān)鍵詞得到的搜索結(jié)果及排序是不同的,搜索結(jié)果及排序整合了個人的歷史行為特征及興趣。

個性化推薦算法(推薦系統(tǒng))概要

 

這類推薦由于每個用戶在每個標(biāo)的物上的推薦列表都不一樣,我們沒法事先將所有的組合算出并存下來(否則存儲量是用戶數(shù) × 標(biāo)的物數(shù),對于互聯(lián)網(wǎng)公司,這個數(shù)量是巨大的),我們必須在用戶請求的過程中快速地為用戶計(jì)算個性化的推薦列表,這對整個推薦系統(tǒng)的架構(gòu)有更高的要求,所以在實(shí)際場景中用得比較少。

二、召回算法概述

一、推薦召回算法概述

1. 非個性化范式 非個性化范式就是所有用戶推薦一樣的標(biāo)的物列表,一般各種榜單就是這類推薦,如最新榜、最熱榜等等。這類排行榜就是基于某個規(guī)則來對標(biāo)的物降序排列,將排序后的標(biāo)的物取topN推薦給用戶。比如最新榜可以根據(jù)標(biāo)的物上線的時間順序來倒序排列,取前面的topN推薦給用戶。最熱榜可以根據(jù)用戶播放量(點(diǎn)擊量)降序排列。

這里面可能需要考慮標(biāo)的物的多品類特性,甚至還會考慮地域、時間、價格等各個維度。在具體實(shí)施時會比較復(fù)雜,需要根據(jù)具體的產(chǎn)品及業(yè)務(wù)場景來設(shè)計(jì)。

非個性化范式可以基于簡單的計(jì)數(shù)統(tǒng)計(jì)來生成推薦,基本不會用到很復(fù)雜的機(jī)器學(xué)習(xí)算法。當(dāng)然,用來取topN的排行榜計(jì)算公式可能會整合各類用戶行為數(shù)據(jù),公式會比較復(fù)雜(如豆瓣評分公式就比較復(fù)雜)。

非個性化范式的排行榜等算法,實(shí)現(xiàn)起來很簡單,可解釋性也很強(qiáng)。雖然每個用戶推薦的內(nèi)容都一樣,但是(從生物進(jìn)化上)人都是有從眾心理的,大家都喜歡的東西,我們也喜歡的概率還是很大的,所以這類推薦效果還是非常不錯的。這類算法也可以作為冷啟動或者默認(rèn)的推薦算法。

2. 完全個性化范式

完全個性化范式是最常用的推薦模式,可用的推薦方法非常多。下面對常用的算法及最新的算法進(jìn)展進(jìn)行簡單梳理。

(1)基于內(nèi)容的個性化推薦算法

這類推薦算法只依賴于用戶自己的歷史行為而不必知道其他用戶的行為。該算法的核心思想是:標(biāo)的物是有描述屬性的,用戶對標(biāo)的物的操作行為為用戶打上了相關(guān)屬性的烙印,這些屬性就是用戶的興趣標(biāo)簽,那么我們就可以基于用戶的興趣來為用戶生成推薦列表。拿視頻推薦來舉例,如果用戶過去看了科幻和恐怖兩類電影,那么恐怖、科幻就是用戶的偏好標(biāo)簽了,這時我們就可以給用戶推薦科幻、恐怖類的其他電影。具體來說,我們有如下兩類方法來為用戶做推薦。

  • a 基于用戶特征表示的推薦

標(biāo)的物是具備很多文本特征的,比如標(biāo)簽、描述信息、metadata信息等。我們可以將這些文本信息采用TF-IDF或者LDA等算法轉(zhuǎn)化為特征向量,如果是用標(biāo)簽來描述標(biāo)的物,那么我們可以構(gòu)建一個以標(biāo)簽為特征的特征向量。

有了特征向量,就可以將用戶所有操作過的標(biāo)的物的特征向量的(時間加權(quán))平均作為用戶的特征向量,利用用戶特征向量與標(biāo)的物特征向量的乘積就可以計(jì)算用戶與標(biāo)的物的相似度,從而計(jì)算出用戶的推薦列表。

  • b 基于倒排索引查詢的推薦

如果我們基于標(biāo)簽來表示標(biāo)的物屬性,那么基于用戶的歷史行為,可以構(gòu)建用戶的興趣畫像,該畫像即是用戶對各個標(biāo)簽的偏好,并且有相應(yīng)的偏好權(quán)重。

構(gòu)建完用戶畫像后,我們可以構(gòu)建出標(biāo)簽與標(biāo)的物的倒排索引查詢表(熟悉搜索的同學(xué)應(yīng)該不難理解)。基于該反向索引表及用戶的興趣畫像,我們就可以為用戶做個性化推薦了。該類算法其實(shí)就是基于標(biāo)簽的召回算法。

具體推薦過程是這樣的(見下面圖):從用戶畫像中獲取用戶的興趣標(biāo)簽,基于用戶的興趣標(biāo)簽從倒排索引表中獲取該標(biāo)簽對應(yīng)的節(jié)目,這樣就可以從用戶關(guān)聯(lián)到節(jié)目了。其中用戶的每個興趣標(biāo)簽及標(biāo)簽關(guān)聯(lián)到的標(biāo)的物都是有權(quán)重的。

個性化推薦算法(推薦系統(tǒng))概要

 

該類推薦算法是非常自然直觀的,可解釋性強(qiáng)。同時可以較好地解決冷啟動,只要用戶有一次行為,就可以基于該行為做推薦。但是,該類算法往往新穎性不足,給用戶的推薦往往局限在一個狹小的范圍中,如果用戶不主動拓展自己的興趣空間,該方法很難為用戶推薦新穎的內(nèi)容。

(2)基于協(xié)同過濾的推薦算法

基于協(xié)同過濾的推薦算法,核心思想是很樸素的”物以類聚、人以群分“的思想。所謂物以類聚,就是計(jì)算出每個標(biāo)的物最相似的標(biāo)的物列表,我們就可以為用戶推薦用戶喜歡的標(biāo)的物相似的標(biāo)的物,這就是基于物品的協(xié)同過濾。所謂人以群分,就是我們可以將與該用戶相似的用戶喜歡過的標(biāo)的物(而該用戶未曾操作過)的標(biāo)的物推薦給該用戶,這就是基于用戶的協(xié)同過濾。具體思想可以參考下圖。

個性化推薦算法(推薦系統(tǒng))概要

 

協(xié)同過濾的核心是怎么計(jì)算標(biāo)的物之間的相似度以及用戶之間的相似度。我們可以采用非常樸素的思想來計(jì)算相似度。

我們將用戶對標(biāo)的物的評分(或者隱式反饋,如點(diǎn)擊等)構(gòu)建如下矩陣(見下) 矩陣的某個元素代表某個用戶對某個標(biāo)的物的評分(如果是隱式反饋,值為1),如果某個用戶對某個標(biāo)的物未產(chǎn)生行為,值為0。其中行向量代表某個用戶對所有標(biāo)的物的評分向量,列向量代表所有用戶對某個標(biāo)的物的評分向量。有了行向量和列向量,我們就可以計(jì)算用戶與用戶之間、標(biāo)的物與標(biāo)的物之間的相似度了。具體來說,行向量之間的相似度就是用戶之間的相似度,列向量之間的相似度就是標(biāo)的物之間的相似度。相似度的計(jì)算可以采用cos余弦相似度算法。

在互聯(lián)網(wǎng)產(chǎn)品中一般會采用基于物品的協(xié)同過濾,因?yàn)閷τ诨ヂ?lián)網(wǎng)產(chǎn)品來說,用戶相對于標(biāo)的物變化更大,用戶是增長較快的,標(biāo)的物增長相對較慢,利用基于物品的協(xié)同過濾算法效果更穩(wěn)定。

協(xié)同過濾算法思路非常直觀易懂,計(jì)算也相對簡單,易于分布式實(shí)現(xiàn),也不依賴于用戶及標(biāo)的物的其他信息,效果也非常好,也能夠?yàn)橛脩敉扑]新穎性內(nèi)容,所以在工業(yè)界得到非常廣泛的應(yīng)用。

(3)基于模型的推薦算法

基于模型的推薦算法種類非常多,最常用的有矩陣分解算法、分解機(jī)算法等。目前深度學(xué)習(xí)算法、強(qiáng)化學(xué)習(xí)算法、遷移學(xué)習(xí)算法也在推薦系統(tǒng)中得到大規(guī)模采用。

基于模型的推薦算法,基于用戶歷史行為數(shù)據(jù)、標(biāo)的物metadata、用戶畫像數(shù)據(jù)等構(gòu)建一個機(jī)器學(xué)習(xí)模型,利用數(shù)據(jù)訓(xùn)練模型,求解模型參數(shù)。最終利用該模型來預(yù)測用戶對未知標(biāo)的物的偏好。下面圖就是基于模型的推薦系統(tǒng)模型訓(xùn)練與預(yù)測的流程。

個性化推薦算法(推薦系統(tǒng))概要

 

基于模型的推薦算法有三類預(yù)測方式,一類是預(yù)測標(biāo)的物的評分,基于評分的大小表示對標(biāo)的物的偏好程度。第二類是采用概率的思路,預(yù)測用戶對標(biāo)的物的喜好概率,利用概率值的大小來預(yù)測用戶對標(biāo)的物的喜好程度。另外一類是采用分類的思路,將每個標(biāo)的物看成一類,通過預(yù)測用戶下一個(幾個)標(biāo)的物所屬的類別來做推薦。矩陣分解算法就是預(yù)測用戶對標(biāo)的物的評分,logistic回歸算法就是概率預(yù)測方法,而youtube發(fā)表的深度學(xué)習(xí)推薦就是基于分類思路的算法(參見參考文獻(xiàn)10)。

矩陣分解算法是將用戶評分矩陣M分解為兩個矩陣U、V的乘積。U代表的用戶特征矩陣,V代表標(biāo)的物特征矩陣。某個用戶對某個標(biāo)的物的評分,就可以采用矩陣U對應(yīng)的行(該用戶的特征向量)與矩陣V對應(yīng)的列(該標(biāo)的物的特征向量)的乘積。分解機(jī)算法是矩陣分解算法的推廣,這里不做介紹。

隨著最近幾年深度學(xué)習(xí)在圖像識別、語音識別領(lǐng)域的大獲成功。有很多研究者及工業(yè)實(shí)踐者將深度學(xué)習(xí)用于推薦系統(tǒng),也取得了非常好的成績,如youtube、Netflix、阿里、京東、網(wǎng)易、攜程等,都將深度學(xué)習(xí)部署到了實(shí)際推薦業(yè)務(wù)中,并取得了非常好的轉(zhuǎn)化效果(參考后面的參考文獻(xiàn)中對應(yīng)的論文)。

強(qiáng)化學(xué)習(xí)及遷移學(xué)習(xí)等新的方法也開始在推薦業(yè)務(wù)中嶄露頭角,有興趣的讀者可以閱讀文末對應(yīng)的參考文獻(xiàn)。

3. 群組個性化范式

群組個性化范式需要先將用戶分組,分組的原則是非常重要的。一般有如下兩類分組方案。

(1)基于用戶畫像圈人的推薦

先基于用戶的人口統(tǒng)計(jì)學(xué)數(shù)據(jù)或者用戶行為數(shù)據(jù)構(gòu)建用戶畫像。用戶畫像一般用于做精準(zhǔn)的運(yùn)營,通過顯示特征將一批人圈起來,對這批人做針對性的運(yùn)營。在前面也做了介紹,這里不再說明。

(2)采用聚類算法的推薦

聚類是非常直觀的一種思路,將行為偏好相似的用戶聚成一類,他們有相似的興趣。常用的聚類策略有如下兩類。

  • a 將用戶嵌入一個高維向量空間,基于用戶的向量表示做聚類

將用戶相關(guān)特征嵌入向量空間的方式有很多,下面都是非常主流的做法。

采用基于內(nèi)容推薦的思路,可以構(gòu)建用戶的特征向量(TF-IDF,LDA,標(biāo)簽等,前面已經(jīng)介紹過)。有了用戶的特征向量就可以聚類,該類所有用戶特征向量的加權(quán)平均就是該組用戶的特征向量,再利用群組特征向量與標(biāo)的物特征向量的內(nèi)積來計(jì)算群組與標(biāo)的物的相似度,從而為該群組做個性化推薦。

采用基于用戶的協(xié)同過濾的思路,可以構(gòu)建用戶和標(biāo)的物的行為矩陣,矩陣的元素就是用戶對標(biāo)的物的評分,利用該矩陣的行向量就構(gòu)建了一個衡量用戶特征的向量,基于該特征向量可以對用戶聚類。先對該組用戶所有的特征向量求均值,可以取k個最大的特征,其他特征忽略不計(jì)(設(shè)置為0),最終得到該組用戶的特征。最后就可以根據(jù)基于用戶協(xié)同過濾的思路來為該組用戶計(jì)算推薦列表了。

利用矩陣分解可以得到每個用戶的特征向量,我們可以用該組用戶特征向量的均值來作為該用戶組的特征向量。再利用用戶組的特征向量與標(biāo)的物特征向量的內(nèi)積來計(jì)算群組對該標(biāo)的物的偏好,所有偏好計(jì)算出來后,通過降序排列就可以為該組用戶推薦topN的標(biāo)的物列表了。前面我們提到的電視貓的重排序算法就是基于該思路實(shí)現(xiàn)的。

還可以基于詞嵌入的方式,將每個用戶對標(biāo)的物的所有操作(購買、觀看等)看成一個文檔集合,標(biāo)的物的sid就是一個單詞,采用類似word2vec的方式可以獲得標(biāo)的物的向量表示(見參考文獻(xiàn)9),那么用戶的向量表示就是用戶操作過的所有標(biāo)的物的向量表示的均值(可以采用時間加權(quán),對最早操作的標(biāo)的物給予最低的權(quán)重),這樣就獲得了每個用戶的特征向量了。該組所有用戶的平均特征向量就是該組的特征向量。這時可以采用類似上面矩陣分解的方式計(jì)算該組特征向量與標(biāo)的物特征向量的內(nèi)積為該組用戶做個性化推薦。

除了上面幾種計(jì)算群組推薦的方法外,還有一種基于計(jì)數(shù)統(tǒng)計(jì)的更直觀的推薦方法。當(dāng)我們對用戶進(jìn)行聚類后,我們可以對這一組用戶操作過的標(biāo)的物采用計(jì)數(shù)的方式統(tǒng)計(jì)每個標(biāo)的物被操作的次數(shù),將同一標(biāo)的物的操作次數(shù)累加,最后按照標(biāo)的物計(jì)數(shù)大小按照降序排列。 將標(biāo)的物列表topn推薦給該組,這個topN列表就是絕大多數(shù)人喜歡的標(biāo)的物。

  • b 基于圖的聚類

我們可以構(gòu)建用戶關(guān)系圖,頂點(diǎn)是用戶,邊是用戶之間的關(guān)系,我們可以采用圖的分割技術(shù),將圖分割成若干個聯(lián)通子圖,這些子圖即是用戶的聚類。還有一種方法是將圖嵌入到高維向量空間中,這樣就可以采用kmeans聚類方法做聚類了。有了用戶的聚類就可以采用上面基于計(jì)數(shù)統(tǒng)計(jì)的直觀方法做推薦了,或者采用更復(fù)雜的方案做推薦。

那怎么構(gòu)建用戶關(guān)系圖呢?一般有兩種方法。如果是社交類產(chǎn)品,可以基于社交關(guān)系來構(gòu)建用戶關(guān)系圖,用戶之間的邊,代表好友關(guān)系。如果是非社交類產(chǎn)品,如果兩個用戶對同一標(biāo)的物都有操作行為,那么這兩個用戶之間可以構(gòu)建一條邊。

群組個性化推薦的優(yōu)勢是每組給出一樣的推薦,可以減少推薦的計(jì)算和存儲。但該方案有一個最大的問題,同一組推薦一樣的標(biāo)的物列表,很可能對某個用戶來說,推薦的標(biāo)的物他已經(jīng)看過,但是其他用戶沒有看過,所以無法過濾掉該標(biāo)的物,針對某些用戶推薦體驗(yàn)不夠好。另外,同一組用戶在興趣特征上多少是有差別的,無法精細(xì)地照顧到每個用戶的興趣點(diǎn)。

群組個性化推薦的思路和優(yōu)點(diǎn)也可以用于完全個性化范式的推薦??梢詫⒂脩粝确纸M,每一個分組看成一個等價類(熟悉數(shù)學(xué)的同學(xué)應(yīng)該很容易理解,不熟悉的同學(xué)可以理解為一個興趣小組),同一組的用戶當(dāng)成一個用戶,這樣就可以利用完全個性化范式中的算法思路來做推薦。google在07年發(fā)表的一篇論文(參考文獻(xiàn)17)就是采用該思路的協(xié)同過濾實(shí)現(xiàn)。將用戶分組可以減少計(jì)算量,支持大規(guī)模并行計(jì)算。

4. 標(biāo)的物關(guān)聯(lián)標(biāo)的物范式

標(biāo)的物關(guān)聯(lián)標(biāo)的物就是為每個標(biāo)的物推薦一組標(biāo)的物。該推薦范式的核心是怎么從一個標(biāo)的物關(guān)聯(lián)到一組標(biāo)的物。這種關(guān)聯(lián)關(guān)系可以是相似的,也可以是基于其他維度的關(guān)聯(lián)。常用的推薦策略是相似推薦。下面給出4種常用的生成關(guān)聯(lián)推薦的策略。

(1)基于內(nèi)容的推薦

這類方法一般可以利用已知的數(shù)據(jù)和信息利用向量來描述標(biāo)的物,如果每個標(biāo)的物都被向量化了,那么我們就可以利用向量之間的相似度來計(jì)算標(biāo)的物之間的相似度。

如果標(biāo)的物是新聞等文本信息,可以采用TF-IDF將標(biāo)的物映射為詞向量,我們可以通過詞向量的相似度來計(jì)算標(biāo)的物之間的相似度。

即使不是文本,只要標(biāo)的物具備metadata等文本信息,也可以采用該方法。很多互聯(lián)網(wǎng)產(chǎn)品是具備用戶評論功能的,這些評論文本就可以看成是標(biāo)的物的描述信息。

LDA模型也非常適合文本類的推薦,通過LDA模型將文章(文檔)表示為主題及相關(guān)詞的概率,我們可以通過如下方式計(jì)算兩個文檔的相似度:先計(jì)算兩個文檔某個主題的相似度,將所有主題的相似度加權(quán)平均就可以得到兩篇文檔的相似度,而主題的相似度可以采用主題的詞向量的余弦內(nèi)積來表示。

(2)基于用戶行為的推薦

在一個成熟的推薦產(chǎn)品中,會包含很多用戶的行為,如用戶的收藏、點(diǎn)贊、購買、播放、瀏覽、搜索等,這些行為代表了用戶對標(biāo)的物的某種偏好。我們可以基于該用戶行為來進(jìn)行關(guān)聯(lián)推薦。具體的策略有如下4類。

  • a 比如常用的矩陣分解算法

可以將用戶的行為矩陣分解為用戶特征矩陣和物品特征矩陣,物品特征矩陣可以看成是衡量物品的一個向量,利用該向量我們就可以計(jì)算兩個標(biāo)的物之間的相似度了。

  • b 采用嵌入的思路做推薦

用戶的所有行為可以看成是一個文檔,每個標(biāo)的物可以看成是一個詞,我們可以采用類似word2vec的思路,最終訓(xùn)練出每個詞(即標(biāo)的物)的向量表示,利用該向量表示可以計(jì)算標(biāo)的物之間的相似度。

  • c 我們可以將用戶對標(biāo)的物的所有操作行為投射到一個二維表(或者矩陣)上

行是用戶,列是標(biāo)的物,表中的元素就是用戶對該標(biāo)的物的操作(評分或者點(diǎn)擊等隱式行為),通過這種方式我們就構(gòu)建了一個二維表。這個二維表的列向量就可以用來表示標(biāo)的物。這樣我們就可以采用向量相似來計(jì)算標(biāo)的物之間的相似度了。

  • d 采用購物籃的思路做推薦,這種思路非常適合圖書、電商等的推薦

經(jīng)常一起購買(或者瀏覽)的標(biāo)的物形成一個列表(一個購物籃),將過去一段時間所有的購物籃收集起來。 任何一個標(biāo)的物,我們可以找到跟它出現(xiàn)在同一個購物籃的標(biāo)的物及次數(shù),統(tǒng)計(jì)完該次數(shù)后,我們就可以按照該次數(shù)降序排列,那么這個列表就可以當(dāng)做標(biāo)的物的關(guān)聯(lián)推薦了。該推薦思路非常直觀易懂,可解釋性強(qiáng)。下面圖就是亞馬遜網(wǎng)站上采用該思路的兩類關(guān)聯(lián)推薦。

個性化推薦算法(推薦系統(tǒng))概要

 

(3) 基于標(biāo)簽推薦

如果標(biāo)的物是包含標(biāo)簽的,比如視頻推薦。我們就可以利用標(biāo)簽來構(gòu)建向量,每個標(biāo)簽代表一個維度??倶?biāo)簽的個數(shù)就是向量的維度,這樣每個標(biāo)的物就可以利用標(biāo)簽的向量來表示了。一般標(biāo)的物的標(biāo)簽個數(shù)遠(yuǎn)遠(yuǎn)小于總標(biāo)簽的個數(shù),所以這個向量是稀疏向量。這樣我們就可以基于稀疏向量的表示來計(jì)算標(biāo)的物之間的相似度了。

(4)基于標(biāo)的物聚類的推薦

我們可以將標(biāo)的物按照某個維度聚類,同一類具備某些相似性,那么我們在推薦時,就可以將同一類的其他標(biāo)的物作為關(guān)聯(lián)推薦。我們需要解決的問題是,某些類可能數(shù)量很小,不夠做推薦,這時可以采用一些策略來補(bǔ)充(如補(bǔ)充熱門推薦等)不足的數(shù)量。

5. 笛卡爾積范式

笛卡爾積范式的推薦算法一般可以先采用標(biāo)的物關(guān)聯(lián)標(biāo)的物范式計(jì)算出待推薦的標(biāo)的物列表。再根據(jù)用戶的興趣來對該推薦列表做重排(調(diào)整標(biāo)的物列表的順序)、增補(bǔ)(增加用戶的個性化興趣)、刪除(比如過濾掉用戶看過的)等。由于笛卡爾積范式的推薦算法在真實(shí)業(yè)務(wù)場景中使用不多,這里不再詳細(xì)講解。

到目前為止,我們講完了常用的召回策略。召回除了根據(jù)上面的一些算法策略外,還跟具體業(yè)務(wù)及產(chǎn)品形態(tài)有關(guān),可以基于更多的其他維度(如時間、地點(diǎn)、用戶屬性、收入、職業(yè)等)來做召回。

智能電視上的推薦,早上、白天、晚上推薦的不一樣,節(jié)假日和平常推薦的也不一樣。上班族早上需要上班,時間不充足,可能推薦短視頻或者新聞更加合適,白天一般是老人在家,可以推薦戲曲、抗戰(zhàn)類節(jié)目等,晚上主人回家又會推薦不一樣的內(nèi)容。

基于地點(diǎn)的召回,要求在不同的地方推薦不一樣的標(biāo)的物,典型的應(yīng)用有美團(tuán)外賣,你在不同的地方,給你推薦的是你所在地附近幾公里范圍內(nèi)的餐廳。

個性化召回算法

本章節(jié)主要講解itemcf與usercf的基礎(chǔ)理論部分與理論公式升級部分,并詳細(xì)介紹itemcf與usercf的優(yōu)缺點(diǎn)分析

Item Collaborative Filtering(Item CF) 背景

  • 信息過載,用戶需求不明確
  • 強(qiáng)依賴于用戶行為

工業(yè)界主流落地場景

  • 信息流
  • 電商
  • o2oLBS

含義:給用戶推薦他之前喜歡的物品相似的物品

如何衡量相似

  • 基于用戶行為,如果喜歡2個物品的用戶重合度越高,那么2個物品也就越相似。 如何衡量喜歡
  • 看用戶是否真實(shí)點(diǎn)擊,在電商場景下,更看重實(shí)際轉(zhuǎn)化(實(shí)際消費(fèi)購買);信息流場景下,更看重真實(shí)的點(diǎn)擊(基于一定時長下的停留)
個性化推薦算法(推薦系統(tǒng))概要

 

物品之間相似度公式:

u(i)表示喜歡物品i的用戶數(shù),表示同時喜歡物品i和物品j的用戶數(shù)

根據(jù)用戶行為計(jì)算出用戶相似度矩陣:

  • 分子:u(i)表示對item (i)有過行為的用戶集合 ,u(j)表示對item (j)有過行為的用戶集合 ,分子表示user的重合程度,重合度越高,越相似。
  • 分母:歸一化(舉例:對item(i)有過行為的用戶2個,對item(j)有過行為的用戶3個,物理意義:懲罰的熱門物品與其他物品的相似度,因?yàn)闊衢T物品對應(yīng)的user倒排會非常長造成了與很多物品都有重合,如果分母除以一個很大的數(shù),將相似度的數(shù)值趨于0。
  • 用戶u對物品j的興趣公式: N(u) 表示用戶喜歡的物品集合,表示和物品j最相似的k個物品的集合。表示物品i和j的相似度.表示用戶u對物品i的興趣。 表示user對 i的行為得分,表示物品的相似度得分 對user進(jìn)行item(j)的推薦,根據(jù)item(i)來完成推薦的,item(i)是user行為過的物品并且取與item(i)最相似的top k個(一般50個)

Item CF在工業(yè)界落地公式升級1:

理論意義:針對于活躍用戶應(yīng)該被降低在相似度公式中的貢獻(xiàn)度。

如果在某電商系統(tǒng)中,如果某User A是批發(fā)商,他購買了很多物品,可能有啤酒,書刊等,這都不能真實(shí)的表現(xiàn)他的興趣。還有一名User B,他只買了啤酒和書刊,這能完全表現(xiàn)他的興趣。如果我們在計(jì)算啤酒和書刊的相似度的時候,如果按照之前相似度公式User A和User B對啤酒和書刊的相似度貢獻(xiàn)是一樣的。這樣子顯然是不合理的。我們需要降低User A在相似度計(jì)算過程中的貢獻(xiàn)度。

 

u(i)表示喜歡物品i的用戶數(shù),表示同時喜歡物品i和物品j的用戶數(shù)

與之前的相似度計(jì)算公式公式相比,分母部門沒有發(fā)生任何變化。那么我們重點(diǎn)看分子部分。之前的相似度計(jì)算公式中每個重合用戶對相似度的貢獻(xiàn)是一樣的,都是1.但是升級后的公式,我們發(fā)現(xiàn)每個用戶對相似度的貢獻(xiàn)變成了不一樣。N(u)表示用戶u所行為過的item的總數(shù)。如果一個用戶行為過的item的總數(shù)越多,那么他的相似度就越低。這樣子是符合常理的認(rèn)知的。

分子:N(u)表示用戶u所行為過的item總數(shù),如果用戶行為過的總數(shù)越多,對相似度貢獻(xiàn)越低。

Item CF在工業(yè)界落地公式升級2

理論意義:用戶在不同時間對item的操作應(yīng)給予時間衰減懲罰。

因?yàn)樵诤芏鄨鼍爸?,用戶的興趣隨時間是有變化的。如在信息流場景中,可能30前看過的短視頻,30天后就不一定喜歡了。因?yàn)樵谧鑫锲废嗨贫染仃囉?jì)算的時候,就假定了用戶的行為可以反映用戶的興趣。所以需要給予時間衰減降權(quán)。

 

的物理意義就是說如果item i與item j被行為時間的差異越小,那么就越逼近于1.如果他們item i與item j被行為時間的差異越大,那么這個貢獻(xiàn)就越低。

與之前的相似度計(jì)算公式相比,分母部門沒有發(fā)生任何變化。那么我們重點(diǎn)看分子部分。每個用戶對相似度的貢獻(xiàn)也發(fā)生了變化。這里的變化主要由決定的。是指用戶item i與 item j所行為的時間的差異。

User Collaborative Filtering(User CF) 意義:給用戶推薦相似興趣用戶感興趣的物品。

舉個栗子:在我們讀書的時候是否經(jīng)常問學(xué)長學(xué)姐該讀什么樣的書或者下載什么樣的論文?學(xué)長學(xué)姐就會給你推薦。在這個栗子中學(xué)長學(xué)姐和你就屬于具有相同愛好的用戶群體,因?yàn)槟銈兙哂邢嗤难芯款I(lǐng)域。

那么所以基于用戶的協(xié)同過濾的算法有兩個步驟:

1、找到相似興趣用戶的集合

那么問題來了,如何評價相似興趣用戶集合?區(qū)別于很多傳統(tǒng)做法,這里主要采用基于用戶行為重合度的方法,舉例來說,如果兩個用戶的行為具有很高的重合度,那么他們具有很高的相似性。那么他們可以稱為相似興趣用戶集合。

2、推薦相似用戶行為過,而該用戶并沒有行為過的item。舉個栗子,如果我們發(fā)現(xiàn)兩個用戶A、B都非常喜歡足球相關(guān)的視頻,行為重合度極高。而用戶B經(jīng)常點(diǎn)擊天下足球相關(guān)的視頻,用戶A并沒有行為,那么我們可以推薦天下足球相關(guān)的視頻給用戶A。

栗子:

個性化推薦算法(推薦系統(tǒng))概要

 

User A 可以給User D 推薦b

基于用戶的協(xié)同過濾算法的步驟

1、計(jì)算相似用戶的相似度矩陣

相似度公式

 

N(u)表示用戶u有過行為item的集合。N(v)表示用戶v有過行為item的集合。

分子是item的重合程度。顯然重合程度越高,user越相似。

分母做了一個歸一化,物理意義上解釋了懲罰了操作過多的用戶與其他用戶的相似程度。因?yàn)椴僮鬟^多的用戶對應(yīng)的item的序列會非常的長,造成了與很多的用戶都有相似。分母除以一個很大的數(shù)之后呢,就能把相似度得分的數(shù)值趨于0.在得到用戶相似度矩陣過后,我們根據(jù)用戶的行為點(diǎn)擊,來完成相似用戶的item推薦。

下面來看公式

 

表示用戶v對item i的行為得分。在前面介紹item cf公式的時候,我們提到過對于不同的行為,我們對用戶的行為得分定義不同。我們這里將行為得分歸一化為1.

表示user u與uer v的相似度得分。這里根據(jù)用戶v來完成對用戶u的推薦。所以這里要介紹用戶v。用戶v是用戶u的前TOP k個的相似用戶。并且用戶v行為過的物品 item i,用戶user u 沒有行為。那么我們便得到了用戶u對item i的推薦度得分。

工業(yè)界落地時公式升級1:

理論意義:降低那些異?;钴S物品對與用戶相似度的貢獻(xiàn)

舉個栗子解釋:

如果某個電商系統(tǒng)中,User (A) 與User(B)同時購買了《新華字典》,User (A) 與User(C)同時購買了《機(jī)器學(xué)習(xí)》,并且他們都只有這一本書重合,User (A) 與User(B)、User (A) 與User(C)的重合度都是1,顯然不合理,因?yàn)橘徺I《新華字典》并不能十分準(zhǔn)確的反映用戶的興趣,也許是給家里孩子買,換言之《新華字典》的用戶倒排會非常的長,而購買《機(jī)器學(xué)習(xí)》的用戶大概率可以反映他們的興趣,因?yàn)檫@本書的購書群體很窄,因此我們需要降低那些很多人購買的在重合度中的貢獻(xiàn)。

 

分子:基礎(chǔ)版本的相似度計(jì)算公式當(dāng)中重合的每一item對整體的貢獻(xiàn)都是相同的。在升級版中貢獻(xiàn)變得不同的。u(i)表示對item(i)有過行為的用戶集合,如果一個item被更多的用戶行為過,那么它在重合度的貢獻(xiàn)越低。這也符合我們的認(rèn)知。

公式升級2(工業(yè)界) 理論意義,不同用戶對同一item行為的時間段不同應(yīng)該給予時間懲罰 (因?yàn)楹芏嘤脩舨煌瑫r間段,興趣是發(fā)生變化的,比如,2個用戶都曾經(jīng)點(diǎn)擊過足球類短視頻,一個用戶是近期點(diǎn)擊,另一個用戶是在好幾個月之前歐洲杯比賽期間,也許在目前時間節(jié)點(diǎn),已經(jīng)不再喜歡足球類短視頻了,我們在計(jì)算用戶相似度矩陣的時候,假定了用戶行為可以反映出用戶的興趣,所以我們要給予時間衰減降權(quán))

 

與基礎(chǔ)版本的用戶相似度矩陣計(jì)算公式,分母沒有發(fā)生任何變化。

分子:每一個重合的item的貢獻(xiàn)度得分都變得不同,它們的貢獻(xiàn)度得分由函數(shù)決定。函數(shù)具體的得分是2個用戶對同一item操作時間的差,如果越短的話,的得分越高;如果越長的話,的得分越低。相應(yīng)的在重合度貢獻(xiàn)中也就越低。

Itemcf VS Usercf優(yōu)缺點(diǎn)比較:

推薦實(shí)時性

  • User cf用戶有了新的行為,不會對結(jié)果造成很快的變化,因?yàn)閁sercf是基于相似度矩陣來完成推薦的,User本身的行為并不能造成自己的推薦結(jié)果發(fā)生改變。
  • Item cf用戶一旦有了新的行為,推薦結(jié)果立刻發(fā)生改變,因?yàn)镮temcf是基于相似度矩陣來完成推薦的,所以點(diǎn)擊了物品,會立馬推薦出相似的物品

新用戶/新物品的推薦

  • Usercf新用戶的到來是不能立即推薦的,需要等用戶有了一定的行為并且得到了與其他用戶相似度矩陣之后才可以完成推薦,新用戶一旦被用戶點(diǎn)擊,Usercf可以通過相似度用戶矩陣將該物品推薦給相似的用戶。
  • Item cf新用戶一旦完成了Item點(diǎn)擊,便可以推薦該Item相似的其余Item,新物品的到來,由于此時新物品,并沒有與其他物品在相似度矩陣中出現(xiàn),所以Itemcf并不能將新物品及時地推薦出去

推薦理由的可解釋性

  • User cf由于是通過用戶相似度矩陣來完成推薦的,結(jié)果會略顯難以解釋。
  • Item cf通過用戶歷史點(diǎn)擊行為完成的推薦,所以推薦結(jié)果更加令人信服。

Item cf VS User cf適用場景 性能層面考量

  • User cf通過計(jì)算用戶相似度矩陣,所以它并不適合用戶很多的場合。因?yàn)橄嗨贫染仃囉?jì)算起來代價非常大。
  • Item cf需要計(jì)算物品的相似度矩陣,所以Itemcf適用于物品數(shù)遠(yuǎn)小于用戶數(shù)場合。由于實(shí)戰(zhàn)中用戶量往往遠(yuǎn)大于物品的數(shù)量級,所以實(shí)戰(zhàn)中更傾向于Item cf。

個性化層面考量

  • User cf適用于物品及時推薦下發(fā)且個性化需求不太強(qiáng)烈的領(lǐng)域。
  • Itemcf適用于長尾物品豐富并且個性化需要強(qiáng)烈的領(lǐng)域。由于真實(shí)的推薦系統(tǒng)中,各種個性化召回算法組合,會有一些召回方法解決新物品及時下發(fā)問題,而我們需要個性化程度強(qiáng)烈,所以從個性化層面考慮,更傾向于在落地實(shí)戰(zhàn)中采用Itemcf。

ItemCF的優(yōu)勢:

(1)計(jì)算性能高,通常用戶數(shù)量遠(yuǎn)大于物品數(shù)量。

(2)可預(yù)先計(jì)算保留,物品并不善變。

ItemCF存在的問題: 物品冷啟動問題:當(dāng)平臺中物品數(shù)據(jù)較少或缺失時,無法精確計(jì)算物品相似度,解決辦法:

(1)文本分析,通過分析物品的介紹文本,計(jì)算相似度。 (2)主題模型,通過主題模型分析物品文本主題得出主題相似度。 (3)打標(biāo)簽,對物品打標(biāo)簽求得相似度。 (4)推薦排行榜單。

三、排序算法概述

推薦系統(tǒng)排序模塊將召回模塊產(chǎn)生的標(biāo)的物列表(一般幾百個標(biāo)的物),通過排序算法做重排,更好的反應(yīng)用戶的點(diǎn)擊偏好,通過排序優(yōu)化用戶的點(diǎn)擊行為,將用戶更可能點(diǎn)擊的標(biāo)的物(一般幾十個)取出來推薦給用戶,最終提升用戶體驗(yàn)。

排序模塊會用到很多特征,基于這些特征構(gòu)建排序模型,排序特征在排序的效果中起到非常關(guān)鍵的作用,常用的特征可以抽象為如下5大類:

  • 用戶側(cè)的特征,如用戶的性別、年齡、地域、購買力、家庭結(jié)構(gòu)等。
  • 商品側(cè)的特征,如商品描述信息、價格、標(biāo)簽等。
  • 上下文及場景特征,如位置、頁面、是否是周末節(jié)假日等。
  • 交叉特征,如用戶側(cè)特征與商品側(cè)特征的交叉等。
  • 用戶的行為特征,如用戶點(diǎn)擊、收藏、購買、觀看等。

包括:個性化召回算法、個性化排序算法

個性化推薦算法(推薦系統(tǒng))概要

 

排序框架需要充分利用上述五大類特征,以便更好的預(yù)測用戶的點(diǎn)擊行為。排序?qū)W習(xí)是機(jī)器學(xué)習(xí)中一個重要的研究領(lǐng)域,廣泛應(yīng)用于信息檢索、搜索引擎、推薦系統(tǒng)、計(jì)算廣告等的排序任務(wù)中,有興趣的讀者可以參考微軟亞洲研究院劉鐵巖博士的專著《Learning to Rank for Information Retrieval》。常用的排序算法框架有pointwise、pairwise、listwise三類,見下圖。

個性化推薦算法(推薦系統(tǒng))概要

 

上圖中x1,x2,... 代表的是訓(xùn)練樣本1,2,... 的特征,y1,y2,s1,... 等是訓(xùn)練集的label(目標(biāo)函數(shù)值)。pointwise學(xué)習(xí)單個樣本,如果最終預(yù)測目標(biāo)是一個實(shí)數(shù)值,就是回歸問題,如果目標(biāo)是概率預(yù)測,就是一個分類問題,例如CTR預(yù)估。pairwise和listwise分別學(xué)習(xí)一對有序?qū)鸵粋€有序序列的樣本特征,考慮得更加精細(xì)。在推薦系統(tǒng)中常用pointwise方法來做排序,它更直觀,易于理解,也更簡單。

常用的排序?qū)W習(xí)算法有l(wèi)ogistic回歸、GBDT、Wide & Deep等,這里對這些算法的實(shí)現(xiàn)原理做一個簡單描述。

1. logistic回歸模型

logistic回歸是比較簡單的線性模型,通過學(xué)習(xí)用戶點(diǎn)擊行為來構(gòu)建CTR預(yù)估。利用logistic回歸構(gòu)建推薦算法模型,具體模型如下面公式。

其中, 是用戶喜歡某個標(biāo)的物的概率;

是權(quán)重,是需要學(xué)習(xí)的模型參數(shù);

是特征i的值,特征如上面所述,有5大類可用特征。

我們可以通過上述公式計(jì)算待推薦標(biāo)的物的p值。最終我們可以按照p值的大小降序排列來對召回的標(biāo)的物列表做排序。

在工業(yè)界,為了更好地將該模型應(yīng)用到真實(shí)業(yè)務(wù)場景中,很多公司對logistic回歸模型做了推廣。比如用到在線實(shí)時推薦場景中做排序,有Google在2013年推廣的FTRL(見參考文獻(xiàn)14),以及阿里推廣的分片線性模型(見參考文獻(xiàn)13)。

2. GBDT模型

GBDT(Gradient Boosting Decision Tree)是一種基于迭代思路構(gòu)造的決策樹算法(可以參考文獻(xiàn)15),該算法在實(shí)際問題中將生成多棵決策樹,并將所有樹的結(jié)果進(jìn)行匯總來得到最終答案,該算法將決策樹與集成思想進(jìn)行了有效的結(jié)合,通過將弱學(xué)習(xí)器提升為強(qiáng)學(xué)習(xí)器的集成方法來提高預(yù)測精度。GBDT是一類泛化能力較強(qiáng)的學(xué)習(xí)算法。

2014年Facebook發(fā)表了一篇介紹將GBDT+LR(Logistic Regression)模型用于其廣告CTR預(yù)估的論文(參考文獻(xiàn)16),開啟了利用GBDT模型應(yīng)用于搜索、推薦、廣告業(yè)務(wù)的先河。GBDT作為一種常用的樹模型,可天然地對原始特征進(jìn)行特征劃分、特征組合和特征選擇,并得到高階特征屬性和非線性映射。從而可將GBDT模型抽象為一個特征處理器,通過GBDT分析原始特征獲取到更利于LR分析的新特征,這也正是GBDT+LR模型的核心思想——利用GBDT構(gòu)造的新特征來訓(xùn)練LR模型。

3. Wide & deep模型

Wide&deep模型最早被Google提出來,并用于Android手機(jī)應(yīng)用商店上APP的推薦排序。目前該算法在國內(nèi)很多互聯(lián)網(wǎng)企業(yè)得到大規(guī)模的采用,有比較好的效果。該模型將傳統(tǒng)模型和深度學(xué)習(xí)模型相結(jié)合。wide部分(傳統(tǒng)模型,如logistic回歸)起記憶(memorization)的作用,即從歷史數(shù)據(jù)中發(fā)現(xiàn)item(推薦內(nèi)容)或者特征之間的相關(guān)性,deep部分(深度學(xué)習(xí)模型)起泛化(generalization)的作用,即相關(guān)性的傳遞,發(fā)現(xiàn)在歷史數(shù)據(jù)中很少或者沒有出現(xiàn)的新的特征組合,尋找用戶的新偏好。通過將這兩個模型結(jié)合起來可以更好地在用戶的歷史興趣和探索新的興趣點(diǎn)之間做到平衡。感興趣的讀者可以閱讀參考文獻(xiàn)12。

評估指標(biāo): 包括:在線評估指標(biāo)和離線評估指標(biāo)

個性化推薦算法(推薦系統(tǒng))概要

 

四、推薦算法落地需要關(guān)注的幾個問題

前面幾節(jié)對推薦系統(tǒng)算法和產(chǎn)品做了初步描述,相信大家對常用算法實(shí)現(xiàn)思路、怎么用于真實(shí)產(chǎn)品中有了比較直觀的認(rèn)識。在本節(jié)作者對算法落地中幾個重要問題加以說明,以便你可以更好地將推薦算法落地到真實(shí)業(yè)務(wù)場景中。

  1. 推薦算法工程落地是否一定需要排序模塊

工業(yè)上的推薦算法一般分為召回和排序模塊,召回的作用是從全量標(biāo)的物集合(幾萬甚至上億)中將用戶可能喜歡的標(biāo)的物取出來(幾百個),排序階段將召回的標(biāo)的物集按照用戶點(diǎn)擊的可能性再做一次排序。但是排序階段不是必須的,特別是對于標(biāo)的物池不大的產(chǎn)品及團(tuán)隊(duì)資源較少的情形,沒必要一開始就開發(fā)出排序框架。召回算法一般也會對標(biāo)的物做排序(如果是評分預(yù)測模型,如矩陣分解,可以按照評分大小排序,如果是概率模型,可以按照對標(biāo)的物的偏好概率大小排序)。缺失了排序模塊的推薦系統(tǒng)可能精準(zhǔn)度沒有那么高,但是工程實(shí)現(xiàn)上相對更加簡單,可以快速落地上線。特別對于剛做推薦系統(tǒng)的團(tuán)隊(duì),可以讓系統(tǒng)快速上線,后面再逐步迭代,補(bǔ)全缺失模塊。

  1. 推薦算法服務(wù)于用戶的兩種形式

推薦算法計(jì)算出的推薦結(jié)果可以直接插入數(shù)據(jù)庫(如redis等),直接為用戶提供服務(wù),另外一種方式是將核心特征計(jì)算好存儲下來,當(dāng)用戶請求推薦業(yè)務(wù)時,推薦web服務(wù)通過簡單計(jì)算將特征轉(zhuǎn)化為最終給用戶的推薦結(jié)果返回給用戶。這兩種方式一個是事先計(jì)算好,拿來就用,另外一種是準(zhǔn)備好核心數(shù)據(jù),在請求時實(shí)時計(jì)算最終結(jié)果。

我拿餐廳服務(wù)外賣來類比說明,第一種方式是將餐廳有的菜先做好很多份,如果有外賣單過來,直接將做好的送出。第二種是將所有的配菜都準(zhǔn)備好,接到外賣單立馬將配菜加上調(diào)料炒熟再送出去,只要配菜準(zhǔn)備足夠好,炒菜的時間不太長并且可控,也是可以很好的服務(wù)用戶的。第一種方式是事先做好的,無法滿足用戶個性化需求,同時如果做好了沒人點(diǎn)的話就浪費(fèi)了,第二種可以更好滿足用戶個性化需求,比如用戶說不要香菜多放辣椒就可以在現(xiàn)做的時候滿足。

第二種方式對整個推薦系統(tǒng)要求更高,服務(wù)更加精細(xì),但是第一種方案更加簡單,不過也需要更多的存儲資源(將所有用戶的推薦結(jié)果事先存下來)。在推薦系統(tǒng)構(gòu)建的初級階段建議采用方案一。

某些推薦業(yè)務(wù)用方案一是不可行的,比如上面的笛卡爾積范式的推薦系統(tǒng),因?yàn)橛脩魯?shù)乘以標(biāo)的物數(shù)是一個巨大的天文數(shù)字,公司不可能有這么多的資源將每個用戶關(guān)聯(lián)的每個標(biāo)的物的推薦結(jié)果事先計(jì)算好存儲下來。

  1. 推薦系統(tǒng)評估

推薦系統(tǒng)是服務(wù)于公司商業(yè)目標(biāo)的(盈利目標(biāo),提升用戶體驗(yàn)、使用時長、DAU等,最終也是為了盈利),所以推薦系統(tǒng)落地到真實(shí)業(yè)務(wù)場景中一定要定義推薦系統(tǒng)的優(yōu)化目標(biāo),只有目標(biāo)具體而清晰,并可量化,才能更好的通過不斷迭代優(yōu)化推薦效果。大家可以參考《推薦系統(tǒng)的商業(yè)價值》,了解怎么定義推薦系統(tǒng)的商業(yè)指標(biāo)。

參考文獻(xiàn):

  • 1.Multi-Interest Network with Dynamic Routing for Recommendation at Tmall
  • 2.Deep Session Interest Network for Click-Through Rate Prediction
  • 3.Behavior Sequence Transformer for E-commerce Recommendation in Alibaba
  • 4.Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba
  • 5.Personal Recommendation Using Deep Recurrent Neural Networks in NetEase
  • 6.Deep Reinforcement Learning for List-wise Recommendations
  • 7.Recommendations with Negative Feedback via Pairwise Deep Reinforcement Learning
  • 8.Learning Tree-based Deep Model for Recommender Systems
  • 9.Item2Vec- Neural Item Embedding for Collaborative Filtering
  • 10.Deep Neural Networks for YouTube Recommendations
  • 11.Deep Learning based Recommender System- A Survey and New Perspectives
  • 12.Wide & Deep Learning for Recommender Systems
  • 13.Learning Piece-wise Linear Models from Large Scale Data for Ad Click Prediction
  • 14.Ad Click Prediction- a View from the Trenches
  • 15.Greedy function approximation: a gradient boosting machine
  • 16.Practical Lessons from Predicting Clicks on Ads at Facebook
  • 17.Google News Personalization: Scalable Online Collaborative Filtering

分享到:
標(biāo)簽:算法 推薦
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定