一文讀懂無處不在的智能推薦系統(tǒng)

對于智能推薦系統(tǒng)相信大家已經(jīng)不再陌生了,現(xiàn)在它已經(jīng)在內(nèi)容分發(fā)平臺、電商、廣告、音視頻等互聯(lián)網(wǎng)產(chǎn)品中隨處可見。

為什么越來越多的產(chǎn)品需要推薦系統(tǒng)?主要有以下兩方面的原因:
信息過載
互聯(lián)網(wǎng)上每天都在產(chǎn)生海量的信息,用戶想要迅速和準確地找到他們感興趣的內(nèi)容或商品越來越困難。如果用戶的目標明確,他可以使用搜索(其實搜索也是有關(guān)鍵字的推薦、推薦是無關(guān)鍵字的搜索),但很多時候我們的用戶是沒有明確目標的,這時候如果產(chǎn)品能夠高效匹配用戶感興趣的內(nèi)容或商品,就能提高用戶體驗和粘性,獲取更多的商業(yè)利益。
長尾效應(yīng)
絕大多數(shù)用戶的需求往往是關(guān)注主流內(nèi)容和商品,而忽略相對冷門的大量“長尾”信息, 導(dǎo)致很多優(yōu)秀的內(nèi)容或商品沒有機會被用戶發(fā)現(xiàn)和關(guān)注。如果大量長尾信息無法獲取到流量,信息生產(chǎn)者就會離開平臺,影響平臺生態(tài)的健康發(fā)展。(如果想了解更多長尾的相關(guān)知識,可以點擊下方的鏈接)
1.認識推薦系統(tǒng)
既然推薦系統(tǒng)如此重要,那推薦系統(tǒng)到底是什么呢?世界是一個數(shù)字化的大網(wǎng),從人類角度來看里面只有兩類節(jié)點:人和其他。萬事萬物有相互連接的大趨勢,比如人和人傾向于有更多社會連接,于是有了各種社交產(chǎn)品;比如人和商品有越來越多的消費連接,于是有了各種電商產(chǎn)品;人和資訊有越來越多的閱讀連接,于是有了信息流產(chǎn)品。推薦系統(tǒng)本質(zhì)上處理的是信息,它的主要作用是在信息生產(chǎn)方和信息消費方之間搭建起橋梁,從而獲取人的注意力。
推薦系統(tǒng)定義:推薦系統(tǒng)是人與信息的連接器,用已有的連接去預(yù)測未來用戶和物品之間會出現(xiàn)的連接。
下面是個人繪制的推薦系統(tǒng)架構(gòu)圖,一個完整的推薦系統(tǒng)通常由以下部分組成:用戶端前臺展示、后臺日志系統(tǒng)、推薦算法引擎。

前臺展示:就是你在app或網(wǎng)頁上看到的推薦、猜你喜歡、你的個性化歌單、經(jīng)常一起購買的商品等部分展示的內(nèi)容。
后臺日志系統(tǒng):用戶數(shù)據(jù)、用戶行為數(shù)據(jù)、內(nèi)容數(shù)據(jù)等日志數(shù)據(jù)采集、存儲、清洗和分析,從而建立畫像體系,包括用戶畫像和物品畫像。
推薦算法引擎:各種算法模型、模型訓(xùn)練配置、推薦效果評估體系。
那要搭建一個推薦系統(tǒng),需要哪些投入呢?首先要搭建團隊,其中算法工程師是必不可少的,當前也是薪酬較高的;其次還要購置存儲和計算資源,如果不是云產(chǎn)品你可能還要自己購置硬件設(shè)備;然后還有長時間的數(shù)據(jù)積累和算法優(yōu)化。推薦系統(tǒng)是一個需要長期持續(xù)投入的東西,從投入/產(chǎn)出比和時間成本上來說,產(chǎn)品經(jīng)理不要隨便拍大腿就要做一個智能推薦系統(tǒng)。那如何判斷一個產(chǎn)品需不需要推薦系統(tǒng)呢?
第一,看看產(chǎn)品的目的。如果一款產(chǎn)品的目的是建立越多連接越好,那么它最終需要一個推薦系統(tǒng)。有哪些產(chǎn)品的目的不是建立連接呢?一種典型的產(chǎn)品就是工具類,如果是單純提高人類某些工作的效率而存在的產(chǎn)品,比如AXURE、ERP,則不需要。雖然如今很多產(chǎn)品都從工具切入想做成社區(qū),但至少在工具屬性很強時不需要推薦系統(tǒng)。
第二,看看產(chǎn)品現(xiàn)有的連接。如果你的產(chǎn)品中物品很少,少到用人工就可以應(yīng)付過來,那么用戶產(chǎn)生的連接肯定不多,因為連接數(shù)量的瓶頸在于物品的數(shù)量,這時候不適合搭建推薦系統(tǒng)。應(yīng)該要有長尾效應(yīng)才可能讓推薦系統(tǒng)發(fā)揮效果。
2.推薦算法
要說推薦系統(tǒng)里最經(jīng)典的算法,那非協(xié)同過濾莫屬。協(xié)同過濾又稱基于領(lǐng)域的算法,核心在于協(xié)同,互幫互助。其又可以分為兩類:基于用戶的協(xié)同過濾算法(UserCF)、基于物品的協(xié)同過濾算法(ItemCF)。
基于用戶的協(xié)同過濾算法(UserCF)
你有沒有和一個人有相見恨晚的感覺,你們有很多共同的愛好,聽相同風(fēng)格的音樂、喜歡讀同類型的書......當你自己播放器里的音樂聽到膩了的時候,是不是很想問一下這個人有沒有什么好聽的音樂推薦,這就是經(jīng)典的基于用戶的協(xié)同過濾。以前你想找這樣一個人可能很難,但是現(xiàn)在互聯(lián)網(wǎng)的智能推薦系統(tǒng)可以很容易地幫你找到這個人,而且不用你去問,他會主動告訴你我最近聽了什么音樂,特別好,你要不要試試鴨?
當一個用戶需要個性化推薦時,可以先通過用戶的相似度計算找到和他有相似興趣的其他用戶,然后把那些用戶喜歡而他沒有聽說過的物品推薦給他,這種方法稱為基于用戶的協(xié)同過濾算法。

