一直對(duì)各類大熱的推薦算法保持謹(jǐn)慎的懷疑態(tài)度噪径,去年讀了項(xiàng)亮的《推薦系統(tǒng)實(shí)踐》后柱恤,稍稍改變了些看法。了解它的好處在于找爱,在技術(shù)與價(jià)值觀的爭(zhēng)論大賽中梗顺,能把自己擺到一個(gè)比較遠(yuǎn)的位置來(lái)思考,了解后再相互比較车摄,會(huì)有一個(gè)更全面的認(rèn)識(shí)寺谤。就像我的一位朋友對(duì)我說(shuō)的:“你先要知道什么是理性的珍德,你還要知道什么是感性的,理性可能是你最好的選擇矗漾,但是此時(shí)此刻锈候,你仍然選擇了感性〕ü保”
以下是一些讀書(shū)筆記泵琳,希望和大家分享這本好書(shū)。
1.推薦系統(tǒng)的產(chǎn)生
人們從信息匱乏時(shí)代走向了信息過(guò)載時(shí)代誊役,數(shù)字空間的信息膨脹速度遠(yuǎn)遠(yuǎn)超過(guò)人類的接受水平获列,以往的黃頁(yè)、導(dǎo)航等等工具已經(jīng)不夠用了蛔垢,人們希望從大量的信息中篩選出自己感興趣的信息击孩,一些信息提供方也希望自己的信息被人們發(fā)現(xiàn)。
在這種需求下鹏漆,出現(xiàn)了兩種不同的思路巩梢,最終演變成了兩種不同的產(chǎn)品來(lái)幫助人們提升效率。一種思路認(rèn)為艺玲,人們?cè)趯ふ倚畔⑶耙呀?jīng)有了大概的方向括蝠,知道自己想要的東西是什么,我們只需要從海量的信息中篩選出相關(guān)的信息即可饭聚,這種思路演變?yōu)榈漠a(chǎn)品叫做搜索引擎忌警;另一種思路認(rèn)為,人們不需要去關(guān)心自己想要什么秒梳,我們?cè)诤A康男畔⒅姓页瞿遣糠秩藗兿矚g的信息法绵,然后直接給他即可,這種思路演變的產(chǎn)品叫做推薦系統(tǒng)酪碘。
搜索引擎和推薦系統(tǒng)朋譬,解決的都是信息過(guò)載的問(wèn)題。搜索引擎需要用戶主動(dòng)提供準(zhǔn)確的關(guān)鍵詞來(lái)尋找信息婆跑,滿足用戶有明確目的主動(dòng)查找信息需求此熬;推薦系統(tǒng)不需要用戶主動(dòng)提供明確的需求,由系統(tǒng)主動(dòng)推薦信息到用戶面前滑进,在用戶沒(méi)有明確目的的時(shí)候幫助他們發(fā)現(xiàn)信息。
2.推薦系統(tǒng)的類別
推薦系統(tǒng)的類別募谎,分為個(gè)性化推薦和非個(gè)性化推薦扶关。個(gè)性化推薦是指,根據(jù)用戶的興趣和行為数冬,給用戶推薦感興趣的信息节槐。非個(gè)性化推薦指搀庶,不針對(duì)特定用戶,對(duì)全部的用戶推薦同樣的信息铜异。
2.1個(gè)性化推薦
個(gè)性化推薦哥倔,針對(duì)不同用戶推薦不同的信息。實(shí)行個(gè)性化推薦需要滿足兩個(gè)條件:1.存在信息過(guò)載揍庄;2.用戶沒(méi)有明確的需求咆蒿。
基于以上兩個(gè)條件來(lái)看,某些領(lǐng)域天然的具有使用個(gè)性化推薦的優(yōu)勢(shì)蚂子,比如:新聞沃测,用戶沒(méi)有十分明確的需求(可能有比較大類型的口味偏差)且信息量太大;而某些領(lǐng)域天然的不具備這樣的條件食茎,比如被寡頭壟斷的行業(yè)(種類太少)蒂破,或者信息更新速度太慢的行業(yè)。
而有些產(chǎn)品就不太適合個(gè)性化推薦别渔,比如我經(jīng)常用的外賣app回家吃飯附迷,不知道哪個(gè)版本開(kāi)始就把推薦的功能放在了核心位置。首先哎媚,一個(gè)固定地理位置附近的回家吃飯家廚相對(duì)有限挟秤,根本不存在信息過(guò)載的問(wèn)題,隨便翻幾下就能翻到底了抄伍;其次艘刚,對(duì)于很多用戶來(lái)說(shuō)已經(jīng)有了部分明確的需求(口味等),一個(gè)篩選或者搜索已經(jīng)夠用了截珍。所以這個(gè)時(shí)候使用個(gè)性化推薦攀甚,個(gè)人認(rèn)為不是一個(gè)投入產(chǎn)出比劃算的場(chǎng)景。
作者特別指出了一種獨(dú)特的個(gè)性化推薦——個(gè)性化廣告岗喉,廣告是整個(gè)互聯(lián)網(wǎng)的重要商業(yè)模式秋度,需要把廣告和傳統(tǒng)的個(gè)性化推薦加以區(qū)分:
?狹義個(gè)性化推薦——幫用戶找到感興趣的信息——以用戶為核心
?個(gè)性化廣告推薦——幫廣告找到對(duì)它們感興趣的用戶——以廣告為核心
2.2非個(gè)性化推薦
非個(gè)性化推薦不針對(duì)特定用戶,對(duì)全部的用戶推薦同樣的信息钱床。非個(gè)性推薦的算法比較簡(jiǎn)單荚斯,有些信息完全可以讓人工來(lái)做(比如互聯(lián)網(wǎng)運(yùn)營(yíng)同學(xué),或者某一領(lǐng)域的專家)查牌。
非個(gè)性化推薦可以解決兩個(gè)問(wèn)題:1.讓全局優(yōu)秀內(nèi)容被大家都看到事期;2.讓新加入的優(yōu)秀內(nèi)容被發(fā)現(xiàn)。
非個(gè)性化推薦在實(shí)際應(yīng)用中也同樣常用纸颜,比如兽泣,一個(gè)電商網(wǎng)站的top10排行榜,一個(gè)音樂(lè)網(wǎng)站的專家推薦欄目等等胁孙。
2.3小思考
選擇個(gè)性化推薦還是非個(gè)性化推薦唠倦,需要根據(jù)產(chǎn)品的具體場(chǎng)景來(lái)分析称鳞,主要取決于供給資源的信息量,供給資源可能是商品稠鼻、新聞冈止、音樂(lè)等等。當(dāng)然候齿,對(duì)于大型平臺(tái)來(lái)說(shuō)熙暴,信息量是讓它變大的基礎(chǔ)資源,所以各類推薦算法就變得十分重要了毛肋,對(duì)于一些小的產(chǎn)品來(lái)說(shuō)怨咪,還是先把核心精力放在其他地方比較好。
3.個(gè)性化推薦算法
個(gè)性化推薦算法包含非常的種類润匙,這里可以簡(jiǎn)單介紹幾種比較好理解的協(xié)同過(guò)濾算法诗眨。
協(xié)同過(guò)濾算法里面比較常用、也比較好理解的有兩種:基于用戶的協(xié)同過(guò)濾算法UserCF和基于物品的協(xié)同過(guò)濾算法ItemCF孕讳。這兩種都屬于基于鄰域的方法neighborhood-based匠楚。
UserCF的核心思路是,給用戶推薦和他興趣相似的其他用戶喜歡的物品厂财。先找到和目標(biāo)用戶興趣相似的用戶集合芋簿,再找到這個(gè)集合中的用戶喜歡的,且目標(biāo)用戶沒(méi)有聽(tīng)說(shuō)過(guò)的物品推薦給目標(biāo)用戶璃饱。
ItemCF的核心思路是与斤,給用戶推薦和他之前喜歡的物品相似的物品。先計(jì)算物品的相似度荚恶,再根據(jù)物品的相似度和用戶的歷史行為給用戶生成推薦列表撩穿。
了解UserCF和ItemCF的同時(shí),還需要了解下用戶的行為分類谒撼。
用戶的行為食寡,按反饋的明確性,可以分為以下兩種類別:
對(duì)于隱性反饋行為數(shù)據(jù)廓潜,只有正反饋數(shù)據(jù)抵皱,所以要進(jìn)行推薦需要采集負(fù)反饋數(shù)據(jù),找到負(fù)反饋數(shù)據(jù)辩蛋,目的是為了不給用戶進(jìn)行推薦此類信息呻畸。一般認(rèn)為,很熱門(mén)但是用戶卻沒(méi)有行為的信息堪澎,比冷門(mén)信息更能表示用戶不感興趣擂错,因?yàn)槔溟T(mén)的信息,用戶可能壓根沒(méi)有發(fā)現(xiàn)樱蛤,所以談不上興趣钮呀。
用戶的行為,按反饋的方向昨凡,可以分為以下兩種類別:
UserCF和ItemCF爽醋,對(duì)比來(lái)看,存在以下差異:
關(guān)于個(gè)性化推薦算法便脊,還有很多種類蚂四,比如隱語(yǔ)義模型、基于關(guān)聯(lián)規(guī)則推薦等等哪痰,由于篇幅原因遂赠,在這里就不一一列舉,我整理了個(gè)簡(jiǎn)單的表格供參考晌杰。需要指出的是,每種算法都不是最優(yōu)的,他們都有自身的局限問(wèn)題饱须,產(chǎn)品需要根據(jù)自身的特點(diǎn)來(lái)選擇合適的算法薪伏,解決實(shí)實(shí)在在的問(wèn)題。
4.推薦系統(tǒng)的冷啟動(dòng)問(wèn)題
在第一節(jié)我們說(shuō)到爹殊,推薦系統(tǒng)不需要用戶主動(dòng)提供明確的需求蜕乡,由系統(tǒng)主動(dòng)推薦信息到用戶面前,在用戶沒(méi)有明確目的的時(shí)候幫助他們發(fā)現(xiàn)信息梗夸,冷啟動(dòng)就指的是這個(gè)過(guò)程中层玲,用戶、信息的從0到1過(guò)程反症。
推薦系統(tǒng)的冷啟動(dòng)大概包含三個(gè)方面:1.在用戶新入駐一個(gè)平臺(tái)時(shí)辛块,由于沒(méi)有歷史數(shù)據(jù),我們?nèi)绾谓o用戶做個(gè)性化推薦惰帽。2憨降、我們的系統(tǒng)新上線了一個(gè)物品(商品、音樂(lè)该酗、新聞)授药,如何把這個(gè)新的信息推薦給感興趣的用戶。3呜魄、如果我們從0開(kāi)始設(shè)計(jì)悔叽,如何在用戶少、信息少的情況下來(lái)設(shè)計(jì)推薦系統(tǒng)爵嗅。
要解決推薦系統(tǒng)的冷啟動(dòng)問(wèn)題娇澎,作者提供了很多辦法,這里也就不一一列舉睹晒,這里需要知道冷啟動(dòng)的概念即可趟庄。也推薦有興趣的朋友購(gòu)買原書(shū)來(lái)仔細(xì)閱讀括细。
5.推薦系統(tǒng)的其他特性
本書(shū)還詳細(xì)討論了推薦系統(tǒng)的其他問(wèn)題,比如基于標(biāo)簽的推薦系統(tǒng)戚啥,對(duì)于內(nèi)容種類特別的多的產(chǎn)品還是很有用的奋单,比如豆瓣電影中,你在評(píng)價(jià)時(shí)就可以貼標(biāo)簽上去猫十。由于標(biāo)簽系統(tǒng)一般是UGC的览濒,所以對(duì)于大數(shù)據(jù)分析來(lái)說(shuō)是一種非常好的數(shù)據(jù),所以對(duì)基于商品的數(shù)據(jù)分析特別在乎的業(yè)務(wù)拖云,上標(biāo)簽系統(tǒng)應(yīng)該是一種特別好的策略贷笛。
另外本書(shū)還討論了上下文信息在推薦系統(tǒng)中的應(yīng)用,缺乏上下文信息會(huì)導(dǎo)致很多問(wèn)題宙项,比如在夏天推薦給用戶冬天的衣服乏苦,在中關(guān)村給用戶推薦望京的餐廳等等,為了解決這些問(wèn)題杉允,在推薦系統(tǒng)中需要引入上下文信息邑贴,用來(lái)盡可能地提升推薦信息的準(zhǔn)確性。
最后叔磷,本書(shū)還講了關(guān)于社交網(wǎng)絡(luò)的推薦拢驾,這里列舉一個(gè)我覺(jué)得很有意思的社交網(wǎng)絡(luò)分類:
l社會(huì)圖譜(social graph)——基于人們的關(guān)系形成的,社會(huì)改基。例如:facebook繁疤,人人網(wǎng),微信等
l興趣圖譜(interest graph)——通過(guò)人們之間的共同興趣和信念形成的秕狰,社區(qū)稠腊。例如:twitter,微博鸣哀,知乎架忌,豆瓣小組等。
可能是我缺乏社交產(chǎn)品的經(jīng)驗(yàn)我衬,這個(gè)分類讓我覺(jué)得很巧妙叹放,二者都有相互交織的地方,或許雙方也都想做對(duì)方核心結(jié)構(gòu)內(nèi)的事情挠羔,人與人之間的關(guān)系搬到數(shù)字空間后發(fā)生了多少變化井仰,又有哪些永不改變,仔細(xì)想想真是十分有趣破加。
最后俱恶,這本書(shū)不僅適合程序員入門(mén)看,同時(shí)也適合產(chǎn)品經(jīng)理、運(yùn)營(yíng)以及真正熱愛(ài)生活的人合是。學(xué)習(xí)推薦系統(tǒng)的思路了罪,了解推薦系統(tǒng)的基本知識(shí),也能提醒人們思考技術(shù)與人之間的關(guān)系端仰,在數(shù)字世界與物理世界的混合體中捶惜,我們?cè)撊绾蜗嗵帯?/p>