回顧20多年前推薦算法提出的90年代彰触,也是中國互聯(lián)網(wǎng)起步的時候都许,瀏覽門戶網(wǎng)站即可滿足我們對數(shù)字世界探索的大部分需求,彼時是‘人找物’押桃,系統(tǒng)推薦的應用空間不大葵萎。時間在推移,內(nèi)容亦在豐富唱凯,在當前海量信息爆炸的時代羡忘,五花八門的內(nèi)容琳瑯滿目,讓人應接不暇磕昼。此時需要‘物能找人’卷雕,因此推薦系統(tǒng)將合適的內(nèi)容推送給合適的用戶實在是恰逢其會。
1. 系統(tǒng)初探
那么推薦系統(tǒng)是如何運轉(zhuǎn)的呢票从?為什么它知道我在某寶上要買的是咖啡而不是啤酒漫雕,然后在App的首頁呈現(xiàn)?回答這個問題峰鄙,我們先從推薦系統(tǒng)流程的角度著手了解:系統(tǒng)將一個物品/內(nèi)容推薦給用戶主要經(jīng)歷兩個步驟浸间,即召回與排序。
當人們?yōu)g覽一個電商網(wǎng)站吟榴,比如女生會關注種草喜歡的美妝博主魁蒜、收藏某一品牌的護膚品、加購了三只松鼠的堅果等到雙十一叫男票清空購物車...這一系列的行為反應了你對某些商品的偏好吩翻,致使系統(tǒng)能大致勾勒出你的興趣兜看。在購物網(wǎng)站上會有很多與你興趣相似的用戶,你們有著類似的喜好狭瞎,Ta喜歡的東西大概率你也會覺得不錯细移,通過行為統(tǒng)計尋找你們的相似度就可以找到那些同類用戶喜歡的而你還沒有接觸過的商品。另外熊锭,商品之間也有相似的屬性葫哗,比如《魔鬼經(jīng)濟學》與《牛奶可樂經(jīng)濟學》是有關行為經(jīng)濟學的著作缔刹,一般我們就會見到電子書網(wǎng)站會為看過《魔鬼經(jīng)濟學》的讀者推薦《牛奶可樂經(jīng)濟學》。如上描述的把相似的用戶與相似的物品匹配起來劣针,從而篩選出用戶感興趣物品的過程就是召回校镐。
召回階段取回的物品數(shù)量通常都比較大,可能在十萬百萬量級以上捺典,進一步地鸟廓,推薦引擎結合多種因素考量(比如業(yè)務特征、人工干預等)襟己,精細篩選出Top100款甚至更少的物品推薦給用戶引谜,這就是排序的過程。
從系統(tǒng)流程可以看出擎浴,相似度是推薦系統(tǒng)的核心環(huán)節(jié)员咽。那么用戶之間、物品之間的相似度怎么定義贮预、如何計算呢贝室?
2. 找到相似的用戶/物品
2.1 相似度計算
對于推薦系統(tǒng)來說,通常是基于向量來確定兩兩用戶或兩個物品是否相似仿吞,即系統(tǒng)首先要把用戶(用戶屬性或用戶行為偏好)滑频、物品(物品特征)向量化。比如有5件商品:夾克唤冈、連衣裙峡迷、球鞋、網(wǎng)球拍你虹、貝雷帽绘搞,1表示用戶購買過該商品,0表示未購買過傅物。用戶P買過夾克夯辖、球鞋、網(wǎng)球拍挟伙,用戶Q買過連衣裙、網(wǎng)球拍模孩、貝雷帽尖阔,則用向量表示用戶P和用戶Q就是R(P)=(1,0榨咐,1介却,1,0)块茁,R(Q)=(0齿坷,1桂肌,0,1永淌,1)崎场。
那么如何計算兩個用戶是否相似呢?計算相似度的公式有很多遂蛀,如‘歐幾里德距離’谭跨、‘皮爾遜相關系數(shù)’、‘余弦相似度’等李滴。余弦相似度是常用的計算方法螃宙,即當兩個向量之間的夾角越小,則兩個向量越相似所坯。讓我們回憶一下中學關于兩個向量u谆扎、v的余弦相似度公式:
利用公式,可以知道用戶P(1芹助,0堂湖,1,1周瞎,0)和用戶Q(0苗缩,1,0声诸,1酱讶,1)之間的相似度為:
2.2 最近的鄰居
所謂物以類聚、人以群分彼乌,系統(tǒng)當然不需要按相似度遍歷所有數(shù)據(jù)泻肯,一般推薦引擎只需要尋找一批與目標(用戶/物品)最相似的‘鄰居’組成一類群體進而做物品推薦。接下來看看最近的鄰居是如何確定的:以用戶間的相似度舉例慰照,想象一個二維平面灶挟,每個用戶代表一個點,用戶(點與點)之間的距離就是相似度的大卸咀狻稚铣;計算用戶①的若干個最近鄰,一種方案就是以目標用戶①為圓心墅垮,設定一個距離K惕医,落在半徑K的圓中的所有用戶就是①最近的‘鄰居’。
3. 推薦算法類型
上面介紹了如何計算相似度和尋找最相似的‘鄰居’算色,接下來就要探尋推薦系統(tǒng)的核心——推薦算法抬伺。通常,推薦算法可以分為三類:基于屬性相似度的推薦灾梦、基于協(xié)同過濾推薦峡钓、基于模型推薦妓笙。
3.1 基于屬性相似度的推薦
基于屬性相似度的推薦是一種基礎的推薦算法,又可分為按用戶屬性的相似度推薦和按物品屬性的相似度推薦能岩。
用戶屬性的相似度推薦寞宫,即按用戶的年齡、性別捧灰、地域等基礎特征建模淆九,計算用戶之間的相似度,把用戶A喜歡的物品推薦給與他類似的用戶B毛俏。
物品屬性的相似度推薦炭庙,即按物品的屬性特征(以音樂舉例,如音樂類型煌寇、歌手焕蹄、播放時長等)建模,用戶喜歡鋼琴曲阀溶,而小提琴曲與鋼琴曲都可以劃分為輕音樂腻脏,則系統(tǒng)把小提琴曲推薦給用戶。
上述基于屬性相似度的推薦银锻,好處是推薦解釋性較強永品,易于理解,且不需要過多依賴用戶行為的歷史數(shù)據(jù)击纬,對于長尾/上新的物品都能做到很好的曝光鼎姐。然而這類算法的缺點也很明顯,如算法特征過于簡單(僅包括用戶或物品的基礎屬性)更振,而人們的喜好通常會隨環(huán)境炕桨、時間成長等動態(tài)變化,無法很好的滿足用戶需求多樣性肯腕。
3.2 基于協(xié)同過濾推薦
協(xié)同過濾献宫,顧名思義就是指由相似興趣的用戶們組成‘鄰居’互相協(xié)作,通過不斷的與系統(tǒng)發(fā)生交互從而持續(xù)過濾掉用戶不感興趣的內(nèi)容实撒,它是一種群體智慧效應的體現(xiàn)姊途。從用戶與內(nèi)容的角度又可劃分為基于用戶的協(xié)同過濾(UserCF)和基于物品的協(xié)同過濾(ItemCF)。
基于用戶的協(xié)同過濾(UserCF)
基于用戶的協(xié)同過濾是通過用戶的行為去尋找與其相似的用戶進行推薦知态,與上一節(jié)基于用戶屬性的推薦對比捷兰,兩者的核心區(qū)別是計算相似度的定義不同,基于用戶屬性推薦只考慮用戶的靜態(tài)特征肴甸,而UserCF是在用戶的歷史行為偏好中計算相似度寂殉。
基于用戶協(xié)同過濾預測用戶u對物品i的興趣程度p(ui)的公式如下:
其中囚巴,S (u , K )是包含和用戶u興趣最接近的K個用戶原在,N (i)是對物品i有過行為的用戶集合友扰,w(uv)是用戶u與用戶v的興趣相似度,r(vi)代表用戶v對物品i的行為興趣評分庶柿。從公式可以看出村怪,基于用戶的協(xié)同過濾算法主要有兩步,一是用戶之間的相似度浮庐,二是用戶與內(nèi)容之間的行為偏好分數(shù)甚负,通過圖形拆解算法的計算路徑如下圖。
?基于物品的協(xié)同過濾(ItemCF)
基于物品的協(xié)同過濾是通過用戶對物品的行為偏好找到與用戶喜歡物品的相似物品進行推薦审残,簡單理解即喜歡物品1的用戶大多也喜歡物品2梭域。
基于物品的協(xié)同過濾預測用戶u對物品j的興趣程度p(uj)的公式如下:
其中,N(u)是用戶喜歡的物品的集合搅轿,S(j,K)是和物品j最相似的K個物品的集合病涨,w(ji)是物品j和i的相似度,r(ui)是用戶u對物品i的興趣分數(shù)璧坟。同UserCF既穆,基于物品的協(xié)同算法主要也是兩步,一是物品之間的相似度雀鹃,二是用戶產(chǎn)生過偏好行為的物品評價分數(shù)幻工,圖示計算路徑如下。
3.3 基于模型的推薦
基于模型的推薦主要是利用機器學習的方法挖掘用戶黎茎、物品囊颅、用戶歷史行為偏好之間的關系,從而找到用戶可能感興趣的物品進行推薦工三。機器學習包括深度學習的推薦算法在業(yè)界已經(jīng)提出了很多種迁酸,本文僅介紹一種經(jīng)典的模型——基于隱語義的模型推薦(LFM)。
如下圖形式是把所有用戶和物品按用戶對物品的偏好程度畫成一張表中俭正,推薦系統(tǒng)的工作就是要預測那些表格中的空白值奸鬓。
為了找到用戶喜歡的物品,我們可以先把用戶按其興趣偏好進行分類掸读,比如在買手機的時候有的人會關注品牌串远,有的人喜歡尺寸要大、有人在意型號儿惫、有人對價格敏感等等澡罚。同樣,物品也可以按這些用戶偏好(品牌肾请、尺寸留搔、型號、價格)進行分類铛铁。隱語義模型就是要找到用戶-偏好隔显、物品-偏好這兩個關系矩陣(如下圖)却妨,然后通過矩陣計算的方式合成用戶-物品的完整矩陣,求得用戶對物品的推薦分數(shù)括眠。系統(tǒng)求解的過程是隨機生成初始矩陣彪标,推薦結果要與原始數(shù)據(jù)矩陣中有值的項盡可能相近,這就轉(zhuǎn)換成了機器學習求最優(yōu)解的問題掷豺。
相比協(xié)同過濾捞烟,無論UserCF或ItemCF,能夠影響推薦效果的往往是少部分的用戶行為和物品当船,而隱語義模型則通過機器挖掘隱藏在數(shù)據(jù)中的偏好從而進行推薦题画,通常能更充分的探尋到數(shù)據(jù)中的信息,推薦效果也更準確德频。但因為偏好信息沒有具體物理意義婴程,所以其缺點也同樣明顯,無法對推薦結果做出合理的解釋抱婉。
4. 談信息繭房
至此档叔,推薦系統(tǒng)的大致原理和算法模型已經(jīng)介紹完畢了。在結束之前蒸绩,最后簡單聊聊信息繭房問題衙四。在當前的互聯(lián)網(wǎng)世界中,無論圖文信息流亦或短視頻應用患亿,到處充斥著個性化推薦算法传蹈,很多用戶擔心終將會被禁錮在由狹隘偏好所編制的繭牢中。
其實破解信息繭房就是在回答一個問題步藕,即什么是好的推薦系統(tǒng)惦界?從技術的角度,多樣性推薦既是系統(tǒng)需要納入的算法之一咙冗,也是衡量系統(tǒng)效果的指標沾歪,所以一份推薦結果并不會永遠只有用戶曾經(jīng)贊過看過的內(nèi)容。同樣雾消,從策略的角度灾搏,PM們也需要關注打散峭跳、重排咆蒿、去重過濾邏輯是否合理有效雀瓢,可以借助線上badcase持續(xù)跟蹤優(yōu)化沮峡。
意料之外,情理之中耻瑟,也許是對推薦系統(tǒng)最好的詮釋吴攒。
公眾號:策略伽? 歡迎關注~