EdgeRank
【干貨分享】Facebook NewsFeed是什么意思以及該算法(EdgeRank)的解析
運(yùn)營(yíng)實(shí)操 ? 孤舟一葉 發(fā)表了文章 ? 0 個(gè)評(píng)論 ? 26342 次瀏覽 ? 2017-12-14 14:33
NewsFeed 怎么來的
2004年,F(xiàn)acebook 問世,兩年后的9月份,NewsFeed 問世,同時(shí)問世的還有MiniFeed(個(gè)人動(dòng)態(tài))。今年是 NewsFeed 上線十周年了,這10年里,F(xiàn)acebook 是怎么一步一步把 NewsFeed 打造成了日收入幾千萬美金的現(xiàn)金牛的?不管你對(duì)這充滿銅臭的問題感不感興趣,反正我很感興趣。
今天我們都已經(jīng)習(xí)慣了把照片、文字等內(nèi)容主動(dòng)分享給好友,但是當(dāng)時(shí) Facebook 上線了這個(gè)功能時(shí),引起了廣泛的爭(zhēng)議,焦點(diǎn)就是“隱私”問題,用戶認(rèn)為我發(fā)的動(dòng)態(tài)怎么能讓別人看見呢[1]?用戶一直不停質(zhì)疑和抗議,又忍不住繼續(xù)使用,F(xiàn)acebook 就這樣在爭(zhēng)議聲中增加了最初的隱私控制,比如隱藏自己的動(dòng)態(tài),而 NewsFeed 就這樣堅(jiān)持了下來。看來,小扎真是一個(gè)撩妹高手,看穿了用戶們“嘴上說不要,身體卻誠(chéng)實(shí)”的內(nèi)在。
隨著用戶們漸漸地愛上了瀏覽好友的分(xuan)享(yao)了,2009年,F(xiàn)acebook 加上了贊(like)功能(FriendFeed 在2007年發(fā)明了贊按鈕,F(xiàn)riendFeed 后來于2009年被 Facebook 收購,并將贊這個(gè)功能整合進(jìn)來),開始按照熱門程度對(duì) Feed 重排序,不出意外,這又引起了用戶們的反抗,因?yàn)榇蠹乙呀?jīng)習(xí)慣按照時(shí)間順序閱讀。
伴隨這么多爭(zhēng)議,為什么 Facebook 一直堅(jiān)持做興趣feed?從數(shù)據(jù)上看,平均每個(gè)用戶每天待看的新鮮事有1500條之多,但平均每個(gè)用戶每天只能閱讀300條;從商業(yè)角度,將 Feed 排序交給上帝的做法,非常不利于商業(yè)化且有損用戶體驗(yàn),公共主頁可以使用很多伎倆吸引用戶關(guān)注,然后肆無忌憚發(fā)廣告。
10年來,NewsFeed 有數(shù)不清的改進(jìn),甚至每天線上會(huì)同時(shí)部署很多算法版本進(jìn)行AB測(cè)試。但 EdgeRank 是這條優(yōu)化迭代之路上的一個(gè)標(biāo)志性建筑。我們可以將 NewsFeed 排序策略按照 EdgeRank 分為 PreEdgeRank 時(shí)代、InEdgeRank 時(shí)代、PostEdgeRank 時(shí)代。
EdgeRank 算法
EdgeRank,顧名思義,就是對(duì)邊(Edge)進(jìn)行排序(Rank)。
每一個(gè)朋友的每一個(gè)操作(Action)都可能以新鮮事(News)的方式呈現(xiàn)在用戶面前,比如朋友發(fā)布了一條新鮮事,朋友贊了朋友的朋友一條新鮮事,朋友評(píng)論了朋友的朋友一條新鮮事,朋友給自己的照片加了一個(gè)標(biāo)簽,等等。稍微用腳后跟想一想就知道,按照這樣羅列的話,每個(gè)用戶得看多少新鮮事?于是 FB 就想在一條動(dòng)態(tài)呈現(xiàn)給一個(gè)用戶之前,先預(yù)估一下這個(gè)用戶對(duì)這條新鮮事感興趣程度。在 FB 的定義下,一個(gè) Action 就是一個(gè) Edge,所以這套量化興趣的算法就叫做 EdgeRank。
別看今天 Facebook 各種高大上,又是深度學(xué)習(xí)又是人工智能,要知道,在 EdgeRank 提出之前,F(xiàn)B 也是有過刀耕火種時(shí)代的,F(xiàn)B 的首席產(chǎn)品官 Chris Cox 談及早期 NewsFeed 是這樣說的:
“In the beginning, News Feed ranking was turning knobs. Turn up photos a little bit, turn down platform stories a little bit.”(最初,NewsFeed 排序就是在主觀拍腦袋,給照片加點(diǎn)權(quán)重,給平臺(tái)動(dòng)態(tài)消息降點(diǎn)權(quán)重)
“a photo might be worth 5 points, while joining a group was worth 1 point” (把照片權(quán)重定為5,把加群權(quán)重定為1)
國(guó)內(nèi)算法工程師們聽到這些,想必都要會(huì)心地笑了:原來 FB 也是從這個(gè)時(shí)代走過來的。但 Facebook 不同的是,這只是暫時(shí)的情形,他們已經(jīng)走到更高級(jí)的階段了。
Serkan Piantino 在2010年左右領(lǐng)導(dǎo)并開發(fā)了第一版 EdgeRank 算法。下面說說大名鼎鼎的 EdgeRank 是怎么回事。
EdgeRank 主要有三個(gè)因素在起作用:
親密度(Affinity Score)
邊的權(quán)重(Edge Weight)
新鮮程度(Time Decay)
想象一條內(nèi)容誕生后,途經(jīng)什么路徑流動(dòng)到你的面前?
首先經(jīng)你的一個(gè)朋友(或者你的關(guān)注源)的之手產(chǎn)生了一條新鮮事(他發(fā)布、贊、加標(biāo)簽這些產(chǎn)生了新鮮事);
然后經(jīng)過你這個(gè)朋友(或者你的關(guān)注源)的介紹,到了你家門口,你一開門(登錄)就可能看見它;
內(nèi)容不多時(shí),開門一個(gè)一個(gè)寒暄可能還行,它們也等得起,也無所謂先來后到,內(nèi)容太多時(shí),就得考慮個(gè)先來后到了。
這三個(gè)步驟,就大致刻畫了 EdgeRank 的思想了,其實(shí)還是很簡(jiǎn)單直接的。
親密度對(duì)應(yīng)了第二個(gè)步驟背后的思想,那么多人介紹過來,我們當(dāng)然要優(yōu)先照顧更“喜歡”的人了,親密度的量化要考慮平常里你和這個(gè)朋友“走動(dòng)”是否頻繁,連接是否緊密。主要考慮下面幾點(diǎn):
你們連接的強(qiáng)度,點(diǎn)贊之交,還是評(píng)論之交,或是私信之交,連接方式不同,強(qiáng)度就不同;
你們連接的頻繁程度,一日百贊,還是百日一贊,差別也很大;
你們有多久沒有建立連接了,一年沒有了,關(guān)系自然就更淡了;
親密度是單向的,也就是說你對(duì)朋友的親密度,和朋友對(duì)你的親密度可能不一樣哦。
你看,看似神秘的 EdgeRank 算法,其實(shí)跟大家不太待見的雞湯居然意思是一樣的,是不是覺得它竟然如此平易近人?
邊的權(quán)重也很直接,其實(shí)它反映了產(chǎn)生一條新鮮事的成本,成本越高的,權(quán)重越大。點(diǎn)贊、評(píng)論、發(fā)一條文字、發(fā)一張照片、發(fā)一個(gè)鏈接,背后用戶付出的成本不一樣,反應(yīng)在邊的權(quán)重上也就不一樣。顯然,你點(diǎn)個(gè)贊的成本,和你發(fā)布一條新鮮事的成本差別很多。
最后,新鮮程度,也是一個(gè)符合直覺的自然假設(shè):NewsFeed 總是青睞 New 一些的 Feed,新的新鮮事總體上更可能得到用戶的臨幸。FB 用了一個(gè)類似指數(shù)衰減的函數(shù)來量化動(dòng)態(tài)的新舊程度。
三個(gè)分?jǐn)?shù),最終用相乘的方式共同作用于每一條新鮮事的分?jǐn)?shù),用于排序和篩選。
這個(gè)排序方法的確是很簡(jiǎn)單,基本上只考慮了社交方面的因素,而沒有考慮太多內(nèi)容本身對(duì)用戶吸引力。
從公開的資料看 EdgeRank,并不是什么高深的算法,它只是量化了三個(gè)主要因素,然后主觀地相乘,而沒有任何目標(biāo)優(yōu)化思想在背后,根據(jù) Facebook 披露的消息看,早期的 EdgeRank 的確沒有引入機(jī)器學(xué)習(xí),所以根本稱不上是智能的算法。
為什么 EdgeRank 這么有名?因?yàn)樗窃贔8開發(fā)者大會(huì)上公開介紹過的,經(jīng)過一知半解的媒體渲染,變成了一個(gè)神秘高深的存在。
后 EdgeRank 時(shí)代
2011年之后,F(xiàn)acebook 內(nèi)部就不再提 EdgeRank 算法了,因?yàn)橛脩魯?shù)和廣告主的飛增,導(dǎo)致 NewsFeed 的排序算法必須要更上一層樓。如今月活躍超過10億用戶,約2000萬的公共主頁,移動(dòng)設(shè)備貢獻(xiàn)了大多數(shù)流量,復(fù)雜的上下文因素,必須引入機(jī)器學(xué)習(xí)才能 Hold 住整個(gè)場(chǎng)面。
在原來 EdgeRank 的基礎(chǔ)上,更加細(xì)致地定義了不同層級(jí)的親密度。用深度神經(jīng)網(wǎng)絡(luò)理解圖片內(nèi)容和文字內(nèi)容,從而可以知道相片中的物體是不是用戶感興趣的,可以知道新鮮事的討論話題。隨著產(chǎn)品迭代,也加入了更多產(chǎn)品特征,諸如閱讀時(shí)間長(zhǎng)短、視頻內(nèi)容、鏈接內(nèi)容等,取關(guān)、隱藏一個(gè)源。前前后后一共考慮了10萬+的變量(模型的特征空間應(yīng)該會(huì)更高),如果還按照原來的方式去調(diào)節(jié)權(quán)重,顯然既不科學(xué)又很低效。
從 Facebook 的機(jī)器學(xué)習(xí)應(yīng)用博客頁面可以看到,2010年之后就開始逐漸有機(jī)器學(xué)習(xí)方面的文章出現(xiàn)了。
相關(guān)資料顯示,2011年之后的 NewsFeed 排序算法,全面轉(zhuǎn)向了機(jī)器學(xué)習(xí),用優(yōu)化理論來決定每個(gè)因素的權(quán)重,將人從繁雜的策略量化中解放出來。
在被機(jī)器學(xué)習(xí)接管后的 NewsFeed,很多地方都更加細(xì)致。
用機(jī)器學(xué)習(xí)預(yù)估新鮮事的質(zhì)量。通過構(gòu)造了一份問卷調(diào)查,訪問了若干用戶來收集數(shù)據(jù),用收集的數(shù)據(jù)構(gòu)建了一個(gè)機(jī)器學(xué)習(xí)模型,用于 NewsFeed 排序時(shí)預(yù)測(cè)一條動(dòng)態(tài)的質(zhì)量,將預(yù)測(cè)的質(zhì)量分?jǐn)?shù)作為最終排序的一個(gè)特征。用樹模型構(gòu)造離散特征,結(jié)合最常見的LR模型預(yù)估廣告點(diǎn)擊率。
除了全面轉(zhuǎn)向機(jī)器學(xué)習(xí)之外,NewsFeed 團(tuán)隊(duì)也在重新思考人和算法的關(guān)系。他們要關(guān)心的是到底“如何把用戶真正最關(guān)心的找出來”,而不僅僅是“提高點(diǎn)擊率”。Facebook 一直是數(shù)據(jù)驅(qū)動(dòng)的,也是他們能夠在爭(zhēng)議中把 NewsFeed 堅(jiān)持下來的信念來源,而是不是唯數(shù)據(jù)馬首是瞻,團(tuán)隊(duì)內(nèi)部有很多思考,也有很多變化。
僅舉幾例:
團(tuán)隊(duì)發(fā)現(xiàn)有85%的隱藏新鮮事操作來自5%的人,經(jīng)過與這些用戶溝通才發(fā)現(xiàn),原來這5%的人把“隱藏”當(dāng)作郵件里的“標(biāo)記已讀”了,對(duì)喜不喜歡的新鮮事只要看過就會(huì)點(diǎn)擊隱藏。
對(duì)于悲傷的事情,用戶可能關(guān)心但不會(huì)點(diǎn)贊的。
對(duì)于有些點(diǎn)贊,用戶可能并不是真的感興趣,只是“點(diǎn)贊狂魔”發(fā)狂而已。
用戶閱讀一篇長(zhǎng)帖子,讀到一半不讀了,也并不能說明他對(duì)這篇帖子不感興趣。
這些 case,都讓他們開始關(guān)注到機(jī)器學(xué)習(xí)和數(shù)據(jù)的局限。
于是,在算法團(tuán)隊(duì)之外,F(xiàn)acebook 搭建了一個(gè)遍布全球的人肉評(píng)測(cè)小組。人肉評(píng)測(cè)小組不是簡(jiǎn)單地對(duì)算法篩選結(jié)果進(jìn)行喜歡/不喜歡的標(biāo)注,而是會(huì)非常深入地闡述為什么喜歡/不喜歡算法篩選結(jié)果,而且會(huì)與工程師詳細(xì)交流評(píng)測(cè)結(jié)果,因?yàn)檫@種人肉評(píng)測(cè)方式可以有效地拆穿數(shù)據(jù)說謊,讓產(chǎn)品遠(yuǎn)離一味追求提高數(shù)據(jù)指標(biāo)的怪圈。
除此之外,產(chǎn)品上還加強(qiáng)了過濾器功能(Filter):你可以選擇你的動(dòng)態(tài)給誰看,你可以選擇不看誰的動(dòng)態(tài)(Hide),你也可以選擇優(yōu)先看到誰的動(dòng)態(tài)(See first),當(dāng)然你可以取消關(guān)注一些人或者公共主頁,將這些控制權(quán)交給用戶,一方面安撫了用戶被算法接管的不安,另一方面也是一項(xiàng)重要的數(shù)據(jù)來源。事實(shí)上,如今的過濾器已經(jīng)復(fù)雜到大多數(shù)用戶都不會(huì)使用這些控制權(quán)。
“如何衡量用戶真的感興趣”這個(gè)問題也許遠(yuǎn)遠(yuǎn)沒有最終答案,為什么?因?yàn)槿说姆抢硇哉紦?jù)了絕大多數(shù)時(shí)候,而“不一致性”又是非理性的最重要表現(xiàn),根據(jù)心情不同,用戶有不同的感興趣的標(biāo)準(zhǔn),而且這些標(biāo)準(zhǔn)也許還是相互矛盾的。
NewsFeed 的配套設(shè)施
NewsFeed 存在的前提是要依賴用戶建立大量的社交聯(lián)系,這樣才會(huì)出現(xiàn)信息過載,因此 NewsFeed 的一個(gè)重要的配套設(shè)施就是“你可能感興趣的人”(People you may like)推薦系統(tǒng)。
這是一個(gè)我們?cè)诋a(chǎn)品形式上比較熟悉的推薦系統(tǒng),它是一套大規(guī)模矩陣分解算法,利用已有的協(xié)同矩陣為你推薦你可能想建立聯(lián)系的新Item,包括用戶、app、公共主頁等。
NewsFeed 還有另一個(gè)配套設(shè)施,也是它為什么每天能吸金幾千萬刀的原因:廣告系統(tǒng)。Facebook 的廣告形態(tài)多樣:
Suggested Page (你可能喜歡的公眾頁)
Page Post (公眾號(hào)帖子推廣)
Suggested App (你可能喜歡的應(yīng)用)
Video Ads (視頻廣告)
現(xiàn)在,每一次 NewsFeed 調(diào)整算法都會(huì)引來廣告主們的抗議,他們都是在 FB 上擁有公共主頁的商業(yè)機(jī)構(gòu)。
在以前,F(xiàn)B 鼓勵(lì)這些商業(yè)機(jī)構(gòu)花錢投廣告增加粉絲,彼時(shí)的 NewsFeed 算法允許隨意發(fā)廣告(以原生的新鮮事形式)。而現(xiàn)在,F(xiàn)B 嚴(yán)格限制商業(yè)廣告和普通用戶的觸達(dá)。商業(yè)機(jī)構(gòu)感覺自己被耍了,花錢買粉之后卻不能發(fā)原生廣告,無獨(dú)有偶,根據(jù)微博 CEO(@來去之間)在微博上的披露,現(xiàn)在微博企業(yè)號(hào)也是被限制博文達(dá)到粉絲 feed 次數(shù)的。
據(jù)國(guó)外某專門做 NewsFeed 推廣的公司追蹤,1000個(gè)公共主頁的50000條內(nèi)容以原生方式觸達(dá)用戶的比例,從2012年16%降低到了2014年的6.51%,降了一倍還多,這當(dāng)然也可能因?yàn)橛脩羝骄P(guān)注的公共主頁增多了[13]。
世界上最遙遠(yuǎn)的距離,就是:手握大把粉絲,卻不能隨心所欲地曝光自己的產(chǎn)品。
當(dāng)然,所有的公共主頁們,不要灰心,并不是沒有辦法,NewsFeed 的廣告系統(tǒng)大門永遠(yuǎn)向你們敞開。
對(duì) NewsFeed 的展望
具體 NewsFeed 會(huì)怎么發(fā)展,無法預(yù)測(cè),但是可以肯定的有三點(diǎn):
NewsFeed 的算法會(huì)一直進(jìn)化下去。
NewsFeed 團(tuán)隊(duì)把人和算法的關(guān)系處理得更好,從數(shù)據(jù)驅(qū)動(dòng)(Data-Driven)到數(shù)據(jù)啟示(Data-Informed)。
越來越多的 Feed 型產(chǎn)品會(huì)效仿 NewsFeed,加入到興趣feed的潮流中去。
? 查看全部
2004年,F(xiàn)acebook 問世,兩年后的9月份,NewsFeed 問世,同時(shí)問世的還有MiniFeed(個(gè)人動(dòng)態(tài))。今年是 NewsFeed 上線十周年了,這10年里,F(xiàn)acebook 是怎么一步一步把 NewsFeed 打造成了日收入幾千萬美金的現(xiàn)金牛的?不管你對(duì)這充滿銅臭的問題感不感興趣,反正我很感興趣。
今天我們都已經(jīng)習(xí)慣了把照片、文字等內(nèi)容主動(dòng)分享給好友,但是當(dāng)時(shí) Facebook 上線了這個(gè)功能時(shí),引起了廣泛的爭(zhēng)議,焦點(diǎn)就是“隱私”問題,用戶認(rèn)為我發(fā)的動(dòng)態(tài)怎么能讓別人看見呢[1]?用戶一直不停質(zhì)疑和抗議,又忍不住繼續(xù)使用,F(xiàn)acebook 就這樣在爭(zhēng)議聲中增加了最初的隱私控制,比如隱藏自己的動(dòng)態(tài),而 NewsFeed 就這樣堅(jiān)持了下來。看來,小扎真是一個(gè)撩妹高手,看穿了用戶們“嘴上說不要,身體卻誠(chéng)實(shí)”的內(nèi)在。
隨著用戶們漸漸地愛上了瀏覽好友的分(xuan)享(yao)了,2009年,F(xiàn)acebook 加上了贊(like)功能(FriendFeed 在2007年發(fā)明了贊按鈕,F(xiàn)riendFeed 后來于2009年被 Facebook 收購,并將贊這個(gè)功能整合進(jìn)來),開始按照熱門程度對(duì) Feed 重排序,不出意外,這又引起了用戶們的反抗,因?yàn)榇蠹乙呀?jīng)習(xí)慣按照時(shí)間順序閱讀。
伴隨這么多爭(zhēng)議,為什么 Facebook 一直堅(jiān)持做興趣feed?從數(shù)據(jù)上看,平均每個(gè)用戶每天待看的新鮮事有1500條之多,但平均每個(gè)用戶每天只能閱讀300條;從商業(yè)角度,將 Feed 排序交給上帝的做法,非常不利于商業(yè)化且有損用戶體驗(yàn),公共主頁可以使用很多伎倆吸引用戶關(guān)注,然后肆無忌憚發(fā)廣告。
10年來,NewsFeed 有數(shù)不清的改進(jìn),甚至每天線上會(huì)同時(shí)部署很多算法版本進(jìn)行AB測(cè)試。但 EdgeRank 是這條優(yōu)化迭代之路上的一個(gè)標(biāo)志性建筑。我們可以將 NewsFeed 排序策略按照 EdgeRank 分為 PreEdgeRank 時(shí)代、InEdgeRank 時(shí)代、PostEdgeRank 時(shí)代。
EdgeRank 算法
EdgeRank,顧名思義,就是對(duì)邊(Edge)進(jìn)行排序(Rank)。
每一個(gè)朋友的每一個(gè)操作(Action)都可能以新鮮事(News)的方式呈現(xiàn)在用戶面前,比如朋友發(fā)布了一條新鮮事,朋友贊了朋友的朋友一條新鮮事,朋友評(píng)論了朋友的朋友一條新鮮事,朋友給自己的照片加了一個(gè)標(biāo)簽,等等。稍微用腳后跟想一想就知道,按照這樣羅列的話,每個(gè)用戶得看多少新鮮事?于是 FB 就想在一條動(dòng)態(tài)呈現(xiàn)給一個(gè)用戶之前,先預(yù)估一下這個(gè)用戶對(duì)這條新鮮事感興趣程度。在 FB 的定義下,一個(gè) Action 就是一個(gè) Edge,所以這套量化興趣的算法就叫做 EdgeRank。
別看今天 Facebook 各種高大上,又是深度學(xué)習(xí)又是人工智能,要知道,在 EdgeRank 提出之前,F(xiàn)B 也是有過刀耕火種時(shí)代的,F(xiàn)B 的首席產(chǎn)品官 Chris Cox 談及早期 NewsFeed 是這樣說的:
“In the beginning, News Feed ranking was turning knobs. Turn up photos a little bit, turn down platform stories a little bit.”(最初,NewsFeed 排序就是在主觀拍腦袋,給照片加點(diǎn)權(quán)重,給平臺(tái)動(dòng)態(tài)消息降點(diǎn)權(quán)重)
“a photo might be worth 5 points, while joining a group was worth 1 point” (把照片權(quán)重定為5,把加群權(quán)重定為1)
國(guó)內(nèi)算法工程師們聽到這些,想必都要會(huì)心地笑了:原來 FB 也是從這個(gè)時(shí)代走過來的。但 Facebook 不同的是,這只是暫時(shí)的情形,他們已經(jīng)走到更高級(jí)的階段了。
Serkan Piantino 在2010年左右領(lǐng)導(dǎo)并開發(fā)了第一版 EdgeRank 算法。下面說說大名鼎鼎的 EdgeRank 是怎么回事。
EdgeRank 主要有三個(gè)因素在起作用:
親密度(Affinity Score)
邊的權(quán)重(Edge Weight)
新鮮程度(Time Decay)
想象一條內(nèi)容誕生后,途經(jīng)什么路徑流動(dòng)到你的面前?
首先經(jīng)你的一個(gè)朋友(或者你的關(guān)注源)的之手產(chǎn)生了一條新鮮事(他發(fā)布、贊、加標(biāo)簽這些產(chǎn)生了新鮮事);
然后經(jīng)過你這個(gè)朋友(或者你的關(guān)注源)的介紹,到了你家門口,你一開門(登錄)就可能看見它;
內(nèi)容不多時(shí),開門一個(gè)一個(gè)寒暄可能還行,它們也等得起,也無所謂先來后到,內(nèi)容太多時(shí),就得考慮個(gè)先來后到了。
這三個(gè)步驟,就大致刻畫了 EdgeRank 的思想了,其實(shí)還是很簡(jiǎn)單直接的。
親密度對(duì)應(yīng)了第二個(gè)步驟背后的思想,那么多人介紹過來,我們當(dāng)然要優(yōu)先照顧更“喜歡”的人了,親密度的量化要考慮平常里你和這個(gè)朋友“走動(dòng)”是否頻繁,連接是否緊密。主要考慮下面幾點(diǎn):
你們連接的強(qiáng)度,點(diǎn)贊之交,還是評(píng)論之交,或是私信之交,連接方式不同,強(qiáng)度就不同;
你們連接的頻繁程度,一日百贊,還是百日一贊,差別也很大;
你們有多久沒有建立連接了,一年沒有了,關(guān)系自然就更淡了;
親密度是單向的,也就是說你對(duì)朋友的親密度,和朋友對(duì)你的親密度可能不一樣哦。
你看,看似神秘的 EdgeRank 算法,其實(shí)跟大家不太待見的雞湯居然意思是一樣的,是不是覺得它竟然如此平易近人?
邊的權(quán)重也很直接,其實(shí)它反映了產(chǎn)生一條新鮮事的成本,成本越高的,權(quán)重越大。點(diǎn)贊、評(píng)論、發(fā)一條文字、發(fā)一張照片、發(fā)一個(gè)鏈接,背后用戶付出的成本不一樣,反應(yīng)在邊的權(quán)重上也就不一樣。顯然,你點(diǎn)個(gè)贊的成本,和你發(fā)布一條新鮮事的成本差別很多。
最后,新鮮程度,也是一個(gè)符合直覺的自然假設(shè):NewsFeed 總是青睞 New 一些的 Feed,新的新鮮事總體上更可能得到用戶的臨幸。FB 用了一個(gè)類似指數(shù)衰減的函數(shù)來量化動(dòng)態(tài)的新舊程度。
三個(gè)分?jǐn)?shù),最終用相乘的方式共同作用于每一條新鮮事的分?jǐn)?shù),用于排序和篩選。
這個(gè)排序方法的確是很簡(jiǎn)單,基本上只考慮了社交方面的因素,而沒有考慮太多內(nèi)容本身對(duì)用戶吸引力。
從公開的資料看 EdgeRank,并不是什么高深的算法,它只是量化了三個(gè)主要因素,然后主觀地相乘,而沒有任何目標(biāo)優(yōu)化思想在背后,根據(jù) Facebook 披露的消息看,早期的 EdgeRank 的確沒有引入機(jī)器學(xué)習(xí),所以根本稱不上是智能的算法。
為什么 EdgeRank 這么有名?因?yàn)樗窃贔8開發(fā)者大會(huì)上公開介紹過的,經(jīng)過一知半解的媒體渲染,變成了一個(gè)神秘高深的存在。
后 EdgeRank 時(shí)代
2011年之后,F(xiàn)acebook 內(nèi)部就不再提 EdgeRank 算法了,因?yàn)橛脩魯?shù)和廣告主的飛增,導(dǎo)致 NewsFeed 的排序算法必須要更上一層樓。如今月活躍超過10億用戶,約2000萬的公共主頁,移動(dòng)設(shè)備貢獻(xiàn)了大多數(shù)流量,復(fù)雜的上下文因素,必須引入機(jī)器學(xué)習(xí)才能 Hold 住整個(gè)場(chǎng)面。
在原來 EdgeRank 的基礎(chǔ)上,更加細(xì)致地定義了不同層級(jí)的親密度。用深度神經(jīng)網(wǎng)絡(luò)理解圖片內(nèi)容和文字內(nèi)容,從而可以知道相片中的物體是不是用戶感興趣的,可以知道新鮮事的討論話題。隨著產(chǎn)品迭代,也加入了更多產(chǎn)品特征,諸如閱讀時(shí)間長(zhǎng)短、視頻內(nèi)容、鏈接內(nèi)容等,取關(guān)、隱藏一個(gè)源。前前后后一共考慮了10萬+的變量(模型的特征空間應(yīng)該會(huì)更高),如果還按照原來的方式去調(diào)節(jié)權(quán)重,顯然既不科學(xué)又很低效。
從 Facebook 的機(jī)器學(xué)習(xí)應(yīng)用博客頁面可以看到,2010年之后就開始逐漸有機(jī)器學(xué)習(xí)方面的文章出現(xiàn)了。
相關(guān)資料顯示,2011年之后的 NewsFeed 排序算法,全面轉(zhuǎn)向了機(jī)器學(xué)習(xí),用優(yōu)化理論來決定每個(gè)因素的權(quán)重,將人從繁雜的策略量化中解放出來。
在被機(jī)器學(xué)習(xí)接管后的 NewsFeed,很多地方都更加細(xì)致。
用機(jī)器學(xué)習(xí)預(yù)估新鮮事的質(zhì)量。通過構(gòu)造了一份問卷調(diào)查,訪問了若干用戶來收集數(shù)據(jù),用收集的數(shù)據(jù)構(gòu)建了一個(gè)機(jī)器學(xué)習(xí)模型,用于 NewsFeed 排序時(shí)預(yù)測(cè)一條動(dòng)態(tài)的質(zhì)量,將預(yù)測(cè)的質(zhì)量分?jǐn)?shù)作為最終排序的一個(gè)特征。用樹模型構(gòu)造離散特征,結(jié)合最常見的LR模型預(yù)估廣告點(diǎn)擊率。
除了全面轉(zhuǎn)向機(jī)器學(xué)習(xí)之外,NewsFeed 團(tuán)隊(duì)也在重新思考人和算法的關(guān)系。他們要關(guān)心的是到底“如何把用戶真正最關(guān)心的找出來”,而不僅僅是“提高點(diǎn)擊率”。Facebook 一直是數(shù)據(jù)驅(qū)動(dòng)的,也是他們能夠在爭(zhēng)議中把 NewsFeed 堅(jiān)持下來的信念來源,而是不是唯數(shù)據(jù)馬首是瞻,團(tuán)隊(duì)內(nèi)部有很多思考,也有很多變化。
僅舉幾例:
團(tuán)隊(duì)發(fā)現(xiàn)有85%的隱藏新鮮事操作來自5%的人,經(jīng)過與這些用戶溝通才發(fā)現(xiàn),原來這5%的人把“隱藏”當(dāng)作郵件里的“標(biāo)記已讀”了,對(duì)喜不喜歡的新鮮事只要看過就會(huì)點(diǎn)擊隱藏。
對(duì)于悲傷的事情,用戶可能關(guān)心但不會(huì)點(diǎn)贊的。
對(duì)于有些點(diǎn)贊,用戶可能并不是真的感興趣,只是“點(diǎn)贊狂魔”發(fā)狂而已。
用戶閱讀一篇長(zhǎng)帖子,讀到一半不讀了,也并不能說明他對(duì)這篇帖子不感興趣。
這些 case,都讓他們開始關(guān)注到機(jī)器學(xué)習(xí)和數(shù)據(jù)的局限。
于是,在算法團(tuán)隊(duì)之外,F(xiàn)acebook 搭建了一個(gè)遍布全球的人肉評(píng)測(cè)小組。人肉評(píng)測(cè)小組不是簡(jiǎn)單地對(duì)算法篩選結(jié)果進(jìn)行喜歡/不喜歡的標(biāo)注,而是會(huì)非常深入地闡述為什么喜歡/不喜歡算法篩選結(jié)果,而且會(huì)與工程師詳細(xì)交流評(píng)測(cè)結(jié)果,因?yàn)檫@種人肉評(píng)測(cè)方式可以有效地拆穿數(shù)據(jù)說謊,讓產(chǎn)品遠(yuǎn)離一味追求提高數(shù)據(jù)指標(biāo)的怪圈。
除此之外,產(chǎn)品上還加強(qiáng)了過濾器功能(Filter):你可以選擇你的動(dòng)態(tài)給誰看,你可以選擇不看誰的動(dòng)態(tài)(Hide),你也可以選擇優(yōu)先看到誰的動(dòng)態(tài)(See first),當(dāng)然你可以取消關(guān)注一些人或者公共主頁,將這些控制權(quán)交給用戶,一方面安撫了用戶被算法接管的不安,另一方面也是一項(xiàng)重要的數(shù)據(jù)來源。事實(shí)上,如今的過濾器已經(jīng)復(fù)雜到大多數(shù)用戶都不會(huì)使用這些控制權(quán)。
“如何衡量用戶真的感興趣”這個(gè)問題也許遠(yuǎn)遠(yuǎn)沒有最終答案,為什么?因?yàn)槿说姆抢硇哉紦?jù)了絕大多數(shù)時(shí)候,而“不一致性”又是非理性的最重要表現(xiàn),根據(jù)心情不同,用戶有不同的感興趣的標(biāo)準(zhǔn),而且這些標(biāo)準(zhǔn)也許還是相互矛盾的。
NewsFeed 的配套設(shè)施
NewsFeed 存在的前提是要依賴用戶建立大量的社交聯(lián)系,這樣才會(huì)出現(xiàn)信息過載,因此 NewsFeed 的一個(gè)重要的配套設(shè)施就是“你可能感興趣的人”(People you may like)推薦系統(tǒng)。
這是一個(gè)我們?cè)诋a(chǎn)品形式上比較熟悉的推薦系統(tǒng),它是一套大規(guī)模矩陣分解算法,利用已有的協(xié)同矩陣為你推薦你可能想建立聯(lián)系的新Item,包括用戶、app、公共主頁等。
NewsFeed 還有另一個(gè)配套設(shè)施,也是它為什么每天能吸金幾千萬刀的原因:廣告系統(tǒng)。Facebook 的廣告形態(tài)多樣:
Suggested Page (你可能喜歡的公眾頁)
Page Post (公眾號(hào)帖子推廣)
Suggested App (你可能喜歡的應(yīng)用)
Video Ads (視頻廣告)
現(xiàn)在,每一次 NewsFeed 調(diào)整算法都會(huì)引來廣告主們的抗議,他們都是在 FB 上擁有公共主頁的商業(yè)機(jī)構(gòu)。
在以前,F(xiàn)B 鼓勵(lì)這些商業(yè)機(jī)構(gòu)花錢投廣告增加粉絲,彼時(shí)的 NewsFeed 算法允許隨意發(fā)廣告(以原生的新鮮事形式)。而現(xiàn)在,F(xiàn)B 嚴(yán)格限制商業(yè)廣告和普通用戶的觸達(dá)。商業(yè)機(jī)構(gòu)感覺自己被耍了,花錢買粉之后卻不能發(fā)原生廣告,無獨(dú)有偶,根據(jù)微博 CEO(@來去之間)在微博上的披露,現(xiàn)在微博企業(yè)號(hào)也是被限制博文達(dá)到粉絲 feed 次數(shù)的。
據(jù)國(guó)外某專門做 NewsFeed 推廣的公司追蹤,1000個(gè)公共主頁的50000條內(nèi)容以原生方式觸達(dá)用戶的比例,從2012年16%降低到了2014年的6.51%,降了一倍還多,這當(dāng)然也可能因?yàn)橛脩羝骄P(guān)注的公共主頁增多了[13]。
世界上最遙遠(yuǎn)的距離,就是:手握大把粉絲,卻不能隨心所欲地曝光自己的產(chǎn)品。
當(dāng)然,所有的公共主頁們,不要灰心,并不是沒有辦法,NewsFeed 的廣告系統(tǒng)大門永遠(yuǎn)向你們敞開。
對(duì) NewsFeed 的展望
具體 NewsFeed 會(huì)怎么發(fā)展,無法預(yù)測(cè),但是可以肯定的有三點(diǎn):
NewsFeed 的算法會(huì)一直進(jìn)化下去。
NewsFeed 團(tuán)隊(duì)把人和算法的關(guān)系處理得更好,從數(shù)據(jù)驅(qū)動(dòng)(Data-Driven)到數(shù)據(jù)啟示(Data-Informed)。
越來越多的 Feed 型產(chǎn)品會(huì)效仿 NewsFeed,加入到興趣feed的潮流中去。
? 查看全部
NewsFeed 怎么來的
2004年,F(xiàn)acebook 問世,兩年后的9月份,NewsFeed 問世,同時(shí)問世的還有MiniFeed(個(gè)人動(dòng)態(tài))。今年是 NewsFeed 上線十周年了,這10年里,F(xiàn)acebook 是怎么一步一步把 NewsFeed 打造成了日收入幾千萬美金的現(xiàn)金牛的?不管你對(duì)這充滿銅臭的問題感不感興趣,反正我很感興趣。
今天我們都已經(jīng)習(xí)慣了把照片、文字等內(nèi)容主動(dòng)分享給好友,但是當(dāng)時(shí) Facebook 上線了這個(gè)功能時(shí),引起了廣泛的爭(zhēng)議,焦點(diǎn)就是“隱私”問題,用戶認(rèn)為我發(fā)的動(dòng)態(tài)怎么能讓別人看見呢[1]?用戶一直不停質(zhì)疑和抗議,又忍不住繼續(xù)使用,F(xiàn)acebook 就這樣在爭(zhēng)議聲中增加了最初的隱私控制,比如隱藏自己的動(dòng)態(tài),而 NewsFeed 就這樣堅(jiān)持了下來??磥恚≡媸且粋€(gè)撩妹高手,看穿了用戶們“嘴上說不要,身體卻誠(chéng)實(shí)”的內(nèi)在。
隨著用戶們漸漸地愛上了瀏覽好友的分(xuan)享(yao)了,2009年,F(xiàn)acebook 加上了贊(like)功能(FriendFeed 在2007年發(fā)明了贊按鈕,F(xiàn)riendFeed 后來于2009年被 Facebook 收購,并將贊這個(gè)功能整合進(jìn)來),開始按照熱門程度對(duì) Feed 重排序,不出意外,這又引起了用戶們的反抗,因?yàn)榇蠹乙呀?jīng)習(xí)慣按照時(shí)間順序閱讀。
伴隨這么多爭(zhēng)議,為什么 Facebook 一直堅(jiān)持做興趣feed?從數(shù)據(jù)上看,平均每個(gè)用戶每天待看的新鮮事有1500條之多,但平均每個(gè)用戶每天只能閱讀300條;從商業(yè)角度,將 Feed 排序交給上帝的做法,非常不利于商業(yè)化且有損用戶體驗(yàn),公共主頁可以使用很多伎倆吸引用戶關(guān)注,然后肆無忌憚發(fā)廣告。
10年來,NewsFeed 有數(shù)不清的改進(jìn),甚至每天線上會(huì)同時(shí)部署很多算法版本進(jìn)行AB測(cè)試。但 EdgeRank 是這條優(yōu)化迭代之路上的一個(gè)標(biāo)志性建筑。我們可以將 NewsFeed 排序策略按照 EdgeRank 分為 PreEdgeRank 時(shí)代、InEdgeRank 時(shí)代、PostEdgeRank 時(shí)代。
EdgeRank 算法
EdgeRank,顧名思義,就是對(duì)邊(Edge)進(jìn)行排序(Rank)。
每一個(gè)朋友的每一個(gè)操作(Action)都可能以新鮮事(News)的方式呈現(xiàn)在用戶面前,比如朋友發(fā)布了一條新鮮事,朋友贊了朋友的朋友一條新鮮事,朋友評(píng)論了朋友的朋友一條新鮮事,朋友給自己的照片加了一個(gè)標(biāo)簽,等等。稍微用腳后跟想一想就知道,按照這樣羅列的話,每個(gè)用戶得看多少新鮮事?于是 FB 就想在一條動(dòng)態(tài)呈現(xiàn)給一個(gè)用戶之前,先預(yù)估一下這個(gè)用戶對(duì)這條新鮮事感興趣程度。在 FB 的定義下,一個(gè) Action 就是一個(gè) Edge,所以這套量化興趣的算法就叫做 EdgeRank。
別看今天 Facebook 各種高大上,又是深度學(xué)習(xí)又是人工智能,要知道,在 EdgeRank 提出之前,F(xiàn)B 也是有過刀耕火種時(shí)代的,F(xiàn)B 的首席產(chǎn)品官 Chris Cox 談及早期 NewsFeed 是這樣說的:
“In the beginning, News Feed ranking was turning knobs. Turn up photos a little bit, turn down platform stories a little bit.”(最初,NewsFeed 排序就是在主觀拍腦袋,給照片加點(diǎn)權(quán)重,給平臺(tái)動(dòng)態(tài)消息降點(diǎn)權(quán)重)
“a photo might be worth 5 points, while joining a group was worth 1 point” (把照片權(quán)重定為5,把加群權(quán)重定為1)
國(guó)內(nèi)算法工程師們聽到這些,想必都要會(huì)心地笑了:原來 FB 也是從這個(gè)時(shí)代走過來的。但 Facebook 不同的是,這只是暫時(shí)的情形,他們已經(jīng)走到更高級(jí)的階段了。
Serkan Piantino 在2010年左右領(lǐng)導(dǎo)并開發(fā)了第一版 EdgeRank 算法。下面說說大名鼎鼎的 EdgeRank 是怎么回事。
EdgeRank 主要有三個(gè)因素在起作用:
親密度(Affinity Score)
邊的權(quán)重(Edge Weight)
新鮮程度(Time Decay)
想象一條內(nèi)容誕生后,途經(jīng)什么路徑流動(dòng)到你的面前?
首先經(jīng)你的一個(gè)朋友(或者你的關(guān)注源)的之手產(chǎn)生了一條新鮮事(他發(fā)布、贊、加標(biāo)簽這些產(chǎn)生了新鮮事);
然后經(jīng)過你這個(gè)朋友(或者你的關(guān)注源)的介紹,到了你家門口,你一開門(登錄)就可能看見它;
內(nèi)容不多時(shí),開門一個(gè)一個(gè)寒暄可能還行,它們也等得起,也無所謂先來后到,內(nèi)容太多時(shí),就得考慮個(gè)先來后到了。
這三個(gè)步驟,就大致刻畫了 EdgeRank 的思想了,其實(shí)還是很簡(jiǎn)單直接的。
親密度對(duì)應(yīng)了第二個(gè)步驟背后的思想,那么多人介紹過來,我們當(dāng)然要優(yōu)先照顧更“喜歡”的人了,親密度的量化要考慮平常里你和這個(gè)朋友“走動(dòng)”是否頻繁,連接是否緊密。主要考慮下面幾點(diǎn):
你們連接的強(qiáng)度,點(diǎn)贊之交,還是評(píng)論之交,或是私信之交,連接方式不同,強(qiáng)度就不同;
你們連接的頻繁程度,一日百贊,還是百日一贊,差別也很大;
你們有多久沒有建立連接了,一年沒有了,關(guān)系自然就更淡了;
親密度是單向的,也就是說你對(duì)朋友的親密度,和朋友對(duì)你的親密度可能不一樣哦。
你看,看似神秘的 EdgeRank 算法,其實(shí)跟大家不太待見的雞湯居然意思是一樣的,是不是覺得它竟然如此平易近人?
邊的權(quán)重也很直接,其實(shí)它反映了產(chǎn)生一條新鮮事的成本,成本越高的,權(quán)重越大。點(diǎn)贊、評(píng)論、發(fā)一條文字、發(fā)一張照片、發(fā)一個(gè)鏈接,背后用戶付出的成本不一樣,反應(yīng)在邊的權(quán)重上也就不一樣。顯然,你點(diǎn)個(gè)贊的成本,和你發(fā)布一條新鮮事的成本差別很多。
最后,新鮮程度,也是一個(gè)符合直覺的自然假設(shè):NewsFeed 總是青睞 New 一些的 Feed,新的新鮮事總體上更可能得到用戶的臨幸。FB 用了一個(gè)類似指數(shù)衰減的函數(shù)來量化動(dòng)態(tài)的新舊程度。
三個(gè)分?jǐn)?shù),最終用相乘的方式共同作用于每一條新鮮事的分?jǐn)?shù),用于排序和篩選。
這個(gè)排序方法的確是很簡(jiǎn)單,基本上只考慮了社交方面的因素,而沒有考慮太多內(nèi)容本身對(duì)用戶吸引力。
從公開的資料看 EdgeRank,并不是什么高深的算法,它只是量化了三個(gè)主要因素,然后主觀地相乘,而沒有任何目標(biāo)優(yōu)化思想在背后,根據(jù) Facebook 披露的消息看,早期的 EdgeRank 的確沒有引入機(jī)器學(xué)習(xí),所以根本稱不上是智能的算法。
為什么 EdgeRank 這么有名?因?yàn)樗窃贔8開發(fā)者大會(huì)上公開介紹過的,經(jīng)過一知半解的媒體渲染,變成了一個(gè)神秘高深的存在。
后 EdgeRank 時(shí)代
2011年之后,F(xiàn)acebook 內(nèi)部就不再提 EdgeRank 算法了,因?yàn)橛脩魯?shù)和廣告主的飛增,導(dǎo)致 NewsFeed 的排序算法必須要更上一層樓。如今月活躍超過10億用戶,約2000萬的公共主頁,移動(dòng)設(shè)備貢獻(xiàn)了大多數(shù)流量,復(fù)雜的上下文因素,必須引入機(jī)器學(xué)習(xí)才能 Hold 住整個(gè)場(chǎng)面。
在原來 EdgeRank 的基礎(chǔ)上,更加細(xì)致地定義了不同層級(jí)的親密度。用深度神經(jīng)網(wǎng)絡(luò)理解圖片內(nèi)容和文字內(nèi)容,從而可以知道相片中的物體是不是用戶感興趣的,可以知道新鮮事的討論話題。隨著產(chǎn)品迭代,也加入了更多產(chǎn)品特征,諸如閱讀時(shí)間長(zhǎng)短、視頻內(nèi)容、鏈接內(nèi)容等,取關(guān)、隱藏一個(gè)源。前前后后一共考慮了10萬+的變量(模型的特征空間應(yīng)該會(huì)更高),如果還按照原來的方式去調(diào)節(jié)權(quán)重,顯然既不科學(xué)又很低效。
從 Facebook 的機(jī)器學(xué)習(xí)應(yīng)用博客頁面可以看到,2010年之后就開始逐漸有機(jī)器學(xué)習(xí)方面的文章出現(xiàn)了。
相關(guān)資料顯示,2011年之后的 NewsFeed 排序算法,全面轉(zhuǎn)向了機(jī)器學(xué)習(xí),用優(yōu)化理論來決定每個(gè)因素的權(quán)重,將人從繁雜的策略量化中解放出來。
在被機(jī)器學(xué)習(xí)接管后的 NewsFeed,很多地方都更加細(xì)致。
用機(jī)器學(xué)習(xí)預(yù)估新鮮事的質(zhì)量。通過構(gòu)造了一份問卷調(diào)查,訪問了若干用戶來收集數(shù)據(jù),用收集的數(shù)據(jù)構(gòu)建了一個(gè)機(jī)器學(xué)習(xí)模型,用于 NewsFeed 排序時(shí)預(yù)測(cè)一條動(dòng)態(tài)的質(zhì)量,將預(yù)測(cè)的質(zhì)量分?jǐn)?shù)作為最終排序的一個(gè)特征。用樹模型構(gòu)造離散特征,結(jié)合最常見的LR模型預(yù)估廣告點(diǎn)擊率。
除了全面轉(zhuǎn)向機(jī)器學(xué)習(xí)之外,NewsFeed 團(tuán)隊(duì)也在重新思考人和算法的關(guān)系。他們要關(guān)心的是到底“如何把用戶真正最關(guān)心的找出來”,而不僅僅是“提高點(diǎn)擊率”。Facebook 一直是數(shù)據(jù)驅(qū)動(dòng)的,也是他們能夠在爭(zhēng)議中把 NewsFeed 堅(jiān)持下來的信念來源,而是不是唯數(shù)據(jù)馬首是瞻,團(tuán)隊(duì)內(nèi)部有很多思考,也有很多變化。
僅舉幾例:
團(tuán)隊(duì)發(fā)現(xiàn)有85%的隱藏新鮮事操作來自5%的人,經(jīng)過與這些用戶溝通才發(fā)現(xiàn),原來這5%的人把“隱藏”當(dāng)作郵件里的“標(biāo)記已讀”了,對(duì)喜不喜歡的新鮮事只要看過就會(huì)點(diǎn)擊隱藏。
對(duì)于悲傷的事情,用戶可能關(guān)心但不會(huì)點(diǎn)贊的。
對(duì)于有些點(diǎn)贊,用戶可能并不是真的感興趣,只是“點(diǎn)贊狂魔”發(fā)狂而已。
用戶閱讀一篇長(zhǎng)帖子,讀到一半不讀了,也并不能說明他對(duì)這篇帖子不感興趣。
這些 case,都讓他們開始關(guān)注到機(jī)器學(xué)習(xí)和數(shù)據(jù)的局限。
于是,在算法團(tuán)隊(duì)之外,F(xiàn)acebook 搭建了一個(gè)遍布全球的人肉評(píng)測(cè)小組。人肉評(píng)測(cè)小組不是簡(jiǎn)單地對(duì)算法篩選結(jié)果進(jìn)行喜歡/不喜歡的標(biāo)注,而是會(huì)非常深入地闡述為什么喜歡/不喜歡算法篩選結(jié)果,而且會(huì)與工程師詳細(xì)交流評(píng)測(cè)結(jié)果,因?yàn)檫@種人肉評(píng)測(cè)方式可以有效地拆穿數(shù)據(jù)說謊,讓產(chǎn)品遠(yuǎn)離一味追求提高數(shù)據(jù)指標(biāo)的怪圈。
除此之外,產(chǎn)品上還加強(qiáng)了過濾器功能(Filter):你可以選擇你的動(dòng)態(tài)給誰看,你可以選擇不看誰的動(dòng)態(tài)(Hide),你也可以選擇優(yōu)先看到誰的動(dòng)態(tài)(See first),當(dāng)然你可以取消關(guān)注一些人或者公共主頁,將這些控制權(quán)交給用戶,一方面安撫了用戶被算法接管的不安,另一方面也是一項(xiàng)重要的數(shù)據(jù)來源。事實(shí)上,如今的過濾器已經(jīng)復(fù)雜到大多數(shù)用戶都不會(huì)使用這些控制權(quán)。
“如何衡量用戶真的感興趣”這個(gè)問題也許遠(yuǎn)遠(yuǎn)沒有最終答案,為什么?因?yàn)槿说姆抢硇哉紦?jù)了絕大多數(shù)時(shí)候,而“不一致性”又是非理性的最重要表現(xiàn),根據(jù)心情不同,用戶有不同的感興趣的標(biāo)準(zhǔn),而且這些標(biāo)準(zhǔn)也許還是相互矛盾的。
NewsFeed 的配套設(shè)施
NewsFeed 存在的前提是要依賴用戶建立大量的社交聯(lián)系,這樣才會(huì)出現(xiàn)信息過載,因此 NewsFeed 的一個(gè)重要的配套設(shè)施就是“你可能感興趣的人”(People you may like)推薦系統(tǒng)。
這是一個(gè)我們?cè)诋a(chǎn)品形式上比較熟悉的推薦系統(tǒng),它是一套大規(guī)模矩陣分解算法,利用已有的協(xié)同矩陣為你推薦你可能想建立聯(lián)系的新Item,包括用戶、app、公共主頁等。
NewsFeed 還有另一個(gè)配套設(shè)施,也是它為什么每天能吸金幾千萬刀的原因:廣告系統(tǒng)。Facebook 的廣告形態(tài)多樣:
Suggested Page (你可能喜歡的公眾頁)
Page Post (公眾號(hào)帖子推廣)
Suggested App (你可能喜歡的應(yīng)用)
Video Ads (視頻廣告)
現(xiàn)在,每一次 NewsFeed 調(diào)整算法都會(huì)引來廣告主們的抗議,他們都是在 FB 上擁有公共主頁的商業(yè)機(jī)構(gòu)。
在以前,F(xiàn)B 鼓勵(lì)這些商業(yè)機(jī)構(gòu)花錢投廣告增加粉絲,彼時(shí)的 NewsFeed 算法允許隨意發(fā)廣告(以原生的新鮮事形式)。而現(xiàn)在,F(xiàn)B 嚴(yán)格限制商業(yè)廣告和普通用戶的觸達(dá)。商業(yè)機(jī)構(gòu)感覺自己被耍了,花錢買粉之后卻不能發(fā)原生廣告,無獨(dú)有偶,根據(jù)微博 CEO(@來去之間)在微博上的披露,現(xiàn)在微博企業(yè)號(hào)也是被限制博文達(dá)到粉絲 feed 次數(shù)的。
據(jù)國(guó)外某專門做 NewsFeed 推廣的公司追蹤,1000個(gè)公共主頁的50000條內(nèi)容以原生方式觸達(dá)用戶的比例,從2012年16%降低到了2014年的6.51%,降了一倍還多,這當(dāng)然也可能因?yàn)橛脩羝骄P(guān)注的公共主頁增多了[13]。
世界上最遙遠(yuǎn)的距離,就是:手握大把粉絲,卻不能隨心所欲地曝光自己的產(chǎn)品。
當(dāng)然,所有的公共主頁們,不要灰心,并不是沒有辦法,NewsFeed 的廣告系統(tǒng)大門永遠(yuǎn)向你們敞開。
對(duì) NewsFeed 的展望
具體 NewsFeed 會(huì)怎么發(fā)展,無法預(yù)測(cè),但是可以肯定的有三點(diǎn):
NewsFeed 的算法會(huì)一直進(jìn)化下去。
NewsFeed 團(tuán)隊(duì)把人和算法的關(guān)系處理得更好,從數(shù)據(jù)驅(qū)動(dòng)(Data-Driven)到數(shù)據(jù)啟示(Data-Informed)。
越來越多的 Feed 型產(chǎn)品會(huì)效仿 NewsFeed,加入到興趣feed的潮流中去。
?
2004年,F(xiàn)acebook 問世,兩年后的9月份,NewsFeed 問世,同時(shí)問世的還有MiniFeed(個(gè)人動(dòng)態(tài))。今年是 NewsFeed 上線十周年了,這10年里,F(xiàn)acebook 是怎么一步一步把 NewsFeed 打造成了日收入幾千萬美金的現(xiàn)金牛的?不管你對(duì)這充滿銅臭的問題感不感興趣,反正我很感興趣。
今天我們都已經(jīng)習(xí)慣了把照片、文字等內(nèi)容主動(dòng)分享給好友,但是當(dāng)時(shí) Facebook 上線了這個(gè)功能時(shí),引起了廣泛的爭(zhēng)議,焦點(diǎn)就是“隱私”問題,用戶認(rèn)為我發(fā)的動(dòng)態(tài)怎么能讓別人看見呢[1]?用戶一直不停質(zhì)疑和抗議,又忍不住繼續(xù)使用,F(xiàn)acebook 就這樣在爭(zhēng)議聲中增加了最初的隱私控制,比如隱藏自己的動(dòng)態(tài),而 NewsFeed 就這樣堅(jiān)持了下來??磥恚≡媸且粋€(gè)撩妹高手,看穿了用戶們“嘴上說不要,身體卻誠(chéng)實(shí)”的內(nèi)在。
隨著用戶們漸漸地愛上了瀏覽好友的分(xuan)享(yao)了,2009年,F(xiàn)acebook 加上了贊(like)功能(FriendFeed 在2007年發(fā)明了贊按鈕,F(xiàn)riendFeed 后來于2009年被 Facebook 收購,并將贊這個(gè)功能整合進(jìn)來),開始按照熱門程度對(duì) Feed 重排序,不出意外,這又引起了用戶們的反抗,因?yàn)榇蠹乙呀?jīng)習(xí)慣按照時(shí)間順序閱讀。
伴隨這么多爭(zhēng)議,為什么 Facebook 一直堅(jiān)持做興趣feed?從數(shù)據(jù)上看,平均每個(gè)用戶每天待看的新鮮事有1500條之多,但平均每個(gè)用戶每天只能閱讀300條;從商業(yè)角度,將 Feed 排序交給上帝的做法,非常不利于商業(yè)化且有損用戶體驗(yàn),公共主頁可以使用很多伎倆吸引用戶關(guān)注,然后肆無忌憚發(fā)廣告。
10年來,NewsFeed 有數(shù)不清的改進(jìn),甚至每天線上會(huì)同時(shí)部署很多算法版本進(jìn)行AB測(cè)試。但 EdgeRank 是這條優(yōu)化迭代之路上的一個(gè)標(biāo)志性建筑。我們可以將 NewsFeed 排序策略按照 EdgeRank 分為 PreEdgeRank 時(shí)代、InEdgeRank 時(shí)代、PostEdgeRank 時(shí)代。
EdgeRank 算法
EdgeRank,顧名思義,就是對(duì)邊(Edge)進(jìn)行排序(Rank)。
每一個(gè)朋友的每一個(gè)操作(Action)都可能以新鮮事(News)的方式呈現(xiàn)在用戶面前,比如朋友發(fā)布了一條新鮮事,朋友贊了朋友的朋友一條新鮮事,朋友評(píng)論了朋友的朋友一條新鮮事,朋友給自己的照片加了一個(gè)標(biāo)簽,等等。稍微用腳后跟想一想就知道,按照這樣羅列的話,每個(gè)用戶得看多少新鮮事?于是 FB 就想在一條動(dòng)態(tài)呈現(xiàn)給一個(gè)用戶之前,先預(yù)估一下這個(gè)用戶對(duì)這條新鮮事感興趣程度。在 FB 的定義下,一個(gè) Action 就是一個(gè) Edge,所以這套量化興趣的算法就叫做 EdgeRank。
別看今天 Facebook 各種高大上,又是深度學(xué)習(xí)又是人工智能,要知道,在 EdgeRank 提出之前,F(xiàn)B 也是有過刀耕火種時(shí)代的,F(xiàn)B 的首席產(chǎn)品官 Chris Cox 談及早期 NewsFeed 是這樣說的:
“In the beginning, News Feed ranking was turning knobs. Turn up photos a little bit, turn down platform stories a little bit.”(最初,NewsFeed 排序就是在主觀拍腦袋,給照片加點(diǎn)權(quán)重,給平臺(tái)動(dòng)態(tài)消息降點(diǎn)權(quán)重)
“a photo might be worth 5 points, while joining a group was worth 1 point” (把照片權(quán)重定為5,把加群權(quán)重定為1)
國(guó)內(nèi)算法工程師們聽到這些,想必都要會(huì)心地笑了:原來 FB 也是從這個(gè)時(shí)代走過來的。但 Facebook 不同的是,這只是暫時(shí)的情形,他們已經(jīng)走到更高級(jí)的階段了。
Serkan Piantino 在2010年左右領(lǐng)導(dǎo)并開發(fā)了第一版 EdgeRank 算法。下面說說大名鼎鼎的 EdgeRank 是怎么回事。
EdgeRank 主要有三個(gè)因素在起作用:
親密度(Affinity Score)
邊的權(quán)重(Edge Weight)
新鮮程度(Time Decay)
想象一條內(nèi)容誕生后,途經(jīng)什么路徑流動(dòng)到你的面前?
首先經(jīng)你的一個(gè)朋友(或者你的關(guān)注源)的之手產(chǎn)生了一條新鮮事(他發(fā)布、贊、加標(biāo)簽這些產(chǎn)生了新鮮事);
然后經(jīng)過你這個(gè)朋友(或者你的關(guān)注源)的介紹,到了你家門口,你一開門(登錄)就可能看見它;
內(nèi)容不多時(shí),開門一個(gè)一個(gè)寒暄可能還行,它們也等得起,也無所謂先來后到,內(nèi)容太多時(shí),就得考慮個(gè)先來后到了。
這三個(gè)步驟,就大致刻畫了 EdgeRank 的思想了,其實(shí)還是很簡(jiǎn)單直接的。
親密度對(duì)應(yīng)了第二個(gè)步驟背后的思想,那么多人介紹過來,我們當(dāng)然要優(yōu)先照顧更“喜歡”的人了,親密度的量化要考慮平常里你和這個(gè)朋友“走動(dòng)”是否頻繁,連接是否緊密。主要考慮下面幾點(diǎn):
你們連接的強(qiáng)度,點(diǎn)贊之交,還是評(píng)論之交,或是私信之交,連接方式不同,強(qiáng)度就不同;
你們連接的頻繁程度,一日百贊,還是百日一贊,差別也很大;
你們有多久沒有建立連接了,一年沒有了,關(guān)系自然就更淡了;
親密度是單向的,也就是說你對(duì)朋友的親密度,和朋友對(duì)你的親密度可能不一樣哦。
你看,看似神秘的 EdgeRank 算法,其實(shí)跟大家不太待見的雞湯居然意思是一樣的,是不是覺得它竟然如此平易近人?
邊的權(quán)重也很直接,其實(shí)它反映了產(chǎn)生一條新鮮事的成本,成本越高的,權(quán)重越大。點(diǎn)贊、評(píng)論、發(fā)一條文字、發(fā)一張照片、發(fā)一個(gè)鏈接,背后用戶付出的成本不一樣,反應(yīng)在邊的權(quán)重上也就不一樣。顯然,你點(diǎn)個(gè)贊的成本,和你發(fā)布一條新鮮事的成本差別很多。
最后,新鮮程度,也是一個(gè)符合直覺的自然假設(shè):NewsFeed 總是青睞 New 一些的 Feed,新的新鮮事總體上更可能得到用戶的臨幸。FB 用了一個(gè)類似指數(shù)衰減的函數(shù)來量化動(dòng)態(tài)的新舊程度。
三個(gè)分?jǐn)?shù),最終用相乘的方式共同作用于每一條新鮮事的分?jǐn)?shù),用于排序和篩選。
這個(gè)排序方法的確是很簡(jiǎn)單,基本上只考慮了社交方面的因素,而沒有考慮太多內(nèi)容本身對(duì)用戶吸引力。
從公開的資料看 EdgeRank,并不是什么高深的算法,它只是量化了三個(gè)主要因素,然后主觀地相乘,而沒有任何目標(biāo)優(yōu)化思想在背后,根據(jù) Facebook 披露的消息看,早期的 EdgeRank 的確沒有引入機(jī)器學(xué)習(xí),所以根本稱不上是智能的算法。
為什么 EdgeRank 這么有名?因?yàn)樗窃贔8開發(fā)者大會(huì)上公開介紹過的,經(jīng)過一知半解的媒體渲染,變成了一個(gè)神秘高深的存在。
后 EdgeRank 時(shí)代
2011年之后,F(xiàn)acebook 內(nèi)部就不再提 EdgeRank 算法了,因?yàn)橛脩魯?shù)和廣告主的飛增,導(dǎo)致 NewsFeed 的排序算法必須要更上一層樓。如今月活躍超過10億用戶,約2000萬的公共主頁,移動(dòng)設(shè)備貢獻(xiàn)了大多數(shù)流量,復(fù)雜的上下文因素,必須引入機(jī)器學(xué)習(xí)才能 Hold 住整個(gè)場(chǎng)面。
在原來 EdgeRank 的基礎(chǔ)上,更加細(xì)致地定義了不同層級(jí)的親密度。用深度神經(jīng)網(wǎng)絡(luò)理解圖片內(nèi)容和文字內(nèi)容,從而可以知道相片中的物體是不是用戶感興趣的,可以知道新鮮事的討論話題。隨著產(chǎn)品迭代,也加入了更多產(chǎn)品特征,諸如閱讀時(shí)間長(zhǎng)短、視頻內(nèi)容、鏈接內(nèi)容等,取關(guān)、隱藏一個(gè)源。前前后后一共考慮了10萬+的變量(模型的特征空間應(yīng)該會(huì)更高),如果還按照原來的方式去調(diào)節(jié)權(quán)重,顯然既不科學(xué)又很低效。
從 Facebook 的機(jī)器學(xué)習(xí)應(yīng)用博客頁面可以看到,2010年之后就開始逐漸有機(jī)器學(xué)習(xí)方面的文章出現(xiàn)了。
相關(guān)資料顯示,2011年之后的 NewsFeed 排序算法,全面轉(zhuǎn)向了機(jī)器學(xué)習(xí),用優(yōu)化理論來決定每個(gè)因素的權(quán)重,將人從繁雜的策略量化中解放出來。
在被機(jī)器學(xué)習(xí)接管后的 NewsFeed,很多地方都更加細(xì)致。
用機(jī)器學(xué)習(xí)預(yù)估新鮮事的質(zhì)量。通過構(gòu)造了一份問卷調(diào)查,訪問了若干用戶來收集數(shù)據(jù),用收集的數(shù)據(jù)構(gòu)建了一個(gè)機(jī)器學(xué)習(xí)模型,用于 NewsFeed 排序時(shí)預(yù)測(cè)一條動(dòng)態(tài)的質(zhì)量,將預(yù)測(cè)的質(zhì)量分?jǐn)?shù)作為最終排序的一個(gè)特征。用樹模型構(gòu)造離散特征,結(jié)合最常見的LR模型預(yù)估廣告點(diǎn)擊率。
除了全面轉(zhuǎn)向機(jī)器學(xué)習(xí)之外,NewsFeed 團(tuán)隊(duì)也在重新思考人和算法的關(guān)系。他們要關(guān)心的是到底“如何把用戶真正最關(guān)心的找出來”,而不僅僅是“提高點(diǎn)擊率”。Facebook 一直是數(shù)據(jù)驅(qū)動(dòng)的,也是他們能夠在爭(zhēng)議中把 NewsFeed 堅(jiān)持下來的信念來源,而是不是唯數(shù)據(jù)馬首是瞻,團(tuán)隊(duì)內(nèi)部有很多思考,也有很多變化。
僅舉幾例:
團(tuán)隊(duì)發(fā)現(xiàn)有85%的隱藏新鮮事操作來自5%的人,經(jīng)過與這些用戶溝通才發(fā)現(xiàn),原來這5%的人把“隱藏”當(dāng)作郵件里的“標(biāo)記已讀”了,對(duì)喜不喜歡的新鮮事只要看過就會(huì)點(diǎn)擊隱藏。
對(duì)于悲傷的事情,用戶可能關(guān)心但不會(huì)點(diǎn)贊的。
對(duì)于有些點(diǎn)贊,用戶可能并不是真的感興趣,只是“點(diǎn)贊狂魔”發(fā)狂而已。
用戶閱讀一篇長(zhǎng)帖子,讀到一半不讀了,也并不能說明他對(duì)這篇帖子不感興趣。
這些 case,都讓他們開始關(guān)注到機(jī)器學(xué)習(xí)和數(shù)據(jù)的局限。
于是,在算法團(tuán)隊(duì)之外,F(xiàn)acebook 搭建了一個(gè)遍布全球的人肉評(píng)測(cè)小組。人肉評(píng)測(cè)小組不是簡(jiǎn)單地對(duì)算法篩選結(jié)果進(jìn)行喜歡/不喜歡的標(biāo)注,而是會(huì)非常深入地闡述為什么喜歡/不喜歡算法篩選結(jié)果,而且會(huì)與工程師詳細(xì)交流評(píng)測(cè)結(jié)果,因?yàn)檫@種人肉評(píng)測(cè)方式可以有效地拆穿數(shù)據(jù)說謊,讓產(chǎn)品遠(yuǎn)離一味追求提高數(shù)據(jù)指標(biāo)的怪圈。
除此之外,產(chǎn)品上還加強(qiáng)了過濾器功能(Filter):你可以選擇你的動(dòng)態(tài)給誰看,你可以選擇不看誰的動(dòng)態(tài)(Hide),你也可以選擇優(yōu)先看到誰的動(dòng)態(tài)(See first),當(dāng)然你可以取消關(guān)注一些人或者公共主頁,將這些控制權(quán)交給用戶,一方面安撫了用戶被算法接管的不安,另一方面也是一項(xiàng)重要的數(shù)據(jù)來源。事實(shí)上,如今的過濾器已經(jīng)復(fù)雜到大多數(shù)用戶都不會(huì)使用這些控制權(quán)。
“如何衡量用戶真的感興趣”這個(gè)問題也許遠(yuǎn)遠(yuǎn)沒有最終答案,為什么?因?yàn)槿说姆抢硇哉紦?jù)了絕大多數(shù)時(shí)候,而“不一致性”又是非理性的最重要表現(xiàn),根據(jù)心情不同,用戶有不同的感興趣的標(biāo)準(zhǔn),而且這些標(biāo)準(zhǔn)也許還是相互矛盾的。
NewsFeed 的配套設(shè)施
NewsFeed 存在的前提是要依賴用戶建立大量的社交聯(lián)系,這樣才會(huì)出現(xiàn)信息過載,因此 NewsFeed 的一個(gè)重要的配套設(shè)施就是“你可能感興趣的人”(People you may like)推薦系統(tǒng)。
這是一個(gè)我們?cè)诋a(chǎn)品形式上比較熟悉的推薦系統(tǒng),它是一套大規(guī)模矩陣分解算法,利用已有的協(xié)同矩陣為你推薦你可能想建立聯(lián)系的新Item,包括用戶、app、公共主頁等。
NewsFeed 還有另一個(gè)配套設(shè)施,也是它為什么每天能吸金幾千萬刀的原因:廣告系統(tǒng)。Facebook 的廣告形態(tài)多樣:
Suggested Page (你可能喜歡的公眾頁)
Page Post (公眾號(hào)帖子推廣)
Suggested App (你可能喜歡的應(yīng)用)
Video Ads (視頻廣告)
現(xiàn)在,每一次 NewsFeed 調(diào)整算法都會(huì)引來廣告主們的抗議,他們都是在 FB 上擁有公共主頁的商業(yè)機(jī)構(gòu)。
在以前,F(xiàn)B 鼓勵(lì)這些商業(yè)機(jī)構(gòu)花錢投廣告增加粉絲,彼時(shí)的 NewsFeed 算法允許隨意發(fā)廣告(以原生的新鮮事形式)。而現(xiàn)在,F(xiàn)B 嚴(yán)格限制商業(yè)廣告和普通用戶的觸達(dá)。商業(yè)機(jī)構(gòu)感覺自己被耍了,花錢買粉之后卻不能發(fā)原生廣告,無獨(dú)有偶,根據(jù)微博 CEO(@來去之間)在微博上的披露,現(xiàn)在微博企業(yè)號(hào)也是被限制博文達(dá)到粉絲 feed 次數(shù)的。
據(jù)國(guó)外某專門做 NewsFeed 推廣的公司追蹤,1000個(gè)公共主頁的50000條內(nèi)容以原生方式觸達(dá)用戶的比例,從2012年16%降低到了2014年的6.51%,降了一倍還多,這當(dāng)然也可能因?yàn)橛脩羝骄P(guān)注的公共主頁增多了[13]。
世界上最遙遠(yuǎn)的距離,就是:手握大把粉絲,卻不能隨心所欲地曝光自己的產(chǎn)品。
當(dāng)然,所有的公共主頁們,不要灰心,并不是沒有辦法,NewsFeed 的廣告系統(tǒng)大門永遠(yuǎn)向你們敞開。
對(duì) NewsFeed 的展望
具體 NewsFeed 會(huì)怎么發(fā)展,無法預(yù)測(cè),但是可以肯定的有三點(diǎn):
NewsFeed 的算法會(huì)一直進(jìn)化下去。
NewsFeed 團(tuán)隊(duì)把人和算法的關(guān)系處理得更好,從數(shù)據(jù)驅(qū)動(dòng)(Data-Driven)到數(shù)據(jù)啟示(Data-Informed)。
越來越多的 Feed 型產(chǎn)品會(huì)效仿 NewsFeed,加入到興趣feed的潮流中去。
?
【干貨分享】Facebook NewsFeed是什么意思以及該算法(EdgeRank)的解析
運(yùn)營(yíng)實(shí)操 ? 孤舟一葉 發(fā)表了文章 ? 0 個(gè)評(píng)論 ? 26342 次瀏覽 ? 2017-12-14 14:33
NewsFeed 怎么來的
2004年,F(xiàn)acebook 問世,兩年后的9月份,NewsFeed 問世,同時(shí)問世的還有MiniFeed(個(gè)人動(dòng)態(tài))。今年是 NewsFeed 上線十周年了,這10年里,F(xiàn)acebook 是怎么一步一步把 NewsFeed 打造成了日收入幾千萬美金的現(xiàn)金牛的?不管你對(duì)這充滿銅臭的問題感不感興趣,反正我很感興趣。
今天我們都已經(jīng)習(xí)慣了把照片、文字等內(nèi)容主動(dòng)分享給好友,但是當(dāng)時(shí) Facebook 上線了這個(gè)功能時(shí),引起了廣泛的爭(zhēng)議,焦點(diǎn)就是“隱私”問題,用戶認(rèn)為我發(fā)的動(dòng)態(tài)怎么能讓別人看見呢[1]?用戶一直不停質(zhì)疑和抗議,又忍不住繼續(xù)使用,F(xiàn)acebook 就這樣在爭(zhēng)議聲中增加了最初的隱私控制,比如隱藏自己的動(dòng)態(tài),而 NewsFeed 就這樣堅(jiān)持了下來??磥恚≡媸且粋€(gè)撩妹高手,看穿了用戶們“嘴上說不要,身體卻誠(chéng)實(shí)”的內(nèi)在。
隨著用戶們漸漸地愛上了瀏覽好友的分(xuan)享(yao)了,2009年,F(xiàn)acebook 加上了贊(like)功能(FriendFeed 在2007年發(fā)明了贊按鈕,F(xiàn)riendFeed 后來于2009年被 Facebook 收購,并將贊這個(gè)功能整合進(jìn)來),開始按照熱門程度對(duì) Feed 重排序,不出意外,這又引起了用戶們的反抗,因?yàn)榇蠹乙呀?jīng)習(xí)慣按照時(shí)間順序閱讀。
伴隨這么多爭(zhēng)議,為什么 Facebook 一直堅(jiān)持做興趣feed?從數(shù)據(jù)上看,平均每個(gè)用戶每天待看的新鮮事有1500條之多,但平均每個(gè)用戶每天只能閱讀300條;從商業(yè)角度,將 Feed 排序交給上帝的做法,非常不利于商業(yè)化且有損用戶體驗(yàn),公共主頁可以使用很多伎倆吸引用戶關(guān)注,然后肆無忌憚發(fā)廣告。
10年來,NewsFeed 有數(shù)不清的改進(jìn),甚至每天線上會(huì)同時(shí)部署很多算法版本進(jìn)行AB測(cè)試。但 EdgeRank 是這條優(yōu)化迭代之路上的一個(gè)標(biāo)志性建筑。我們可以將 NewsFeed 排序策略按照 EdgeRank 分為 PreEdgeRank 時(shí)代、InEdgeRank 時(shí)代、PostEdgeRank 時(shí)代。
EdgeRank 算法
EdgeRank,顧名思義,就是對(duì)邊(Edge)進(jìn)行排序(Rank)。
每一個(gè)朋友的每一個(gè)操作(Action)都可能以新鮮事(News)的方式呈現(xiàn)在用戶面前,比如朋友發(fā)布了一條新鮮事,朋友贊了朋友的朋友一條新鮮事,朋友評(píng)論了朋友的朋友一條新鮮事,朋友給自己的照片加了一個(gè)標(biāo)簽,等等。稍微用腳后跟想一想就知道,按照這樣羅列的話,每個(gè)用戶得看多少新鮮事?于是 FB 就想在一條動(dòng)態(tài)呈現(xiàn)給一個(gè)用戶之前,先預(yù)估一下這個(gè)用戶對(duì)這條新鮮事感興趣程度。在 FB 的定義下,一個(gè) Action 就是一個(gè) Edge,所以這套量化興趣的算法就叫做 EdgeRank。
別看今天 Facebook 各種高大上,又是深度學(xué)習(xí)又是人工智能,要知道,在 EdgeRank 提出之前,F(xiàn)B 也是有過刀耕火種時(shí)代的,F(xiàn)B 的首席產(chǎn)品官 Chris Cox 談及早期 NewsFeed 是這樣說的:
“In the beginning, News Feed ranking was turning knobs. Turn up photos a little bit, turn down platform stories a little bit.”(最初,NewsFeed 排序就是在主觀拍腦袋,給照片加點(diǎn)權(quán)重,給平臺(tái)動(dòng)態(tài)消息降點(diǎn)權(quán)重)
“a photo might be worth 5 points, while joining a group was worth 1 point” (把照片權(quán)重定為5,把加群權(quán)重定為1)
國(guó)內(nèi)算法工程師們聽到這些,想必都要會(huì)心地笑了:原來 FB 也是從這個(gè)時(shí)代走過來的。但 Facebook 不同的是,這只是暫時(shí)的情形,他們已經(jīng)走到更高級(jí)的階段了。
Serkan Piantino 在2010年左右領(lǐng)導(dǎo)并開發(fā)了第一版 EdgeRank 算法。下面說說大名鼎鼎的 EdgeRank 是怎么回事。
EdgeRank 主要有三個(gè)因素在起作用:
親密度(Affinity Score)
邊的權(quán)重(Edge Weight)
新鮮程度(Time Decay)
想象一條內(nèi)容誕生后,途經(jīng)什么路徑流動(dòng)到你的面前?
首先經(jīng)你的一個(gè)朋友(或者你的關(guān)注源)的之手產(chǎn)生了一條新鮮事(他發(fā)布、贊、加標(biāo)簽這些產(chǎn)生了新鮮事);
然后經(jīng)過你這個(gè)朋友(或者你的關(guān)注源)的介紹,到了你家門口,你一開門(登錄)就可能看見它;
內(nèi)容不多時(shí),開門一個(gè)一個(gè)寒暄可能還行,它們也等得起,也無所謂先來后到,內(nèi)容太多時(shí),就得考慮個(gè)先來后到了。
這三個(gè)步驟,就大致刻畫了 EdgeRank 的思想了,其實(shí)還是很簡(jiǎn)單直接的。
親密度對(duì)應(yīng)了第二個(gè)步驟背后的思想,那么多人介紹過來,我們當(dāng)然要優(yōu)先照顧更“喜歡”的人了,親密度的量化要考慮平常里你和這個(gè)朋友“走動(dòng)”是否頻繁,連接是否緊密。主要考慮下面幾點(diǎn):
你們連接的強(qiáng)度,點(diǎn)贊之交,還是評(píng)論之交,或是私信之交,連接方式不同,強(qiáng)度就不同;
你們連接的頻繁程度,一日百贊,還是百日一贊,差別也很大;
你們有多久沒有建立連接了,一年沒有了,關(guān)系自然就更淡了;
親密度是單向的,也就是說你對(duì)朋友的親密度,和朋友對(duì)你的親密度可能不一樣哦。
你看,看似神秘的 EdgeRank 算法,其實(shí)跟大家不太待見的雞湯居然意思是一樣的,是不是覺得它竟然如此平易近人?
邊的權(quán)重也很直接,其實(shí)它反映了產(chǎn)生一條新鮮事的成本,成本越高的,權(quán)重越大。點(diǎn)贊、評(píng)論、發(fā)一條文字、發(fā)一張照片、發(fā)一個(gè)鏈接,背后用戶付出的成本不一樣,反應(yīng)在邊的權(quán)重上也就不一樣。顯然,你點(diǎn)個(gè)贊的成本,和你發(fā)布一條新鮮事的成本差別很多。
最后,新鮮程度,也是一個(gè)符合直覺的自然假設(shè):NewsFeed 總是青睞 New 一些的 Feed,新的新鮮事總體上更可能得到用戶的臨幸。FB 用了一個(gè)類似指數(shù)衰減的函數(shù)來量化動(dòng)態(tài)的新舊程度。
三個(gè)分?jǐn)?shù),最終用相乘的方式共同作用于每一條新鮮事的分?jǐn)?shù),用于排序和篩選。
這個(gè)排序方法的確是很簡(jiǎn)單,基本上只考慮了社交方面的因素,而沒有考慮太多內(nèi)容本身對(duì)用戶吸引力。
從公開的資料看 EdgeRank,并不是什么高深的算法,它只是量化了三個(gè)主要因素,然后主觀地相乘,而沒有任何目標(biāo)優(yōu)化思想在背后,根據(jù) Facebook 披露的消息看,早期的 EdgeRank 的確沒有引入機(jī)器學(xué)習(xí),所以根本稱不上是智能的算法。
為什么 EdgeRank 這么有名?因?yàn)樗窃贔8開發(fā)者大會(huì)上公開介紹過的,經(jīng)過一知半解的媒體渲染,變成了一個(gè)神秘高深的存在。
后 EdgeRank 時(shí)代
2011年之后,F(xiàn)acebook 內(nèi)部就不再提 EdgeRank 算法了,因?yàn)橛脩魯?shù)和廣告主的飛增,導(dǎo)致 NewsFeed 的排序算法必須要更上一層樓。如今月活躍超過10億用戶,約2000萬的公共主頁,移動(dòng)設(shè)備貢獻(xiàn)了大多數(shù)流量,復(fù)雜的上下文因素,必須引入機(jī)器學(xué)習(xí)才能 Hold 住整個(gè)場(chǎng)面。
在原來 EdgeRank 的基礎(chǔ)上,更加細(xì)致地定義了不同層級(jí)的親密度。用深度神經(jīng)網(wǎng)絡(luò)理解圖片內(nèi)容和文字內(nèi)容,從而可以知道相片中的物體是不是用戶感興趣的,可以知道新鮮事的討論話題。隨著產(chǎn)品迭代,也加入了更多產(chǎn)品特征,諸如閱讀時(shí)間長(zhǎng)短、視頻內(nèi)容、鏈接內(nèi)容等,取關(guān)、隱藏一個(gè)源。前前后后一共考慮了10萬+的變量(模型的特征空間應(yīng)該會(huì)更高),如果還按照原來的方式去調(diào)節(jié)權(quán)重,顯然既不科學(xué)又很低效。
從 Facebook 的機(jī)器學(xué)習(xí)應(yīng)用博客頁面可以看到,2010年之后就開始逐漸有機(jī)器學(xué)習(xí)方面的文章出現(xiàn)了。
相關(guān)資料顯示,2011年之后的 NewsFeed 排序算法,全面轉(zhuǎn)向了機(jī)器學(xué)習(xí),用優(yōu)化理論來決定每個(gè)因素的權(quán)重,將人從繁雜的策略量化中解放出來。
在被機(jī)器學(xué)習(xí)接管后的 NewsFeed,很多地方都更加細(xì)致。
用機(jī)器學(xué)習(xí)預(yù)估新鮮事的質(zhì)量。通過構(gòu)造了一份問卷調(diào)查,訪問了若干用戶來收集數(shù)據(jù),用收集的數(shù)據(jù)構(gòu)建了一個(gè)機(jī)器學(xué)習(xí)模型,用于 NewsFeed 排序時(shí)預(yù)測(cè)一條動(dòng)態(tài)的質(zhì)量,將預(yù)測(cè)的質(zhì)量分?jǐn)?shù)作為最終排序的一個(gè)特征。用樹模型構(gòu)造離散特征,結(jié)合最常見的LR模型預(yù)估廣告點(diǎn)擊率。
除了全面轉(zhuǎn)向機(jī)器學(xué)習(xí)之外,NewsFeed 團(tuán)隊(duì)也在重新思考人和算法的關(guān)系。他們要關(guān)心的是到底“如何把用戶真正最關(guān)心的找出來”,而不僅僅是“提高點(diǎn)擊率”。Facebook 一直是數(shù)據(jù)驅(qū)動(dòng)的,也是他們能夠在爭(zhēng)議中把 NewsFeed 堅(jiān)持下來的信念來源,而是不是唯數(shù)據(jù)馬首是瞻,團(tuán)隊(duì)內(nèi)部有很多思考,也有很多變化。
僅舉幾例:
團(tuán)隊(duì)發(fā)現(xiàn)有85%的隱藏新鮮事操作來自5%的人,經(jīng)過與這些用戶溝通才發(fā)現(xiàn),原來這5%的人把“隱藏”當(dāng)作郵件里的“標(biāo)記已讀”了,對(duì)喜不喜歡的新鮮事只要看過就會(huì)點(diǎn)擊隱藏。
對(duì)于悲傷的事情,用戶可能關(guān)心但不會(huì)點(diǎn)贊的。
對(duì)于有些點(diǎn)贊,用戶可能并不是真的感興趣,只是“點(diǎn)贊狂魔”發(fā)狂而已。
用戶閱讀一篇長(zhǎng)帖子,讀到一半不讀了,也并不能說明他對(duì)這篇帖子不感興趣。
這些 case,都讓他們開始關(guān)注到機(jī)器學(xué)習(xí)和數(shù)據(jù)的局限。
于是,在算法團(tuán)隊(duì)之外,F(xiàn)acebook 搭建了一個(gè)遍布全球的人肉評(píng)測(cè)小組。人肉評(píng)測(cè)小組不是簡(jiǎn)單地對(duì)算法篩選結(jié)果進(jìn)行喜歡/不喜歡的標(biāo)注,而是會(huì)非常深入地闡述為什么喜歡/不喜歡算法篩選結(jié)果,而且會(huì)與工程師詳細(xì)交流評(píng)測(cè)結(jié)果,因?yàn)檫@種人肉評(píng)測(cè)方式可以有效地拆穿數(shù)據(jù)說謊,讓產(chǎn)品遠(yuǎn)離一味追求提高數(shù)據(jù)指標(biāo)的怪圈。
除此之外,產(chǎn)品上還加強(qiáng)了過濾器功能(Filter):你可以選擇你的動(dòng)態(tài)給誰看,你可以選擇不看誰的動(dòng)態(tài)(Hide),你也可以選擇優(yōu)先看到誰的動(dòng)態(tài)(See first),當(dāng)然你可以取消關(guān)注一些人或者公共主頁,將這些控制權(quán)交給用戶,一方面安撫了用戶被算法接管的不安,另一方面也是一項(xiàng)重要的數(shù)據(jù)來源。事實(shí)上,如今的過濾器已經(jīng)復(fù)雜到大多數(shù)用戶都不會(huì)使用這些控制權(quán)。
“如何衡量用戶真的感興趣”這個(gè)問題也許遠(yuǎn)遠(yuǎn)沒有最終答案,為什么?因?yàn)槿说姆抢硇哉紦?jù)了絕大多數(shù)時(shí)候,而“不一致性”又是非理性的最重要表現(xiàn),根據(jù)心情不同,用戶有不同的感興趣的標(biāo)準(zhǔn),而且這些標(biāo)準(zhǔn)也許還是相互矛盾的。
NewsFeed 的配套設(shè)施
NewsFeed 存在的前提是要依賴用戶建立大量的社交聯(lián)系,這樣才會(huì)出現(xiàn)信息過載,因此 NewsFeed 的一個(gè)重要的配套設(shè)施就是“你可能感興趣的人”(People you may like)推薦系統(tǒng)。
這是一個(gè)我們?cè)诋a(chǎn)品形式上比較熟悉的推薦系統(tǒng),它是一套大規(guī)模矩陣分解算法,利用已有的協(xié)同矩陣為你推薦你可能想建立聯(lián)系的新Item,包括用戶、app、公共主頁等。
NewsFeed 還有另一個(gè)配套設(shè)施,也是它為什么每天能吸金幾千萬刀的原因:廣告系統(tǒng)。Facebook 的廣告形態(tài)多樣:
Suggested Page (你可能喜歡的公眾頁)
Page Post (公眾號(hào)帖子推廣)
Suggested App (你可能喜歡的應(yīng)用)
Video Ads (視頻廣告)
現(xiàn)在,每一次 NewsFeed 調(diào)整算法都會(huì)引來廣告主們的抗議,他們都是在 FB 上擁有公共主頁的商業(yè)機(jī)構(gòu)。
在以前,F(xiàn)B 鼓勵(lì)這些商業(yè)機(jī)構(gòu)花錢投廣告增加粉絲,彼時(shí)的 NewsFeed 算法允許隨意發(fā)廣告(以原生的新鮮事形式)。而現(xiàn)在,F(xiàn)B 嚴(yán)格限制商業(yè)廣告和普通用戶的觸達(dá)。商業(yè)機(jī)構(gòu)感覺自己被耍了,花錢買粉之后卻不能發(fā)原生廣告,無獨(dú)有偶,根據(jù)微博 CEO(@來去之間)在微博上的披露,現(xiàn)在微博企業(yè)號(hào)也是被限制博文達(dá)到粉絲 feed 次數(shù)的。
據(jù)國(guó)外某專門做 NewsFeed 推廣的公司追蹤,1000個(gè)公共主頁的50000條內(nèi)容以原生方式觸達(dá)用戶的比例,從2012年16%降低到了2014年的6.51%,降了一倍還多,這當(dāng)然也可能因?yàn)橛脩羝骄P(guān)注的公共主頁增多了[13]。
世界上最遙遠(yuǎn)的距離,就是:手握大把粉絲,卻不能隨心所欲地曝光自己的產(chǎn)品。
當(dāng)然,所有的公共主頁們,不要灰心,并不是沒有辦法,NewsFeed 的廣告系統(tǒng)大門永遠(yuǎn)向你們敞開。
對(duì) NewsFeed 的展望
具體 NewsFeed 會(huì)怎么發(fā)展,無法預(yù)測(cè),但是可以肯定的有三點(diǎn):
NewsFeed 的算法會(huì)一直進(jìn)化下去。
NewsFeed 團(tuán)隊(duì)把人和算法的關(guān)系處理得更好,從數(shù)據(jù)驅(qū)動(dòng)(Data-Driven)到數(shù)據(jù)啟示(Data-Informed)。
越來越多的 Feed 型產(chǎn)品會(huì)效仿 NewsFeed,加入到興趣feed的潮流中去。
? 查看全部
2004年,F(xiàn)acebook 問世,兩年后的9月份,NewsFeed 問世,同時(shí)問世的還有MiniFeed(個(gè)人動(dòng)態(tài))。今年是 NewsFeed 上線十周年了,這10年里,F(xiàn)acebook 是怎么一步一步把 NewsFeed 打造成了日收入幾千萬美金的現(xiàn)金牛的?不管你對(duì)這充滿銅臭的問題感不感興趣,反正我很感興趣。
今天我們都已經(jīng)習(xí)慣了把照片、文字等內(nèi)容主動(dòng)分享給好友,但是當(dāng)時(shí) Facebook 上線了這個(gè)功能時(shí),引起了廣泛的爭(zhēng)議,焦點(diǎn)就是“隱私”問題,用戶認(rèn)為我發(fā)的動(dòng)態(tài)怎么能讓別人看見呢[1]?用戶一直不停質(zhì)疑和抗議,又忍不住繼續(xù)使用,F(xiàn)acebook 就這樣在爭(zhēng)議聲中增加了最初的隱私控制,比如隱藏自己的動(dòng)態(tài),而 NewsFeed 就這樣堅(jiān)持了下來??磥恚≡媸且粋€(gè)撩妹高手,看穿了用戶們“嘴上說不要,身體卻誠(chéng)實(shí)”的內(nèi)在。
隨著用戶們漸漸地愛上了瀏覽好友的分(xuan)享(yao)了,2009年,F(xiàn)acebook 加上了贊(like)功能(FriendFeed 在2007年發(fā)明了贊按鈕,F(xiàn)riendFeed 后來于2009年被 Facebook 收購,并將贊這個(gè)功能整合進(jìn)來),開始按照熱門程度對(duì) Feed 重排序,不出意外,這又引起了用戶們的反抗,因?yàn)榇蠹乙呀?jīng)習(xí)慣按照時(shí)間順序閱讀。
伴隨這么多爭(zhēng)議,為什么 Facebook 一直堅(jiān)持做興趣feed?從數(shù)據(jù)上看,平均每個(gè)用戶每天待看的新鮮事有1500條之多,但平均每個(gè)用戶每天只能閱讀300條;從商業(yè)角度,將 Feed 排序交給上帝的做法,非常不利于商業(yè)化且有損用戶體驗(yàn),公共主頁可以使用很多伎倆吸引用戶關(guān)注,然后肆無忌憚發(fā)廣告。
10年來,NewsFeed 有數(shù)不清的改進(jìn),甚至每天線上會(huì)同時(shí)部署很多算法版本進(jìn)行AB測(cè)試。但 EdgeRank 是這條優(yōu)化迭代之路上的一個(gè)標(biāo)志性建筑。我們可以將 NewsFeed 排序策略按照 EdgeRank 分為 PreEdgeRank 時(shí)代、InEdgeRank 時(shí)代、PostEdgeRank 時(shí)代。
EdgeRank 算法
EdgeRank,顧名思義,就是對(duì)邊(Edge)進(jìn)行排序(Rank)。
每一個(gè)朋友的每一個(gè)操作(Action)都可能以新鮮事(News)的方式呈現(xiàn)在用戶面前,比如朋友發(fā)布了一條新鮮事,朋友贊了朋友的朋友一條新鮮事,朋友評(píng)論了朋友的朋友一條新鮮事,朋友給自己的照片加了一個(gè)標(biāo)簽,等等。稍微用腳后跟想一想就知道,按照這樣羅列的話,每個(gè)用戶得看多少新鮮事?于是 FB 就想在一條動(dòng)態(tài)呈現(xiàn)給一個(gè)用戶之前,先預(yù)估一下這個(gè)用戶對(duì)這條新鮮事感興趣程度。在 FB 的定義下,一個(gè) Action 就是一個(gè) Edge,所以這套量化興趣的算法就叫做 EdgeRank。
別看今天 Facebook 各種高大上,又是深度學(xué)習(xí)又是人工智能,要知道,在 EdgeRank 提出之前,F(xiàn)B 也是有過刀耕火種時(shí)代的,F(xiàn)B 的首席產(chǎn)品官 Chris Cox 談及早期 NewsFeed 是這樣說的:
“In the beginning, News Feed ranking was turning knobs. Turn up photos a little bit, turn down platform stories a little bit.”(最初,NewsFeed 排序就是在主觀拍腦袋,給照片加點(diǎn)權(quán)重,給平臺(tái)動(dòng)態(tài)消息降點(diǎn)權(quán)重)
“a photo might be worth 5 points, while joining a group was worth 1 point” (把照片權(quán)重定為5,把加群權(quán)重定為1)
國(guó)內(nèi)算法工程師們聽到這些,想必都要會(huì)心地笑了:原來 FB 也是從這個(gè)時(shí)代走過來的。但 Facebook 不同的是,這只是暫時(shí)的情形,他們已經(jīng)走到更高級(jí)的階段了。
Serkan Piantino 在2010年左右領(lǐng)導(dǎo)并開發(fā)了第一版 EdgeRank 算法。下面說說大名鼎鼎的 EdgeRank 是怎么回事。
EdgeRank 主要有三個(gè)因素在起作用:
親密度(Affinity Score)
邊的權(quán)重(Edge Weight)
新鮮程度(Time Decay)
想象一條內(nèi)容誕生后,途經(jīng)什么路徑流動(dòng)到你的面前?
首先經(jīng)你的一個(gè)朋友(或者你的關(guān)注源)的之手產(chǎn)生了一條新鮮事(他發(fā)布、贊、加標(biāo)簽這些產(chǎn)生了新鮮事);
然后經(jīng)過你這個(gè)朋友(或者你的關(guān)注源)的介紹,到了你家門口,你一開門(登錄)就可能看見它;
內(nèi)容不多時(shí),開門一個(gè)一個(gè)寒暄可能還行,它們也等得起,也無所謂先來后到,內(nèi)容太多時(shí),就得考慮個(gè)先來后到了。
這三個(gè)步驟,就大致刻畫了 EdgeRank 的思想了,其實(shí)還是很簡(jiǎn)單直接的。
親密度對(duì)應(yīng)了第二個(gè)步驟背后的思想,那么多人介紹過來,我們當(dāng)然要優(yōu)先照顧更“喜歡”的人了,親密度的量化要考慮平常里你和這個(gè)朋友“走動(dòng)”是否頻繁,連接是否緊密。主要考慮下面幾點(diǎn):
你們連接的強(qiáng)度,點(diǎn)贊之交,還是評(píng)論之交,或是私信之交,連接方式不同,強(qiáng)度就不同;
你們連接的頻繁程度,一日百贊,還是百日一贊,差別也很大;
你們有多久沒有建立連接了,一年沒有了,關(guān)系自然就更淡了;
親密度是單向的,也就是說你對(duì)朋友的親密度,和朋友對(duì)你的親密度可能不一樣哦。
你看,看似神秘的 EdgeRank 算法,其實(shí)跟大家不太待見的雞湯居然意思是一樣的,是不是覺得它竟然如此平易近人?
邊的權(quán)重也很直接,其實(shí)它反映了產(chǎn)生一條新鮮事的成本,成本越高的,權(quán)重越大。點(diǎn)贊、評(píng)論、發(fā)一條文字、發(fā)一張照片、發(fā)一個(gè)鏈接,背后用戶付出的成本不一樣,反應(yīng)在邊的權(quán)重上也就不一樣。顯然,你點(diǎn)個(gè)贊的成本,和你發(fā)布一條新鮮事的成本差別很多。
最后,新鮮程度,也是一個(gè)符合直覺的自然假設(shè):NewsFeed 總是青睞 New 一些的 Feed,新的新鮮事總體上更可能得到用戶的臨幸。FB 用了一個(gè)類似指數(shù)衰減的函數(shù)來量化動(dòng)態(tài)的新舊程度。
三個(gè)分?jǐn)?shù),最終用相乘的方式共同作用于每一條新鮮事的分?jǐn)?shù),用于排序和篩選。
這個(gè)排序方法的確是很簡(jiǎn)單,基本上只考慮了社交方面的因素,而沒有考慮太多內(nèi)容本身對(duì)用戶吸引力。
從公開的資料看 EdgeRank,并不是什么高深的算法,它只是量化了三個(gè)主要因素,然后主觀地相乘,而沒有任何目標(biāo)優(yōu)化思想在背后,根據(jù) Facebook 披露的消息看,早期的 EdgeRank 的確沒有引入機(jī)器學(xué)習(xí),所以根本稱不上是智能的算法。
為什么 EdgeRank 這么有名?因?yàn)樗窃贔8開發(fā)者大會(huì)上公開介紹過的,經(jīng)過一知半解的媒體渲染,變成了一個(gè)神秘高深的存在。
后 EdgeRank 時(shí)代
2011年之后,F(xiàn)acebook 內(nèi)部就不再提 EdgeRank 算法了,因?yàn)橛脩魯?shù)和廣告主的飛增,導(dǎo)致 NewsFeed 的排序算法必須要更上一層樓。如今月活躍超過10億用戶,約2000萬的公共主頁,移動(dòng)設(shè)備貢獻(xiàn)了大多數(shù)流量,復(fù)雜的上下文因素,必須引入機(jī)器學(xué)習(xí)才能 Hold 住整個(gè)場(chǎng)面。
在原來 EdgeRank 的基礎(chǔ)上,更加細(xì)致地定義了不同層級(jí)的親密度。用深度神經(jīng)網(wǎng)絡(luò)理解圖片內(nèi)容和文字內(nèi)容,從而可以知道相片中的物體是不是用戶感興趣的,可以知道新鮮事的討論話題。隨著產(chǎn)品迭代,也加入了更多產(chǎn)品特征,諸如閱讀時(shí)間長(zhǎng)短、視頻內(nèi)容、鏈接內(nèi)容等,取關(guān)、隱藏一個(gè)源。前前后后一共考慮了10萬+的變量(模型的特征空間應(yīng)該會(huì)更高),如果還按照原來的方式去調(diào)節(jié)權(quán)重,顯然既不科學(xué)又很低效。
從 Facebook 的機(jī)器學(xué)習(xí)應(yīng)用博客頁面可以看到,2010年之后就開始逐漸有機(jī)器學(xué)習(xí)方面的文章出現(xiàn)了。
相關(guān)資料顯示,2011年之后的 NewsFeed 排序算法,全面轉(zhuǎn)向了機(jī)器學(xué)習(xí),用優(yōu)化理論來決定每個(gè)因素的權(quán)重,將人從繁雜的策略量化中解放出來。
在被機(jī)器學(xué)習(xí)接管后的 NewsFeed,很多地方都更加細(xì)致。
用機(jī)器學(xué)習(xí)預(yù)估新鮮事的質(zhì)量。通過構(gòu)造了一份問卷調(diào)查,訪問了若干用戶來收集數(shù)據(jù),用收集的數(shù)據(jù)構(gòu)建了一個(gè)機(jī)器學(xué)習(xí)模型,用于 NewsFeed 排序時(shí)預(yù)測(cè)一條動(dòng)態(tài)的質(zhì)量,將預(yù)測(cè)的質(zhì)量分?jǐn)?shù)作為最終排序的一個(gè)特征。用樹模型構(gòu)造離散特征,結(jié)合最常見的LR模型預(yù)估廣告點(diǎn)擊率。
除了全面轉(zhuǎn)向機(jī)器學(xué)習(xí)之外,NewsFeed 團(tuán)隊(duì)也在重新思考人和算法的關(guān)系。他們要關(guān)心的是到底“如何把用戶真正最關(guān)心的找出來”,而不僅僅是“提高點(diǎn)擊率”。Facebook 一直是數(shù)據(jù)驅(qū)動(dòng)的,也是他們能夠在爭(zhēng)議中把 NewsFeed 堅(jiān)持下來的信念來源,而是不是唯數(shù)據(jù)馬首是瞻,團(tuán)隊(duì)內(nèi)部有很多思考,也有很多變化。
僅舉幾例:
團(tuán)隊(duì)發(fā)現(xiàn)有85%的隱藏新鮮事操作來自5%的人,經(jīng)過與這些用戶溝通才發(fā)現(xiàn),原來這5%的人把“隱藏”當(dāng)作郵件里的“標(biāo)記已讀”了,對(duì)喜不喜歡的新鮮事只要看過就會(huì)點(diǎn)擊隱藏。
對(duì)于悲傷的事情,用戶可能關(guān)心但不會(huì)點(diǎn)贊的。
對(duì)于有些點(diǎn)贊,用戶可能并不是真的感興趣,只是“點(diǎn)贊狂魔”發(fā)狂而已。
用戶閱讀一篇長(zhǎng)帖子,讀到一半不讀了,也并不能說明他對(duì)這篇帖子不感興趣。
這些 case,都讓他們開始關(guān)注到機(jī)器學(xué)習(xí)和數(shù)據(jù)的局限。
于是,在算法團(tuán)隊(duì)之外,F(xiàn)acebook 搭建了一個(gè)遍布全球的人肉評(píng)測(cè)小組。人肉評(píng)測(cè)小組不是簡(jiǎn)單地對(duì)算法篩選結(jié)果進(jìn)行喜歡/不喜歡的標(biāo)注,而是會(huì)非常深入地闡述為什么喜歡/不喜歡算法篩選結(jié)果,而且會(huì)與工程師詳細(xì)交流評(píng)測(cè)結(jié)果,因?yàn)檫@種人肉評(píng)測(cè)方式可以有效地拆穿數(shù)據(jù)說謊,讓產(chǎn)品遠(yuǎn)離一味追求提高數(shù)據(jù)指標(biāo)的怪圈。
除此之外,產(chǎn)品上還加強(qiáng)了過濾器功能(Filter):你可以選擇你的動(dòng)態(tài)給誰看,你可以選擇不看誰的動(dòng)態(tài)(Hide),你也可以選擇優(yōu)先看到誰的動(dòng)態(tài)(See first),當(dāng)然你可以取消關(guān)注一些人或者公共主頁,將這些控制權(quán)交給用戶,一方面安撫了用戶被算法接管的不安,另一方面也是一項(xiàng)重要的數(shù)據(jù)來源。事實(shí)上,如今的過濾器已經(jīng)復(fù)雜到大多數(shù)用戶都不會(huì)使用這些控制權(quán)。
“如何衡量用戶真的感興趣”這個(gè)問題也許遠(yuǎn)遠(yuǎn)沒有最終答案,為什么?因?yàn)槿说姆抢硇哉紦?jù)了絕大多數(shù)時(shí)候,而“不一致性”又是非理性的最重要表現(xiàn),根據(jù)心情不同,用戶有不同的感興趣的標(biāo)準(zhǔn),而且這些標(biāo)準(zhǔn)也許還是相互矛盾的。
NewsFeed 的配套設(shè)施
NewsFeed 存在的前提是要依賴用戶建立大量的社交聯(lián)系,這樣才會(huì)出現(xiàn)信息過載,因此 NewsFeed 的一個(gè)重要的配套設(shè)施就是“你可能感興趣的人”(People you may like)推薦系統(tǒng)。
這是一個(gè)我們?cè)诋a(chǎn)品形式上比較熟悉的推薦系統(tǒng),它是一套大規(guī)模矩陣分解算法,利用已有的協(xié)同矩陣為你推薦你可能想建立聯(lián)系的新Item,包括用戶、app、公共主頁等。
NewsFeed 還有另一個(gè)配套設(shè)施,也是它為什么每天能吸金幾千萬刀的原因:廣告系統(tǒng)。Facebook 的廣告形態(tài)多樣:
Suggested Page (你可能喜歡的公眾頁)
Page Post (公眾號(hào)帖子推廣)
Suggested App (你可能喜歡的應(yīng)用)
Video Ads (視頻廣告)
現(xiàn)在,每一次 NewsFeed 調(diào)整算法都會(huì)引來廣告主們的抗議,他們都是在 FB 上擁有公共主頁的商業(yè)機(jī)構(gòu)。
在以前,F(xiàn)B 鼓勵(lì)這些商業(yè)機(jī)構(gòu)花錢投廣告增加粉絲,彼時(shí)的 NewsFeed 算法允許隨意發(fā)廣告(以原生的新鮮事形式)。而現(xiàn)在,F(xiàn)B 嚴(yán)格限制商業(yè)廣告和普通用戶的觸達(dá)。商業(yè)機(jī)構(gòu)感覺自己被耍了,花錢買粉之后卻不能發(fā)原生廣告,無獨(dú)有偶,根據(jù)微博 CEO(@來去之間)在微博上的披露,現(xiàn)在微博企業(yè)號(hào)也是被限制博文達(dá)到粉絲 feed 次數(shù)的。
據(jù)國(guó)外某專門做 NewsFeed 推廣的公司追蹤,1000個(gè)公共主頁的50000條內(nèi)容以原生方式觸達(dá)用戶的比例,從2012年16%降低到了2014年的6.51%,降了一倍還多,這當(dāng)然也可能因?yàn)橛脩羝骄P(guān)注的公共主頁增多了[13]。
世界上最遙遠(yuǎn)的距離,就是:手握大把粉絲,卻不能隨心所欲地曝光自己的產(chǎn)品。
當(dāng)然,所有的公共主頁們,不要灰心,并不是沒有辦法,NewsFeed 的廣告系統(tǒng)大門永遠(yuǎn)向你們敞開。
對(duì) NewsFeed 的展望
具體 NewsFeed 會(huì)怎么發(fā)展,無法預(yù)測(cè),但是可以肯定的有三點(diǎn):
NewsFeed 的算法會(huì)一直進(jìn)化下去。
NewsFeed 團(tuán)隊(duì)把人和算法的關(guān)系處理得更好,從數(shù)據(jù)驅(qū)動(dòng)(Data-Driven)到數(shù)據(jù)啟示(Data-Informed)。
越來越多的 Feed 型產(chǎn)品會(huì)效仿 NewsFeed,加入到興趣feed的潮流中去。
? 查看全部
NewsFeed 怎么來的
2004年,F(xiàn)acebook 問世,兩年后的9月份,NewsFeed 問世,同時(shí)問世的還有MiniFeed(個(gè)人動(dòng)態(tài))。今年是 NewsFeed 上線十周年了,這10年里,F(xiàn)acebook 是怎么一步一步把 NewsFeed 打造成了日收入幾千萬美金的現(xiàn)金牛的?不管你對(duì)這充滿銅臭的問題感不感興趣,反正我很感興趣。
今天我們都已經(jīng)習(xí)慣了把照片、文字等內(nèi)容主動(dòng)分享給好友,但是當(dāng)時(shí) Facebook 上線了這個(gè)功能時(shí),引起了廣泛的爭(zhēng)議,焦點(diǎn)就是“隱私”問題,用戶認(rèn)為我發(fā)的動(dòng)態(tài)怎么能讓別人看見呢[1]?用戶一直不停質(zhì)疑和抗議,又忍不住繼續(xù)使用,F(xiàn)acebook 就這樣在爭(zhēng)議聲中增加了最初的隱私控制,比如隱藏自己的動(dòng)態(tài),而 NewsFeed 就這樣堅(jiān)持了下來??磥?,小扎真是一個(gè)撩妹高手,看穿了用戶們“嘴上說不要,身體卻誠(chéng)實(shí)”的內(nèi)在。
隨著用戶們漸漸地愛上了瀏覽好友的分(xuan)享(yao)了,2009年,F(xiàn)acebook 加上了贊(like)功能(FriendFeed 在2007年發(fā)明了贊按鈕,F(xiàn)riendFeed 后來于2009年被 Facebook 收購,并將贊這個(gè)功能整合進(jìn)來),開始按照熱門程度對(duì) Feed 重排序,不出意外,這又引起了用戶們的反抗,因?yàn)榇蠹乙呀?jīng)習(xí)慣按照時(shí)間順序閱讀。
伴隨這么多爭(zhēng)議,為什么 Facebook 一直堅(jiān)持做興趣feed?從數(shù)據(jù)上看,平均每個(gè)用戶每天待看的新鮮事有1500條之多,但平均每個(gè)用戶每天只能閱讀300條;從商業(yè)角度,將 Feed 排序交給上帝的做法,非常不利于商業(yè)化且有損用戶體驗(yàn),公共主頁可以使用很多伎倆吸引用戶關(guān)注,然后肆無忌憚發(fā)廣告。
10年來,NewsFeed 有數(shù)不清的改進(jìn),甚至每天線上會(huì)同時(shí)部署很多算法版本進(jìn)行AB測(cè)試。但 EdgeRank 是這條優(yōu)化迭代之路上的一個(gè)標(biāo)志性建筑。我們可以將 NewsFeed 排序策略按照 EdgeRank 分為 PreEdgeRank 時(shí)代、InEdgeRank 時(shí)代、PostEdgeRank 時(shí)代。
EdgeRank 算法
EdgeRank,顧名思義,就是對(duì)邊(Edge)進(jìn)行排序(Rank)。
每一個(gè)朋友的每一個(gè)操作(Action)都可能以新鮮事(News)的方式呈現(xiàn)在用戶面前,比如朋友發(fā)布了一條新鮮事,朋友贊了朋友的朋友一條新鮮事,朋友評(píng)論了朋友的朋友一條新鮮事,朋友給自己的照片加了一個(gè)標(biāo)簽,等等。稍微用腳后跟想一想就知道,按照這樣羅列的話,每個(gè)用戶得看多少新鮮事?于是 FB 就想在一條動(dòng)態(tài)呈現(xiàn)給一個(gè)用戶之前,先預(yù)估一下這個(gè)用戶對(duì)這條新鮮事感興趣程度。在 FB 的定義下,一個(gè) Action 就是一個(gè) Edge,所以這套量化興趣的算法就叫做 EdgeRank。
別看今天 Facebook 各種高大上,又是深度學(xué)習(xí)又是人工智能,要知道,在 EdgeRank 提出之前,F(xiàn)B 也是有過刀耕火種時(shí)代的,F(xiàn)B 的首席產(chǎn)品官 Chris Cox 談及早期 NewsFeed 是這樣說的:
“In the beginning, News Feed ranking was turning knobs. Turn up photos a little bit, turn down platform stories a little bit.”(最初,NewsFeed 排序就是在主觀拍腦袋,給照片加點(diǎn)權(quán)重,給平臺(tái)動(dòng)態(tài)消息降點(diǎn)權(quán)重)
“a photo might be worth 5 points, while joining a group was worth 1 point” (把照片權(quán)重定為5,把加群權(quán)重定為1)
國(guó)內(nèi)算法工程師們聽到這些,想必都要會(huì)心地笑了:原來 FB 也是從這個(gè)時(shí)代走過來的。但 Facebook 不同的是,這只是暫時(shí)的情形,他們已經(jīng)走到更高級(jí)的階段了。
Serkan Piantino 在2010年左右領(lǐng)導(dǎo)并開發(fā)了第一版 EdgeRank 算法。下面說說大名鼎鼎的 EdgeRank 是怎么回事。
EdgeRank 主要有三個(gè)因素在起作用:
親密度(Affinity Score)
邊的權(quán)重(Edge Weight)
新鮮程度(Time Decay)
想象一條內(nèi)容誕生后,途經(jīng)什么路徑流動(dòng)到你的面前?
首先經(jīng)你的一個(gè)朋友(或者你的關(guān)注源)的之手產(chǎn)生了一條新鮮事(他發(fā)布、贊、加標(biāo)簽這些產(chǎn)生了新鮮事);
然后經(jīng)過你這個(gè)朋友(或者你的關(guān)注源)的介紹,到了你家門口,你一開門(登錄)就可能看見它;
內(nèi)容不多時(shí),開門一個(gè)一個(gè)寒暄可能還行,它們也等得起,也無所謂先來后到,內(nèi)容太多時(shí),就得考慮個(gè)先來后到了。
這三個(gè)步驟,就大致刻畫了 EdgeRank 的思想了,其實(shí)還是很簡(jiǎn)單直接的。
親密度對(duì)應(yīng)了第二個(gè)步驟背后的思想,那么多人介紹過來,我們當(dāng)然要優(yōu)先照顧更“喜歡”的人了,親密度的量化要考慮平常里你和這個(gè)朋友“走動(dòng)”是否頻繁,連接是否緊密。主要考慮下面幾點(diǎn):
你們連接的強(qiáng)度,點(diǎn)贊之交,還是評(píng)論之交,或是私信之交,連接方式不同,強(qiáng)度就不同;
你們連接的頻繁程度,一日百贊,還是百日一贊,差別也很大;
你們有多久沒有建立連接了,一年沒有了,關(guān)系自然就更淡了;
親密度是單向的,也就是說你對(duì)朋友的親密度,和朋友對(duì)你的親密度可能不一樣哦。
你看,看似神秘的 EdgeRank 算法,其實(shí)跟大家不太待見的雞湯居然意思是一樣的,是不是覺得它竟然如此平易近人?
邊的權(quán)重也很直接,其實(shí)它反映了產(chǎn)生一條新鮮事的成本,成本越高的,權(quán)重越大。點(diǎn)贊、評(píng)論、發(fā)一條文字、發(fā)一張照片、發(fā)一個(gè)鏈接,背后用戶付出的成本不一樣,反應(yīng)在邊的權(quán)重上也就不一樣。顯然,你點(diǎn)個(gè)贊的成本,和你發(fā)布一條新鮮事的成本差別很多。
最后,新鮮程度,也是一個(gè)符合直覺的自然假設(shè):NewsFeed 總是青睞 New 一些的 Feed,新的新鮮事總體上更可能得到用戶的臨幸。FB 用了一個(gè)類似指數(shù)衰減的函數(shù)來量化動(dòng)態(tài)的新舊程度。
三個(gè)分?jǐn)?shù),最終用相乘的方式共同作用于每一條新鮮事的分?jǐn)?shù),用于排序和篩選。
這個(gè)排序方法的確是很簡(jiǎn)單,基本上只考慮了社交方面的因素,而沒有考慮太多內(nèi)容本身對(duì)用戶吸引力。
從公開的資料看 EdgeRank,并不是什么高深的算法,它只是量化了三個(gè)主要因素,然后主觀地相乘,而沒有任何目標(biāo)優(yōu)化思想在背后,根據(jù) Facebook 披露的消息看,早期的 EdgeRank 的確沒有引入機(jī)器學(xué)習(xí),所以根本稱不上是智能的算法。
為什么 EdgeRank 這么有名?因?yàn)樗窃贔8開發(fā)者大會(huì)上公開介紹過的,經(jīng)過一知半解的媒體渲染,變成了一個(gè)神秘高深的存在。
后 EdgeRank 時(shí)代
2011年之后,F(xiàn)acebook 內(nèi)部就不再提 EdgeRank 算法了,因?yàn)橛脩魯?shù)和廣告主的飛增,導(dǎo)致 NewsFeed 的排序算法必須要更上一層樓。如今月活躍超過10億用戶,約2000萬的公共主頁,移動(dòng)設(shè)備貢獻(xiàn)了大多數(shù)流量,復(fù)雜的上下文因素,必須引入機(jī)器學(xué)習(xí)才能 Hold 住整個(gè)場(chǎng)面。
在原來 EdgeRank 的基礎(chǔ)上,更加細(xì)致地定義了不同層級(jí)的親密度。用深度神經(jīng)網(wǎng)絡(luò)理解圖片內(nèi)容和文字內(nèi)容,從而可以知道相片中的物體是不是用戶感興趣的,可以知道新鮮事的討論話題。隨著產(chǎn)品迭代,也加入了更多產(chǎn)品特征,諸如閱讀時(shí)間長(zhǎng)短、視頻內(nèi)容、鏈接內(nèi)容等,取關(guān)、隱藏一個(gè)源。前前后后一共考慮了10萬+的變量(模型的特征空間應(yīng)該會(huì)更高),如果還按照原來的方式去調(diào)節(jié)權(quán)重,顯然既不科學(xué)又很低效。
從 Facebook 的機(jī)器學(xué)習(xí)應(yīng)用博客頁面可以看到,2010年之后就開始逐漸有機(jī)器學(xué)習(xí)方面的文章出現(xiàn)了。
相關(guān)資料顯示,2011年之后的 NewsFeed 排序算法,全面轉(zhuǎn)向了機(jī)器學(xué)習(xí),用優(yōu)化理論來決定每個(gè)因素的權(quán)重,將人從繁雜的策略量化中解放出來。
在被機(jī)器學(xué)習(xí)接管后的 NewsFeed,很多地方都更加細(xì)致。
用機(jī)器學(xué)習(xí)預(yù)估新鮮事的質(zhì)量。通過構(gòu)造了一份問卷調(diào)查,訪問了若干用戶來收集數(shù)據(jù),用收集的數(shù)據(jù)構(gòu)建了一個(gè)機(jī)器學(xué)習(xí)模型,用于 NewsFeed 排序時(shí)預(yù)測(cè)一條動(dòng)態(tài)的質(zhì)量,將預(yù)測(cè)的質(zhì)量分?jǐn)?shù)作為最終排序的一個(gè)特征。用樹模型構(gòu)造離散特征,結(jié)合最常見的LR模型預(yù)估廣告點(diǎn)擊率。
除了全面轉(zhuǎn)向機(jī)器學(xué)習(xí)之外,NewsFeed 團(tuán)隊(duì)也在重新思考人和算法的關(guān)系。他們要關(guān)心的是到底“如何把用戶真正最關(guān)心的找出來”,而不僅僅是“提高點(diǎn)擊率”。Facebook 一直是數(shù)據(jù)驅(qū)動(dòng)的,也是他們能夠在爭(zhēng)議中把 NewsFeed 堅(jiān)持下來的信念來源,而是不是唯數(shù)據(jù)馬首是瞻,團(tuán)隊(duì)內(nèi)部有很多思考,也有很多變化。
僅舉幾例:
團(tuán)隊(duì)發(fā)現(xiàn)有85%的隱藏新鮮事操作來自5%的人,經(jīng)過與這些用戶溝通才發(fā)現(xiàn),原來這5%的人把“隱藏”當(dāng)作郵件里的“標(biāo)記已讀”了,對(duì)喜不喜歡的新鮮事只要看過就會(huì)點(diǎn)擊隱藏。
對(duì)于悲傷的事情,用戶可能關(guān)心但不會(huì)點(diǎn)贊的。
對(duì)于有些點(diǎn)贊,用戶可能并不是真的感興趣,只是“點(diǎn)贊狂魔”發(fā)狂而已。
用戶閱讀一篇長(zhǎng)帖子,讀到一半不讀了,也并不能說明他對(duì)這篇帖子不感興趣。
這些 case,都讓他們開始關(guān)注到機(jī)器學(xué)習(xí)和數(shù)據(jù)的局限。
于是,在算法團(tuán)隊(duì)之外,F(xiàn)acebook 搭建了一個(gè)遍布全球的人肉評(píng)測(cè)小組。人肉評(píng)測(cè)小組不是簡(jiǎn)單地對(duì)算法篩選結(jié)果進(jìn)行喜歡/不喜歡的標(biāo)注,而是會(huì)非常深入地闡述為什么喜歡/不喜歡算法篩選結(jié)果,而且會(huì)與工程師詳細(xì)交流評(píng)測(cè)結(jié)果,因?yàn)檫@種人肉評(píng)測(cè)方式可以有效地拆穿數(shù)據(jù)說謊,讓產(chǎn)品遠(yuǎn)離一味追求提高數(shù)據(jù)指標(biāo)的怪圈。
除此之外,產(chǎn)品上還加強(qiáng)了過濾器功能(Filter):你可以選擇你的動(dòng)態(tài)給誰看,你可以選擇不看誰的動(dòng)態(tài)(Hide),你也可以選擇優(yōu)先看到誰的動(dòng)態(tài)(See first),當(dāng)然你可以取消關(guān)注一些人或者公共主頁,將這些控制權(quán)交給用戶,一方面安撫了用戶被算法接管的不安,另一方面也是一項(xiàng)重要的數(shù)據(jù)來源。事實(shí)上,如今的過濾器已經(jīng)復(fù)雜到大多數(shù)用戶都不會(huì)使用這些控制權(quán)。
“如何衡量用戶真的感興趣”這個(gè)問題也許遠(yuǎn)遠(yuǎn)沒有最終答案,為什么?因?yàn)槿说姆抢硇哉紦?jù)了絕大多數(shù)時(shí)候,而“不一致性”又是非理性的最重要表現(xiàn),根據(jù)心情不同,用戶有不同的感興趣的標(biāo)準(zhǔn),而且這些標(biāo)準(zhǔn)也許還是相互矛盾的。
NewsFeed 的配套設(shè)施
NewsFeed 存在的前提是要依賴用戶建立大量的社交聯(lián)系,這樣才會(huì)出現(xiàn)信息過載,因此 NewsFeed 的一個(gè)重要的配套設(shè)施就是“你可能感興趣的人”(People you may like)推薦系統(tǒng)。
這是一個(gè)我們?cè)诋a(chǎn)品形式上比較熟悉的推薦系統(tǒng),它是一套大規(guī)模矩陣分解算法,利用已有的協(xié)同矩陣為你推薦你可能想建立聯(lián)系的新Item,包括用戶、app、公共主頁等。
NewsFeed 還有另一個(gè)配套設(shè)施,也是它為什么每天能吸金幾千萬刀的原因:廣告系統(tǒng)。Facebook 的廣告形態(tài)多樣:
Suggested Page (你可能喜歡的公眾頁)
Page Post (公眾號(hào)帖子推廣)
Suggested App (你可能喜歡的應(yīng)用)
Video Ads (視頻廣告)
現(xiàn)在,每一次 NewsFeed 調(diào)整算法都會(huì)引來廣告主們的抗議,他們都是在 FB 上擁有公共主頁的商業(yè)機(jī)構(gòu)。
在以前,F(xiàn)B 鼓勵(lì)這些商業(yè)機(jī)構(gòu)花錢投廣告增加粉絲,彼時(shí)的 NewsFeed 算法允許隨意發(fā)廣告(以原生的新鮮事形式)。而現(xiàn)在,F(xiàn)B 嚴(yán)格限制商業(yè)廣告和普通用戶的觸達(dá)。商業(yè)機(jī)構(gòu)感覺自己被耍了,花錢買粉之后卻不能發(fā)原生廣告,無獨(dú)有偶,根據(jù)微博 CEO(@來去之間)在微博上的披露,現(xiàn)在微博企業(yè)號(hào)也是被限制博文達(dá)到粉絲 feed 次數(shù)的。
據(jù)國(guó)外某專門做 NewsFeed 推廣的公司追蹤,1000個(gè)公共主頁的50000條內(nèi)容以原生方式觸達(dá)用戶的比例,從2012年16%降低到了2014年的6.51%,降了一倍還多,這當(dāng)然也可能因?yàn)橛脩羝骄P(guān)注的公共主頁增多了[13]。
世界上最遙遠(yuǎn)的距離,就是:手握大把粉絲,卻不能隨心所欲地曝光自己的產(chǎn)品。
當(dāng)然,所有的公共主頁們,不要灰心,并不是沒有辦法,NewsFeed 的廣告系統(tǒng)大門永遠(yuǎn)向你們敞開。
對(duì) NewsFeed 的展望
具體 NewsFeed 會(huì)怎么發(fā)展,無法預(yù)測(cè),但是可以肯定的有三點(diǎn):
NewsFeed 的算法會(huì)一直進(jìn)化下去。
NewsFeed 團(tuán)隊(duì)把人和算法的關(guān)系處理得更好,從數(shù)據(jù)驅(qū)動(dòng)(Data-Driven)到數(shù)據(jù)啟示(Data-Informed)。
越來越多的 Feed 型產(chǎn)品會(huì)效仿 NewsFeed,加入到興趣feed的潮流中去。
?
2004年,F(xiàn)acebook 問世,兩年后的9月份,NewsFeed 問世,同時(shí)問世的還有MiniFeed(個(gè)人動(dòng)態(tài))。今年是 NewsFeed 上線十周年了,這10年里,F(xiàn)acebook 是怎么一步一步把 NewsFeed 打造成了日收入幾千萬美金的現(xiàn)金牛的?不管你對(duì)這充滿銅臭的問題感不感興趣,反正我很感興趣。
今天我們都已經(jīng)習(xí)慣了把照片、文字等內(nèi)容主動(dòng)分享給好友,但是當(dāng)時(shí) Facebook 上線了這個(gè)功能時(shí),引起了廣泛的爭(zhēng)議,焦點(diǎn)就是“隱私”問題,用戶認(rèn)為我發(fā)的動(dòng)態(tài)怎么能讓別人看見呢[1]?用戶一直不停質(zhì)疑和抗議,又忍不住繼續(xù)使用,F(xiàn)acebook 就這樣在爭(zhēng)議聲中增加了最初的隱私控制,比如隱藏自己的動(dòng)態(tài),而 NewsFeed 就這樣堅(jiān)持了下來??磥?,小扎真是一個(gè)撩妹高手,看穿了用戶們“嘴上說不要,身體卻誠(chéng)實(shí)”的內(nèi)在。
隨著用戶們漸漸地愛上了瀏覽好友的分(xuan)享(yao)了,2009年,F(xiàn)acebook 加上了贊(like)功能(FriendFeed 在2007年發(fā)明了贊按鈕,F(xiàn)riendFeed 后來于2009年被 Facebook 收購,并將贊這個(gè)功能整合進(jìn)來),開始按照熱門程度對(duì) Feed 重排序,不出意外,這又引起了用戶們的反抗,因?yàn)榇蠹乙呀?jīng)習(xí)慣按照時(shí)間順序閱讀。
伴隨這么多爭(zhēng)議,為什么 Facebook 一直堅(jiān)持做興趣feed?從數(shù)據(jù)上看,平均每個(gè)用戶每天待看的新鮮事有1500條之多,但平均每個(gè)用戶每天只能閱讀300條;從商業(yè)角度,將 Feed 排序交給上帝的做法,非常不利于商業(yè)化且有損用戶體驗(yàn),公共主頁可以使用很多伎倆吸引用戶關(guān)注,然后肆無忌憚發(fā)廣告。
10年來,NewsFeed 有數(shù)不清的改進(jìn),甚至每天線上會(huì)同時(shí)部署很多算法版本進(jìn)行AB測(cè)試。但 EdgeRank 是這條優(yōu)化迭代之路上的一個(gè)標(biāo)志性建筑。我們可以將 NewsFeed 排序策略按照 EdgeRank 分為 PreEdgeRank 時(shí)代、InEdgeRank 時(shí)代、PostEdgeRank 時(shí)代。
EdgeRank 算法
EdgeRank,顧名思義,就是對(duì)邊(Edge)進(jìn)行排序(Rank)。
每一個(gè)朋友的每一個(gè)操作(Action)都可能以新鮮事(News)的方式呈現(xiàn)在用戶面前,比如朋友發(fā)布了一條新鮮事,朋友贊了朋友的朋友一條新鮮事,朋友評(píng)論了朋友的朋友一條新鮮事,朋友給自己的照片加了一個(gè)標(biāo)簽,等等。稍微用腳后跟想一想就知道,按照這樣羅列的話,每個(gè)用戶得看多少新鮮事?于是 FB 就想在一條動(dòng)態(tài)呈現(xiàn)給一個(gè)用戶之前,先預(yù)估一下這個(gè)用戶對(duì)這條新鮮事感興趣程度。在 FB 的定義下,一個(gè) Action 就是一個(gè) Edge,所以這套量化興趣的算法就叫做 EdgeRank。
別看今天 Facebook 各種高大上,又是深度學(xué)習(xí)又是人工智能,要知道,在 EdgeRank 提出之前,F(xiàn)B 也是有過刀耕火種時(shí)代的,F(xiàn)B 的首席產(chǎn)品官 Chris Cox 談及早期 NewsFeed 是這樣說的:
“In the beginning, News Feed ranking was turning knobs. Turn up photos a little bit, turn down platform stories a little bit.”(最初,NewsFeed 排序就是在主觀拍腦袋,給照片加點(diǎn)權(quán)重,給平臺(tái)動(dòng)態(tài)消息降點(diǎn)權(quán)重)
“a photo might be worth 5 points, while joining a group was worth 1 point” (把照片權(quán)重定為5,把加群權(quán)重定為1)
國(guó)內(nèi)算法工程師們聽到這些,想必都要會(huì)心地笑了:原來 FB 也是從這個(gè)時(shí)代走過來的。但 Facebook 不同的是,這只是暫時(shí)的情形,他們已經(jīng)走到更高級(jí)的階段了。
Serkan Piantino 在2010年左右領(lǐng)導(dǎo)并開發(fā)了第一版 EdgeRank 算法。下面說說大名鼎鼎的 EdgeRank 是怎么回事。
EdgeRank 主要有三個(gè)因素在起作用:
親密度(Affinity Score)
邊的權(quán)重(Edge Weight)
新鮮程度(Time Decay)
想象一條內(nèi)容誕生后,途經(jīng)什么路徑流動(dòng)到你的面前?
首先經(jīng)你的一個(gè)朋友(或者你的關(guān)注源)的之手產(chǎn)生了一條新鮮事(他發(fā)布、贊、加標(biāo)簽這些產(chǎn)生了新鮮事);
然后經(jīng)過你這個(gè)朋友(或者你的關(guān)注源)的介紹,到了你家門口,你一開門(登錄)就可能看見它;
內(nèi)容不多時(shí),開門一個(gè)一個(gè)寒暄可能還行,它們也等得起,也無所謂先來后到,內(nèi)容太多時(shí),就得考慮個(gè)先來后到了。
這三個(gè)步驟,就大致刻畫了 EdgeRank 的思想了,其實(shí)還是很簡(jiǎn)單直接的。
親密度對(duì)應(yīng)了第二個(gè)步驟背后的思想,那么多人介紹過來,我們當(dāng)然要優(yōu)先照顧更“喜歡”的人了,親密度的量化要考慮平常里你和這個(gè)朋友“走動(dòng)”是否頻繁,連接是否緊密。主要考慮下面幾點(diǎn):
你們連接的強(qiáng)度,點(diǎn)贊之交,還是評(píng)論之交,或是私信之交,連接方式不同,強(qiáng)度就不同;
你們連接的頻繁程度,一日百贊,還是百日一贊,差別也很大;
你們有多久沒有建立連接了,一年沒有了,關(guān)系自然就更淡了;
親密度是單向的,也就是說你對(duì)朋友的親密度,和朋友對(duì)你的親密度可能不一樣哦。
你看,看似神秘的 EdgeRank 算法,其實(shí)跟大家不太待見的雞湯居然意思是一樣的,是不是覺得它竟然如此平易近人?
邊的權(quán)重也很直接,其實(shí)它反映了產(chǎn)生一條新鮮事的成本,成本越高的,權(quán)重越大。點(diǎn)贊、評(píng)論、發(fā)一條文字、發(fā)一張照片、發(fā)一個(gè)鏈接,背后用戶付出的成本不一樣,反應(yīng)在邊的權(quán)重上也就不一樣。顯然,你點(diǎn)個(gè)贊的成本,和你發(fā)布一條新鮮事的成本差別很多。
最后,新鮮程度,也是一個(gè)符合直覺的自然假設(shè):NewsFeed 總是青睞 New 一些的 Feed,新的新鮮事總體上更可能得到用戶的臨幸。FB 用了一個(gè)類似指數(shù)衰減的函數(shù)來量化動(dòng)態(tài)的新舊程度。
三個(gè)分?jǐn)?shù),最終用相乘的方式共同作用于每一條新鮮事的分?jǐn)?shù),用于排序和篩選。
這個(gè)排序方法的確是很簡(jiǎn)單,基本上只考慮了社交方面的因素,而沒有考慮太多內(nèi)容本身對(duì)用戶吸引力。
從公開的資料看 EdgeRank,并不是什么高深的算法,它只是量化了三個(gè)主要因素,然后主觀地相乘,而沒有任何目標(biāo)優(yōu)化思想在背后,根據(jù) Facebook 披露的消息看,早期的 EdgeRank 的確沒有引入機(jī)器學(xué)習(xí),所以根本稱不上是智能的算法。
為什么 EdgeRank 這么有名?因?yàn)樗窃贔8開發(fā)者大會(huì)上公開介紹過的,經(jīng)過一知半解的媒體渲染,變成了一個(gè)神秘高深的存在。
后 EdgeRank 時(shí)代
2011年之后,F(xiàn)acebook 內(nèi)部就不再提 EdgeRank 算法了,因?yàn)橛脩魯?shù)和廣告主的飛增,導(dǎo)致 NewsFeed 的排序算法必須要更上一層樓。如今月活躍超過10億用戶,約2000萬的公共主頁,移動(dòng)設(shè)備貢獻(xiàn)了大多數(shù)流量,復(fù)雜的上下文因素,必須引入機(jī)器學(xué)習(xí)才能 Hold 住整個(gè)場(chǎng)面。
在原來 EdgeRank 的基礎(chǔ)上,更加細(xì)致地定義了不同層級(jí)的親密度。用深度神經(jīng)網(wǎng)絡(luò)理解圖片內(nèi)容和文字內(nèi)容,從而可以知道相片中的物體是不是用戶感興趣的,可以知道新鮮事的討論話題。隨著產(chǎn)品迭代,也加入了更多產(chǎn)品特征,諸如閱讀時(shí)間長(zhǎng)短、視頻內(nèi)容、鏈接內(nèi)容等,取關(guān)、隱藏一個(gè)源。前前后后一共考慮了10萬+的變量(模型的特征空間應(yīng)該會(huì)更高),如果還按照原來的方式去調(diào)節(jié)權(quán)重,顯然既不科學(xué)又很低效。
從 Facebook 的機(jī)器學(xué)習(xí)應(yīng)用博客頁面可以看到,2010年之后就開始逐漸有機(jī)器學(xué)習(xí)方面的文章出現(xiàn)了。
相關(guān)資料顯示,2011年之后的 NewsFeed 排序算法,全面轉(zhuǎn)向了機(jī)器學(xué)習(xí),用優(yōu)化理論來決定每個(gè)因素的權(quán)重,將人從繁雜的策略量化中解放出來。
在被機(jī)器學(xué)習(xí)接管后的 NewsFeed,很多地方都更加細(xì)致。
用機(jī)器學(xué)習(xí)預(yù)估新鮮事的質(zhì)量。通過構(gòu)造了一份問卷調(diào)查,訪問了若干用戶來收集數(shù)據(jù),用收集的數(shù)據(jù)構(gòu)建了一個(gè)機(jī)器學(xué)習(xí)模型,用于 NewsFeed 排序時(shí)預(yù)測(cè)一條動(dòng)態(tài)的質(zhì)量,將預(yù)測(cè)的質(zhì)量分?jǐn)?shù)作為最終排序的一個(gè)特征。用樹模型構(gòu)造離散特征,結(jié)合最常見的LR模型預(yù)估廣告點(diǎn)擊率。
除了全面轉(zhuǎn)向機(jī)器學(xué)習(xí)之外,NewsFeed 團(tuán)隊(duì)也在重新思考人和算法的關(guān)系。他們要關(guān)心的是到底“如何把用戶真正最關(guān)心的找出來”,而不僅僅是“提高點(diǎn)擊率”。Facebook 一直是數(shù)據(jù)驅(qū)動(dòng)的,也是他們能夠在爭(zhēng)議中把 NewsFeed 堅(jiān)持下來的信念來源,而是不是唯數(shù)據(jù)馬首是瞻,團(tuán)隊(duì)內(nèi)部有很多思考,也有很多變化。
僅舉幾例:
團(tuán)隊(duì)發(fā)現(xiàn)有85%的隱藏新鮮事操作來自5%的人,經(jīng)過與這些用戶溝通才發(fā)現(xiàn),原來這5%的人把“隱藏”當(dāng)作郵件里的“標(biāo)記已讀”了,對(duì)喜不喜歡的新鮮事只要看過就會(huì)點(diǎn)擊隱藏。
對(duì)于悲傷的事情,用戶可能關(guān)心但不會(huì)點(diǎn)贊的。
對(duì)于有些點(diǎn)贊,用戶可能并不是真的感興趣,只是“點(diǎn)贊狂魔”發(fā)狂而已。
用戶閱讀一篇長(zhǎng)帖子,讀到一半不讀了,也并不能說明他對(duì)這篇帖子不感興趣。
這些 case,都讓他們開始關(guān)注到機(jī)器學(xué)習(xí)和數(shù)據(jù)的局限。
于是,在算法團(tuán)隊(duì)之外,F(xiàn)acebook 搭建了一個(gè)遍布全球的人肉評(píng)測(cè)小組。人肉評(píng)測(cè)小組不是簡(jiǎn)單地對(duì)算法篩選結(jié)果進(jìn)行喜歡/不喜歡的標(biāo)注,而是會(huì)非常深入地闡述為什么喜歡/不喜歡算法篩選結(jié)果,而且會(huì)與工程師詳細(xì)交流評(píng)測(cè)結(jié)果,因?yàn)檫@種人肉評(píng)測(cè)方式可以有效地拆穿數(shù)據(jù)說謊,讓產(chǎn)品遠(yuǎn)離一味追求提高數(shù)據(jù)指標(biāo)的怪圈。
除此之外,產(chǎn)品上還加強(qiáng)了過濾器功能(Filter):你可以選擇你的動(dòng)態(tài)給誰看,你可以選擇不看誰的動(dòng)態(tài)(Hide),你也可以選擇優(yōu)先看到誰的動(dòng)態(tài)(See first),當(dāng)然你可以取消關(guān)注一些人或者公共主頁,將這些控制權(quán)交給用戶,一方面安撫了用戶被算法接管的不安,另一方面也是一項(xiàng)重要的數(shù)據(jù)來源。事實(shí)上,如今的過濾器已經(jīng)復(fù)雜到大多數(shù)用戶都不會(huì)使用這些控制權(quán)。
“如何衡量用戶真的感興趣”這個(gè)問題也許遠(yuǎn)遠(yuǎn)沒有最終答案,為什么?因?yàn)槿说姆抢硇哉紦?jù)了絕大多數(shù)時(shí)候,而“不一致性”又是非理性的最重要表現(xiàn),根據(jù)心情不同,用戶有不同的感興趣的標(biāo)準(zhǔn),而且這些標(biāo)準(zhǔn)也許還是相互矛盾的。
NewsFeed 的配套設(shè)施
NewsFeed 存在的前提是要依賴用戶建立大量的社交聯(lián)系,這樣才會(huì)出現(xiàn)信息過載,因此 NewsFeed 的一個(gè)重要的配套設(shè)施就是“你可能感興趣的人”(People you may like)推薦系統(tǒng)。
這是一個(gè)我們?cè)诋a(chǎn)品形式上比較熟悉的推薦系統(tǒng),它是一套大規(guī)模矩陣分解算法,利用已有的協(xié)同矩陣為你推薦你可能想建立聯(lián)系的新Item,包括用戶、app、公共主頁等。
NewsFeed 還有另一個(gè)配套設(shè)施,也是它為什么每天能吸金幾千萬刀的原因:廣告系統(tǒng)。Facebook 的廣告形態(tài)多樣:
Suggested Page (你可能喜歡的公眾頁)
Page Post (公眾號(hào)帖子推廣)
Suggested App (你可能喜歡的應(yīng)用)
Video Ads (視頻廣告)
現(xiàn)在,每一次 NewsFeed 調(diào)整算法都會(huì)引來廣告主們的抗議,他們都是在 FB 上擁有公共主頁的商業(yè)機(jī)構(gòu)。
在以前,F(xiàn)B 鼓勵(lì)這些商業(yè)機(jī)構(gòu)花錢投廣告增加粉絲,彼時(shí)的 NewsFeed 算法允許隨意發(fā)廣告(以原生的新鮮事形式)。而現(xiàn)在,F(xiàn)B 嚴(yán)格限制商業(yè)廣告和普通用戶的觸達(dá)。商業(yè)機(jī)構(gòu)感覺自己被耍了,花錢買粉之后卻不能發(fā)原生廣告,無獨(dú)有偶,根據(jù)微博 CEO(@來去之間)在微博上的披露,現(xiàn)在微博企業(yè)號(hào)也是被限制博文達(dá)到粉絲 feed 次數(shù)的。
據(jù)國(guó)外某專門做 NewsFeed 推廣的公司追蹤,1000個(gè)公共主頁的50000條內(nèi)容以原生方式觸達(dá)用戶的比例,從2012年16%降低到了2014年的6.51%,降了一倍還多,這當(dāng)然也可能因?yàn)橛脩羝骄P(guān)注的公共主頁增多了[13]。
世界上最遙遠(yuǎn)的距離,就是:手握大把粉絲,卻不能隨心所欲地曝光自己的產(chǎn)品。
當(dāng)然,所有的公共主頁們,不要灰心,并不是沒有辦法,NewsFeed 的廣告系統(tǒng)大門永遠(yuǎn)向你們敞開。
對(duì) NewsFeed 的展望
具體 NewsFeed 會(huì)怎么發(fā)展,無法預(yù)測(cè),但是可以肯定的有三點(diǎn):
NewsFeed 的算法會(huì)一直進(jìn)化下去。
NewsFeed 團(tuán)隊(duì)把人和算法的關(guān)系處理得更好,從數(shù)據(jù)驅(qū)動(dòng)(Data-Driven)到數(shù)據(jù)啟示(Data-Informed)。
越來越多的 Feed 型產(chǎn)品會(huì)效仿 NewsFeed,加入到興趣feed的潮流中去。
?