一文讀懂無(wú)處不在的智能推薦系統(tǒng)
推薦系統(tǒng)是人與信息的連接器,用已有的連接去預(yù)測(cè)未來(lái)用戶和物品之間會(huì)出現(xiàn)的連接。推薦系統(tǒng)本質(zhì)上處理的是信息,它的主要作用是在信息生產(chǎn)方和信息消費(fèi)方之間搭建起橋梁,從而獲取人的注意力。
對(duì)于智能推薦系統(tǒng)相信大家已經(jīng)不再陌生了,現(xiàn)在它已經(jīng)在內(nèi)容分發(fā)平臺(tái)、電商、廣告、音視頻等互聯(lián)網(wǎng)產(chǎn)品中隨處可見(jiàn)。
一、為什么越來(lái)越多產(chǎn)品需要做推薦系統(tǒng)?
主要有以下兩方面的原因:
(1)信息過(guò)載
互聯(lián)網(wǎng)上每天都在產(chǎn)生海量的信息,用戶想要迅速和準(zhǔn)確地找到他們感興趣的內(nèi)容或商品越來(lái)越困難。如果用戶的目標(biāo)明確,他可以使用搜索(其實(shí)搜索也是有關(guān)鍵字的推薦、推薦是無(wú)關(guān)鍵字的搜索),但很多時(shí)候我們的用戶是沒(méi)有明確目標(biāo)的。這時(shí)候如果產(chǎn)品能夠高效匹配用戶感興趣的內(nèi)容或商品,就能提高用戶體驗(yàn)和粘性,獲取更多的商業(yè)利益。
(2)長(zhǎng)尾效應(yīng)
絕大多數(shù)用戶的需求往往是關(guān)注主流內(nèi)容和商品,而忽略相對(duì)冷門(mén)的大量“長(zhǎng)尾”信息, 導(dǎo)致很多優(yōu)秀的內(nèi)容或商品沒(méi)有機(jī)會(huì)被用戶發(fā)現(xiàn)和關(guān)注。如果大量長(zhǎng)尾信息無(wú)法獲取到流量,信息生產(chǎn)者就會(huì)離開(kāi)平臺(tái),影響平臺(tái)生態(tài)的健康發(fā)展。
二、認(rèn)識(shí)推薦系統(tǒng)
推薦系統(tǒng)定義:推薦系統(tǒng)是人與信息的連接器,用已有的連接去預(yù)測(cè)未來(lái)用戶和物品之間會(huì)出現(xiàn)的連接。
推薦系統(tǒng)本質(zhì)上處理的是信息,它的主要作用是在信息生產(chǎn)方和信息消費(fèi)方之間搭建起橋梁,從而獲取人的注意力。
世界是一個(gè)數(shù)字化的大網(wǎng),從人類(lèi)角度來(lái)看里面只有兩類(lèi)節(jié)點(diǎn):人和其他。萬(wàn)事萬(wàn)物有相互連接的大趨勢(shì),比如:人和人傾向于有更多社會(huì)連接,于是有了各種社交產(chǎn)品;比如:人和商品有越來(lái)越多的消費(fèi)連接,于是有了各種電商產(chǎn)品;比如:人和資訊有越來(lái)越多的閱讀連接,于是有了信息流產(chǎn)品。
一個(gè)完整的推薦系統(tǒng)通常由以下部分組成:用戶端前臺(tái)展示、后臺(tái)日志系統(tǒng)、推薦算法引擎。
▲個(gè)人繪制的推薦系統(tǒng)架構(gòu)圖
- 前臺(tái)展示:就是你在app或網(wǎng)頁(yè)上看到的推薦、猜你喜歡、你的個(gè)性化歌單、經(jīng)常一起購(gòu)買(mǎi)的商品等部分展示的內(nèi)容。
- 后臺(tái)日志系統(tǒng):用戶數(shù)據(jù)、用戶行為數(shù)據(jù)、內(nèi)容數(shù)據(jù)等日志數(shù)據(jù)采集、存儲(chǔ)、清洗和分析,從而建立畫(huà)像體系,包括用戶畫(huà)像和物品畫(huà)像。
- 推薦算法引擎:各種算法模型、模型訓(xùn)練配置、推薦效果評(píng)估體系。
搭建推薦系統(tǒng)所需投入:
首先要搭建團(tuán)隊(duì),其中算法工程師是必不可少的,當(dāng)前也是薪酬較高的;其次還要購(gòu)置存儲(chǔ)和計(jì)算資源,如果不是云產(chǎn)品你可能還要自己購(gòu)置硬件設(shè)備;然后還有長(zhǎng)時(shí)間的數(shù)據(jù)積累和算法優(yōu)化。
推薦系統(tǒng)是一個(gè)需要長(zhǎng)期持續(xù)投入的東西,從投入/產(chǎn)出比和時(shí)間成本上來(lái)說(shuō),產(chǎn)品經(jīng)理不要隨便拍大腿就要做一個(gè)智能推薦系統(tǒng)。
如何判斷一個(gè)產(chǎn)品是否需要推薦系統(tǒng)?
第一,看看產(chǎn)品的目的。如果一款產(chǎn)品的目的是建立越多連接越好,那么它最終需要一個(gè)推薦系統(tǒng)。
典型的目的不是建立連接的產(chǎn)品就是工具類(lèi)產(chǎn)品,單純?yōu)樘岣呷祟?lèi)某些工作的效率而存在,比如:AXURE、ERP……雖然如今很多產(chǎn)品都從工具切入想做成社區(qū),但至少在工具屬性很強(qiáng)時(shí)不需要推薦系統(tǒng)。
第二,看看產(chǎn)品現(xiàn)有的連接。如果你的產(chǎn)品中物品很少,少到用人工就可以應(yīng)付過(guò)來(lái),用戶產(chǎn)生的連接不多,這時(shí)候不適合搭建推薦系統(tǒng)。應(yīng)該要有長(zhǎng)尾效應(yīng)才可能讓推薦系統(tǒng)發(fā)揮效果。
三、推薦算法-協(xié)同過(guò)濾基本原理
推薦系統(tǒng)里最經(jīng)典的算法非協(xié)同過(guò)濾莫屬。協(xié)同過(guò)濾又稱(chēng)基于領(lǐng)域的算法,核心在于協(xié)同,互幫互助。其又可以分為兩類(lèi):基于用戶的協(xié)同過(guò)濾算法(UserCF)、基于物品的協(xié)同過(guò)濾算法(ItemCF)。
(1)基于用戶的協(xié)同過(guò)濾算法(UserCF)
當(dāng)一個(gè)用戶需要個(gè)性化推薦時(shí),可以先通過(guò)用戶的相似度計(jì)算找到和他有相似興趣的其他用戶,然后把那些用戶喜歡而他沒(méi)有聽(tīng)說(shuō)過(guò)的物品推薦給他,這種方法稱(chēng)為基于用戶的協(xié)同過(guò)濾算法。
如用戶A曾經(jīng)看過(guò)《增長(zhǎng)黑客》、《流量池》和《原則》,用戶B曾經(jīng)看過(guò)《增長(zhǎng)黑客》和《原則》,當(dāng)我們給B推薦時(shí),推薦系統(tǒng)計(jì)算出A和B的相似度比較高,而A曾經(jīng)讀過(guò)的《流量池》用戶B沒(méi)有讀過(guò),因此就將《流量池》推薦給B用戶,這就是經(jīng)典的基于用戶的協(xié)同過(guò)濾。
由上面的描述可知,基于用戶的協(xié)同過(guò)濾算法主要包括兩個(gè)步驟:
- 找到和目標(biāo)用戶興趣相似的用戶集合;
- 找到這個(gè)集合中的用戶喜歡的,且目標(biāo)用戶沒(méi)有聽(tīng)說(shuō)過(guò)的物品推薦給目標(biāo)用戶。
(2)基于物品的協(xié)同過(guò)濾算法(ItemCF)
介紹基于物品的協(xié)同過(guò)濾之前,先來(lái)看下基于用戶的協(xié)同過(guò)濾可能帶來(lái)的問(wèn)題。
- 用戶數(shù)據(jù)量比較大時(shí),需要計(jì)算的用戶之間的相似度會(huì)比較多,計(jì)算量大。
- 構(gòu)建用戶向量時(shí)是使用用戶對(duì)已消費(fèi)過(guò)的物品的評(píng)分/行為來(lái)構(gòu)建的,用戶的興趣是會(huì)隨時(shí)間改變的,導(dǎo)致計(jì)算相似用戶的頻率較高。
- 數(shù)據(jù)比較稀疏,用戶和用戶之間有共同的消費(fèi)行為實(shí)際上是比較少的,而且一般都是一些熱門(mén)物品,對(duì)發(fā)現(xiàn)用戶興趣幫助也不大。
基于物品的協(xié)同過(guò)濾算法,給用戶推薦那些和他們之前喜歡的物品相似的物品。
用戶A、B和C分別喜歡的物品如圖所示,則計(jì)算物品2與物品1的相似度的公式為:
- 物品2與物品1的相似度=同時(shí)喜歡物品1和物品2的用戶數(shù)/喜歡物品1的用戶數(shù)=2/3;
- 物品3與物品1的相似度=0;
- 物品4與物品1的相似度=1;
- 如果對(duì)一個(gè)喜歡了物品1的用戶D進(jìn)行推薦,則推薦的優(yōu)先級(jí)為4>2>3。
基于物品的協(xié)同過(guò)濾算法主要包括的步驟:
- 計(jì)算物品之間的相似度;
- 根據(jù)物品的相似度和用戶的歷史行為給用戶生成推薦列表。
以上只是協(xié)同過(guò)濾算法的基本原理,現(xiàn)實(shí)中的算法模型要遠(yuǎn)比這個(gè)復(fù)雜,而且很少采用單一模型,基本是組合模型。我也是剛剛才開(kāi)始做推薦系統(tǒng),至于更為復(fù)雜的矩陣分解、基于機(jī)器學(xué)習(xí)的推薦算法等后續(xù)我自己搞明白再單獨(dú)成文分享給大家。
四、推薦系統(tǒng)的冷啟動(dòng)
推薦系統(tǒng)需要已有的連接去預(yù)測(cè)未來(lái)用戶和物品之間會(huì)出現(xiàn)的連接。
對(duì)于BAT(百度騰訊阿里)、TMD(頭條美團(tuán)滴滴)這樣的巨頭他們已經(jīng)積累了大量的用戶數(shù)據(jù),在某個(gè)產(chǎn)品上智能推薦的時(shí)候不存在冷啟動(dòng)的問(wèn)題。
對(duì)于很多沒(méi)有大量用戶數(shù)據(jù)的產(chǎn)品來(lái)說(shuō),如何在這種情況下設(shè)計(jì)推薦系統(tǒng)并且讓用戶對(duì)推薦結(jié)果滿意,從而愿意使用推薦系統(tǒng),就是冷啟動(dòng)的問(wèn)題。
冷啟動(dòng)問(wèn)題主要分兩大類(lèi):
(1)用戶冷啟動(dòng)
用戶冷啟動(dòng)主要解決如何給新用戶或者不活躍用戶做個(gè)性化推薦的問(wèn)題。當(dāng)新用戶到來(lái)時(shí),我們沒(méi)有他的行為數(shù)據(jù),所以也無(wú)法根據(jù)他的歷史行為預(yù)測(cè)其興趣,從而無(wú)法借此給他做個(gè)性化推薦。
(2)物品冷啟動(dòng)
物品冷啟動(dòng)主要解決如何將新的物品或展示次數(shù)較少的物品推薦給可能對(duì)它感興趣的用戶這一問(wèn)題。
一般來(lái)說(shuō),可以參考如下方式來(lái)解決冷啟動(dòng)的問(wèn)題:
- 利用用戶注冊(cè)時(shí)提供的年齡、性別等數(shù)據(jù)做粗粒度的個(gè)性化推薦;
- 利用用戶的社交網(wǎng)絡(luò)賬號(hào)登錄(需要用戶授權(quán)),導(dǎo)入用戶在社交網(wǎng)站上的好友信息,然后給用戶推薦其好友喜歡的物品;
- 要求新注冊(cè)用戶在首次登錄時(shí)選擇一些興趣標(biāo)簽,根據(jù)收集到的用戶興趣信息,給用戶推薦同類(lèi)的物品;
- 給新用戶或不活躍用戶推薦熱門(mén)排行榜,然后等到用戶數(shù)據(jù)收集到一定的時(shí)候,再切換為個(gè)性化推薦。
五、評(píng)估推薦系統(tǒng)的效果
推薦系統(tǒng)推薦質(zhì)量的高低可以通過(guò)如下指標(biāo)進(jìn)行評(píng)估,作為推薦系統(tǒng)的反饋結(jié)果他們也是算法模型迭代優(yōu)化的依據(jù)。這些指標(biāo)有些可以定量計(jì)算,有些只能定性描述。
(1)預(yù)測(cè)準(zhǔn)確度
準(zhǔn)確度表現(xiàn)在用戶對(duì)推薦內(nèi)容的點(diǎn)擊率,點(diǎn)擊后的各種主動(dòng)行為(購(gòu)買(mǎi)、分享等),停留時(shí)長(zhǎng)等。
(2)覆蓋率
覆蓋率是描述一個(gè)推薦系統(tǒng)對(duì)物品長(zhǎng)尾的發(fā)掘能力。最簡(jiǎn)單的定義是,推薦系統(tǒng)推薦出來(lái)的物品占總物品的比例。
(3)多樣性
良好的推薦系統(tǒng)不僅僅能夠準(zhǔn)確預(yù)測(cè)用戶的喜好,而且能夠擴(kuò)展用戶的視野,幫助用戶發(fā)現(xiàn)那些他們可能會(huì)感興趣,但不那么容易發(fā)現(xiàn)的東西。
比如:你在某個(gè)電商網(wǎng)站買(mǎi)了一雙鞋子,然后你每次登錄這個(gè)網(wǎng)站他都給你推薦鞋子,這種情況你就會(huì)對(duì)推薦系統(tǒng)很失望,這就是典型的不具備多樣性。假如知道了用戶的喜好,推薦系統(tǒng)大部分給他推薦感興趣的,小部分去試探新的興趣是更優(yōu)的策略。
(4)新穎性
新穎的推薦是指給用戶推薦那些他們以前沒(méi)有聽(tīng)說(shuō)過(guò)的物品。
(5)驚喜度
如果推薦結(jié)果和用戶的歷史興趣不相似,但卻讓用戶覺(jué)得滿意,那么就可以說(shuō)推薦結(jié)果的驚喜度很高。與新穎性的區(qū)別是推薦的新穎性?xún)H僅取決于用戶是否聽(tīng)說(shuō)過(guò)這個(gè)推薦結(jié)果。
(6)信任度
如果你有兩個(gè)朋友,一個(gè)人你很信任,一個(gè)人經(jīng)常滿嘴跑火車(chē),那么如果你信任的朋友推薦你去某個(gè)地方旅游,你很有可能聽(tīng)從他的推薦,但如果是那位滿嘴跑火車(chē)的朋友推薦你去同樣的地方旅游,你很有可能不去。這兩個(gè)人可以看做兩個(gè)推薦系統(tǒng),盡管他們的推薦結(jié)果相同,但用戶卻可能產(chǎn)生不同的反應(yīng),這就是因?yàn)橛脩魧?duì)他們有不同的信任度。
(7)實(shí)時(shí)性
推薦系統(tǒng)的實(shí)時(shí)性,包括兩方面:一是實(shí)時(shí)更新推薦列表滿足用戶新的行為變化;二是將新加入系統(tǒng)的物品推薦給用戶。
(8)健壯性
任何能帶來(lái)利益的算法系統(tǒng)都會(huì)被攻擊,最典型的案例就是搜索引擎的作弊與反作弊斗爭(zhēng)。健壯性衡量了推薦系統(tǒng)抗擊作弊的能力。
參考資料:
- 項(xiàng)亮.《智能推薦實(shí)踐》;
- 邢無(wú)刀.《推薦系統(tǒng)三十六計(jì)》。
作者: felixxiao,微信公眾號(hào):PMfelix
本文由 @felixxiao 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自Unsplash,基于CC0協(xié)議
深入淺出,很有幫助
寫(xiě)的真不錯(cuò)!
總結(jié)的很好,期待新的文章!