如用戶A曾經(jīng)看過《增長黑客》、《流量池》和《原則》,用戶B曾經(jīng)看過《增長黑客》和《原則》,當我們給B推薦時,推薦系統(tǒng)計算出A和B的相似度比較高,而A曾經(jīng)讀過的《流量池》用戶B沒有讀過,因此就將《流量池》推薦給B用戶,這就是經(jīng)典的基于用戶的協(xié)同過濾
由上面的描述可知,基于用戶的協(xié)同過濾算法主要包括兩個步驟:
(1)找到和目標用戶興趣相似的用戶集合;
(2)找到這個集合中的用戶喜歡的,且目標用戶沒有聽說過的物品推薦給目標用戶。
基于物品的協(xié)同過濾算法(ItemCF)
介紹基于物品的協(xié)同過濾之前,先來看下基于用戶的協(xié)同過濾可能帶來的問題。
-
用戶數(shù)據(jù)量比較大時,需要計算的用戶之間的相似度會比較多,計算量大。
-
構(gòu)建用戶向量時是使用用戶對已消費過的物品的評分/行為來構(gòu)建的,用戶的興趣是會隨時間改變的,導(dǎo)致計算相似用戶的頻率較高。
-
數(shù)據(jù)比較稀疏,用戶和用戶之間有共同的消費行為實際上是比較少的,而且一般都是一些熱門物品,對發(fā)現(xiàn)用戶興趣幫助也不大。
基于物品的協(xié)同過濾算法給用戶推薦那些和他們之前喜歡的物品相似的物品。

