作者:[email protected],金融科技公司天農(nóng)科技CTO,曾任新浪微博資深推薦算法工程師,考拉FM算法主管,先后負責(zé)微博反垃圾、基礎(chǔ)數(shù)據(jù)挖掘、智能客服平臺、個性化推薦等產(chǎn)品的后端算法研發(fā),為考拉FM從零構(gòu)建了個性化音頻推薦系統(tǒng)。
本文為《程序員》原創(chuàng)文章,未經(jīng)允許不得轉(zhuǎn)載,更多精彩文章請訂閱2017年《程序員》
流動的推薦系統(tǒng)
我們經(jīng)常談?wù)摰耐扑]系統(tǒng)(Recommender System),從形式上看是比較“靜態(tài)”的推薦,通常位于網(wǎng)頁主要信息的周邊,比如電商網(wǎng)站的“看了又看”、“買了又買”。這種推薦系統(tǒng)在大多數(shù)場景下無法獨立撐起一款產(chǎn)品。
依據(jù)維基百科Recommender System詞條的定義:“推薦系統(tǒng)是信息過濾系統(tǒng)的子類,專門用于預(yù)測用戶對一個項目偏好或者評分進行預(yù)測”,則興趣Feed也是一種推薦系統(tǒng):它預(yù)測用戶對社交網(wǎng)絡(luò)中相鄰節(jié)點動態(tài)內(nèi)容喜好程度,并根據(jù)喜好程度決定這些動態(tài)內(nèi)容的展示順序。
Feed是一種信息流,就是我們看到的“動態(tài)”、“新鮮事”。當用戶與一些內(nèi)容源建立了連接(如關(guān)注、贊、收藏等)之后,這些內(nèi)容源產(chǎn)生的新動作,就會源源不斷地通過連接流向用戶,不同內(nèi)容源產(chǎn)生的動態(tài)被聚合后呈現(xiàn)在用戶面前,就是Feed。
傳播社交網(wǎng)絡(luò)動態(tài)的Feed,通常默認按照動態(tài)產(chǎn)生的時間順序出現(xiàn)在你面前,稱為時間線(timeline)。國外的Twitter、Instagram,一開始都是時間線形式的Feed;國內(nèi)的微博、QQ空間、微信朋友圈至今仍然是時間線。
但是一些老牌時間線Feed都有計劃要切換成依據(jù)算法排序的個性化興趣Feed,微博在2012年嘗試過智能排序,Twitter在去年上線了一個叫做“當你不在時發(fā)生了什么”的功能,F(xiàn)acebook甚至早就放棄對其NewsFeed的時間線排序。
出現(xiàn)這種情況的原因主要有兩個。一方面,智能手機的普及和移動網(wǎng)絡(luò)的提速,使得UGC越來越容易,用戶動態(tài)的產(chǎn)生和瀏覽越來越碎片化,數(shù)量和頻度陡增,以前用戶消費無壓力的時間線Feed,開始出現(xiàn)信息過載或者錯過一些更感興趣的內(nèi)容的情況。Instagram說他們的用戶平均錯過了70%的內(nèi)容,F(xiàn)acebook也曾說每個用戶每天只能看完1500條新鮮事中的300條而已。另一方面,時間線Feed不利于商業(yè)化的開展,商業(yè)賬號肆無忌憚地以動態(tài)的方式發(fā)布廣告,不僅影響用戶體驗,還完全繞過平臺方進行商業(yè)活動,形成一種“公共資源悲劇”。
所以,F(xiàn)eed的發(fā)展趨勢必然是從時間線到利用算法重排序,按照用戶興趣的相關(guān)程度展示Feed,一方面要幫用戶解決信息過載問題,另一方面要平衡好平臺上的商業(yè)價值和用戶體驗。
成功的興趣Feed——NewsFeed
一個成功的興趣Feed,就是Facebook的NewsFeed。那是2006年9月,F(xiàn)acebook上線了朋友新鮮事,與之同時問世的還有MiniFeed(個人動態(tài))。上線至今十周年,NewsFeed已經(jīng)成為日收入幾千萬美元的現(xiàn)金牛。
Facebook剛上線這個功能時,曾引發(fā)廣泛的爭議,焦點就是“隱私”問題——我的動態(tài)怎么能讓別人看見呢?用戶不停質(zhì)疑和抗議,又忍不住繼續(xù)使用,F(xiàn)acebook就在爭議聲中增加了最初的隱私控制功能,比如隱藏自己的動態(tài),而NewsFeed就這樣堅持了下來。
2009年,F(xiàn)acebook在收購FriendFeed之后,將其贊(like)功能整合進了NewsFeed中,并開始按照熱門程度對Feed重排序,這又引起了用戶們的反抗,因為大家已經(jīng)習(xí)慣按照時間順序閱讀。
10年來,NewsFeed有數(shù)不清的改進,甚至每天線上會同時部署很多算法版本進行AB測試。但EdgeRank算法是這條改進之路的一個標志性建筑,我們可以將NewsFeed排序策略分為EdgeRank前時代、EdgeRank時代和EdgeRank后時代。
在EdgeRank前時代,按照Facebook首席產(chǎn)品官Chris Cox的說法:“最初,NewsFeed排序就是在拍腦袋,給照片加點權(quán)重,給系統(tǒng)消息降點權(quán)重。”我們的算法工程師們讀到這些,想必要會心一笑:今天高大上的Facebook,又是人工智能又是深度學(xué)習(xí),竟然也是從這個時代走過來的。
之后,Serkan Piantino(現(xiàn)任Facebook人工智能研究院工程總監(jiān))在2010年左右領(lǐng)導(dǎo)開發(fā)了第一版EdgeRank算法。
EdgeRank算法
了解大名鼎鼎的EdgeRank是怎么回事,先看朋友的一條新鮮事(動態(tài))誕生后怎么流動到你的面前: