Feed流及其常见算法简介
消息來源[1](英語:web feed、news feed、syndicated feed又譯為源料[2]、饋送[3]、信息提供[4]、供稿[5]、摘要、源[6]、新聞訂閱、網(wǎng)源[7])是一種數(shù)據(jù)格式,網(wǎng)站可通過它將最新信息傳播給用戶,用戶能夠訂閱網(wǎng)站的先決條件是網(wǎng)站可提供持續(xù)更新的信息。
以上摘自wiki
什么是Feed?
Feed是一個互聯(lián)網(wǎng)早起概念,本意是RSS中用來接收信息來源更新的接口。普遍對feed的解釋是:
a web feed (or news feed) is a?data format?used for providing users with?frequently updated content. Content distributors?syndicate?a web feed, thereby allowing users to?subscribe?to it
即feed實際上是一種數(shù)據(jù)格式,給用戶持續(xù)提供更新的內(nèi)容。我們刷微博、朋友圈、知乎、各大門戶媒體,我們所看到的內(nèi)容,都是一種feed流,我們獲取的內(nèi)容好不夸張的說,是被這些feed流所控制了。內(nèi)容分發(fā)機(jī)制能夠控制用戶在合適的時間看到“規(guī)定”的內(nèi)容。
早期的feed流是以時間線來控制的,即timeline,新浪微博早期就是以timeline的形式進(jìn)行內(nèi)容展示的。如今feed流進(jìn)行了多種變革,不再是單純的timeline,各大互聯(lián)網(wǎng)公司都有自己的內(nèi)容分發(fā)機(jī)制。
如同搜索一樣,內(nèi)容分發(fā)機(jī)制的設(shè)計也始終關(guān)注兩大核心問題:
1.給用戶分發(fā)(展示)哪些內(nèi)容
2.對分發(fā)的內(nèi)容怎么進(jìn)行排序
不同的內(nèi)容分發(fā)機(jī)制其實對這兩個問題所給出的解決方式是不一樣的。不同的互聯(lián)網(wǎng)公司為了自己的商業(yè)利益或者其他戰(zhàn)略層面的考慮,所設(shè)計的feed流設(shè)計方案也是不同。
(1)永恒的Timeline
Timeline是Feed流設(shè)計中最原始、最基本也是最直覺的展示形式。timeline,所謂的“時間線”,內(nèi)容的分發(fā)完全按照時間進(jìn)行排序和展示的。比如說早期的微博,用戶關(guān)注(訂閱)了一些“大V”,在微博首頁看到的內(nèi)容按照所關(guān)注的人所發(fā)微博的時間順序進(jìn)行展示的。再比如現(xiàn)在的微信朋友圈,也是按照朋友發(fā)布內(nèi)容的時間順序進(jìn)行展示的。
其實微信朋友圈、早期的微博很好的回答了feed流設(shè)計兩大核心問題:
1.給用戶分發(fā)(展示)哪些內(nèi)容:微博是關(guān)注的用戶、微信是相互專注的好友
2.對分發(fā)的內(nèi)容怎么進(jìn)行排序:按照時間的先后順序,最新的內(nèi)容越靠前
Timeline有簡單粗暴的優(yōu)點:利于用戶對呈現(xiàn)的內(nèi)容進(jìn)行理解,時間的先后順序嘛,另外由于是按照時間順序,每次更新都能最大化的保證用戶能夠看到更新的內(nèi)容。當(dāng)時timeline也有致命的弱點:內(nèi)容呈現(xiàn)的效率極為底下,甚至可能會出現(xiàn)大量的垃圾內(nèi)容。需要內(nèi)容提供方十分克制,也需要用戶對這些內(nèi)容足夠關(guān)注??梢韵胂笠幌?#xff0c;一個平臺每天發(fā)布上千條內(nèi)容,如果按照timeline的內(nèi)容分發(fā)機(jī)制,這么多信息一下子給用戶展示,必定給用戶造成了嚴(yán)重的干擾?,F(xiàn)在的新浪微博就放棄了timeline這種feed流設(shè)計,這里不去探討微博為什么放棄timeline,可以肯定的是timeline這種內(nèi)容分發(fā)機(jī)制日益不能滿足用戶的需求。(ps:實際上,很多用戶也開始懷念ttimeline,如今的微博內(nèi)容分發(fā)機(jī)制也引起了用戶大量吐槽)
(2)重力排序法——兼顧熱度和更新時間
其實一個平臺大了之后,每天將會產(chǎn)生大量的內(nèi)容,既有大量的feed流,這些feed流中大部分內(nèi)容其實對用戶是沒有太大的價值的。這種場景其實是很常見的。微信朋友圈之所以現(xiàn)在還保持timeline的內(nèi)容分發(fā)機(jī)制,是因為朋友圈每天產(chǎn)生的feed其實不多,使用timeline對微信用戶會更加友好。但微博、知乎、今日頭條不一樣,每天產(chǎn)生的feed流比微信朋友圈大得多,遇到這種棘手的問題該如何解決也是考驗產(chǎn)品經(jīng)理的能力。
何為重力排序法,對于一個feed流中的內(nèi)容而言,有兩種力量:重力和拉力。重力就是讓內(nèi)容持續(xù)往下路的力,即時間,時間越久,掉的越快;拉力就是讓內(nèi)容往前排的力,比如知乎的點贊、門戶新聞的閱讀數(shù)等。重力和拉力,兩者相斥,共同決定內(nèi)容的排序機(jī)制。
這里有一個重力算法的排序公式,來自于Reddit的核心排序算法:
score(H,T)=logH + (T-t)/A
這個公式里面有一些因子,代表如下含義。H表示內(nèi)容的熱度,比如內(nèi)容的瀏覽量、點贊數(shù),也可以是經(jīng)過加權(quán)(降權(quán))處理過的一些值,H的值越大,排名自然靠前;T表示內(nèi)容的發(fā)布時間;t表示一個時間的起始值,只要比發(fā)布的時間早就成。T-t用來衡量一個內(nèi)容的的新舊程度,T-t的值越大,表示內(nèi)容越新;A表示一個系數(shù),A越大,T-t的影響力就越小,即按照時間進(jìn)行排序的影響就越小,內(nèi)容更新的速度也越慢。一般來說,A的初始值為10個小時,36000秒,后面不斷迭代調(diào)整參數(shù)。
(3)智能排序法——在唾罵中前行
對于智能排序的算法,由于牽涉到復(fù)雜的模型構(gòu)建和機(jī)器學(xué)習(xí),已超出了我的能力范圍,這里只是簡單的闡述一下智能排序的機(jī)制,比較通俗的講解可以參考“純銀”的一篇文章,淺顯易懂。(http://www.jianshu.com/p/4b51126fe930)
什么是智能排序?
首先,系統(tǒng)需要知道什么是一個內(nèi)容被展示的目標(biāo)值。比如微博,一個內(nèi)容被展示的目標(biāo)值是轉(zhuǎn)發(fā)、評論、點贊的次數(shù)。那么通過大量的樣本機(jī)器學(xué)習(xí),系統(tǒng)對于什么是好的內(nèi)容會有一個預(yù)測。這對于一個內(nèi)容的預(yù)測,則是智能排序的基礎(chǔ)。
其次,系統(tǒng)會屏蔽一些違規(guī)的內(nèi)容,比如涉及到政治、敏感事件
再次,為了用戶內(nèi)容質(zhì)量,系統(tǒng)會在用戶的feed中增加一些熱門的內(nèi)容
最后,考慮內(nèi)容和用戶的親密度,系統(tǒng)認(rèn)為內(nèi)容受到歡迎的程度,內(nèi)容事件衰減等因素后,系統(tǒng)進(jìn)行綜合排序。
智能排序聽起來是個很好的主意。但是也是一把雙刃劍,從微博的排序法被罵可以看出,也有很大一部分用戶其實不滿這個智能排序法。但為什么微博要一意孤行呢?也許是商業(yè)利益、也許是戰(zhàn)略,這里不去探究里面的動機(jī),畢竟好多探究是經(jīng)不起推敲的,只是一本正經(jīng)的胡扯。
就像文章開頭所提出的兩個核心問題:1.給用戶分發(fā)(展示)哪些內(nèi)容;2.對分發(fā)的內(nèi)容怎么進(jìn)行排序。我們在設(shè)計內(nèi)容分發(fā)機(jī)制的時候,不管選擇何種機(jī)制,作為產(chǎn)品經(jīng)理,需要根據(jù)用戶實際的場景來進(jìn)行feed流的設(shè)計。
作者:仔仔朱
鏈接:http://www.jianshu.com/p/d2be205adaa2
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
總結(jié)
以上是生活随笔為你收集整理的Feed流及其常见算法简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么及时给服务器系统打补丁,技巧:巧打补
- 下一篇: 我的世界服务器修改地图名字,迷你世界pe