用戶A、B和C分別喜歡的物品如圖所示,則計算物品2與物品1的相似度的公式為:
物品2與物品1的相似度=同時喜歡物品1和物品2的用戶數(shù)/喜歡物品1的用戶數(shù)=2/3;
物品3與物品1的相似度=0;
物品4與物品1的相似度=1。
如果對一個喜歡了物品1的用戶D進行推薦,則推薦的優(yōu)先級為4>2>3。
基于物品的協(xié)同過濾算法主要包括如下兩個步驟:
(1)計算物品之間的相似度;
(2)根據(jù)物品的相似度和用戶的歷史行為給用戶生成推薦列表。
以上只是協(xié)同過濾算法的基本原理,現(xiàn)實中的算法模型要遠比這個復(fù)雜,而且很少采用單一模型,基本是組合模型。我也是剛剛才開始做推薦系統(tǒng),至于更為復(fù)雜的矩陣分解、基于機器學(xué)習(xí)的推薦算法等后續(xù)我自己搞明白再單獨成文分享給大家。
3.推薦系統(tǒng)的冷啟動
根據(jù)推薦系統(tǒng)的定義可知,推薦系統(tǒng)需要已有的連接去預(yù)測未來用戶和物品之間會出現(xiàn)的連接。對于BAT(百度騰訊阿里)、TMD(頭條美團滴滴)這樣的巨頭他們已經(jīng)積累了大量的用戶數(shù)據(jù),在某個產(chǎn)品上智能推薦的時候不存在冷啟動的問題,但是對于很多沒有大量用戶數(shù)據(jù)的產(chǎn)品來說,如何在這種情況下設(shè)計推薦系統(tǒng)并且讓用戶對推薦結(jié)果滿意,從而愿意使用推薦系統(tǒng),就是冷啟動的問題。
冷啟動問題主要分兩大類:
用戶冷啟動
用戶冷啟動主要解決如何給新用戶或者不活躍用戶做個性化推薦的問題。當新用戶到來時,我們沒有他的行為數(shù)據(jù),所以也無法根據(jù)他的歷史行為預(yù)測其興趣,從而無法借此給他做個性化推薦。
物品冷啟動
物品冷啟動主要解決如何將新的物品或展示次數(shù)較少的物品推薦給可能對它感興趣的用戶這一問題。
一般來說,可以參考如下方式來解決冷啟動的問題:
1、利用用戶注冊時提供的年齡、性別等數(shù)據(jù)做粗粒度的個性化推薦;
2、利用用戶的社交網(wǎng)絡(luò)賬號登錄(需要用戶授權(quán)),導(dǎo)入用戶在社交網(wǎng)站上的好友信息,然后給用戶推薦其好友喜歡的物品;
3、要求新注冊用戶在首次登錄時選擇一些興趣標簽,根據(jù)收集到的用戶興趣信息,給用戶推薦同類的物品;
4、給新用戶或不活躍用戶推薦熱門排行榜,然后等到用戶數(shù)據(jù)收集到一定的時候,再切換為個性化推薦。
4.如何評估推薦系統(tǒng)的效果
推薦系統(tǒng)推薦質(zhì)量的高低可以通過如下指標進行評估,作為推薦系統(tǒng)的反饋結(jié)果他們也是算法模型迭代優(yōu)化的依據(jù)。這些指標有些可以定量計算,有些只能定性描述。
一、預(yù)測準確度
準確度表現(xiàn)在用戶對推薦內(nèi)容的點擊率,點擊后的各種主動行為(購買、分享等),停留時長等。
二、覆蓋率
覆蓋率是描述一個推薦系統(tǒng)對物品長尾的發(fā)掘能力。最簡單的定義是,推薦系統(tǒng)推薦出來的物品占總物品的比例。
三、多樣性
良好的推薦系統(tǒng)不僅僅能夠準確預(yù)測用戶的喜好,而且能夠擴展用戶的視野,幫助用戶發(fā)現(xiàn)那些他們可能會感興趣,但不那么容易發(fā)現(xiàn)的東西。比如你在某個電商網(wǎng)站買了一雙鞋子,然后你每次登錄這個網(wǎng)站他都給你推薦鞋子,這種情況你就會對推薦系統(tǒng)很失望,這就是典型的不具備多樣性。假如知道了用戶的喜好,推薦系統(tǒng)大部分給他推薦感興趣的,小部分去試探新的興趣是更優(yōu)的策略。
四、新穎性
新穎的推薦是指給用戶推薦那些他們以前沒有聽說過的物品。
五、驚喜度
如果推薦結(jié)果和用戶的歷史興趣不相似,但卻讓用戶覺得滿意,那么就可以說推薦結(jié)果的驚喜度很高。與新穎性的區(qū)別是推薦的新穎性僅僅取決于用戶是否聽說過這個推薦結(jié)果。
六、信任度
如果你有兩個朋友,一個人你很信任,一個人經(jīng)常滿嘴跑火車,那么如果你信任的朋友推薦你去某個地方旅游,你很有可能聽從他的推薦,但如果是那位滿嘴跑火車的朋友推薦你去同樣的地方旅游,你很有可能不去。這兩個人可以看做兩個推薦系統(tǒng),盡管他們的推薦結(jié)果相同,但用戶卻可能產(chǎn)生不同的反應(yīng),這就是因為用戶對他們有不同的信任度。
七、實時性
推薦系統(tǒng)的實時性,包括兩方面:一是實時更新推薦列表滿足用戶新的行為變化;二是將新加入系統(tǒng)的物品推薦給用戶。
八、健壯性
任何能帶來利益的算法系統(tǒng)都會被攻擊,最典型的案例就是搜索引擎的作弊與反作弊斗爭。健壯性衡量了推薦系統(tǒng)抗擊作弊的能力。
參考資料:
項亮,《智能推薦實戰(zhàn)》;
邢無刀,《推薦系統(tǒng)三十六計》。
