信息流作為一種呈現(xiàn)內(nèi)容的形式,天然地存在一些問題,為了更好地展示信息,滿足用戶需求,須要對(duì)信息流進(jìn)行一些優(yōu)化。筆者在本文中由牛頓冷卻定理得到啟發(fā),對(duì)信息流的呈現(xiàn)提出了優(yōu)化方式。
之前做社區(qū)類產(chǎn)品時(shí),為了讓用戶才能及時(shí)聽到一些比較熱門的貼子,以及讓一些新的內(nèi)容就能及時(shí)呈現(xiàn)給用戶,所以嘗試了好多辦法。
例如,簡單粗魯?shù)馗鶕?jù)時(shí)間先后次序詮釋貼子,最新發(fā)布的就在最前面的位置,實(shí)現(xiàn)上去最簡單,但對(duì)用戶而言一些熱門的貼子就有可能沉在下邊去了。
又考慮結(jié)合用戶評(píng)價(jià)、瀏覽等其他維度的數(shù)據(jù)綜合來進(jìn)行評(píng)定,分別按一定權(quán)重計(jì)分,總分最高的排最前面,用這些方法的話從某種程度上確實(shí)可以實(shí)現(xiàn)熱門貼子的爆光;但會(huì)引起的問題就是越是熱門的貼子越是會(huì)被置頂,而新的貼子反倒缺乏了爆光的機(jī)會(huì)。
于是,只好想一些其他的辦法,甚至考慮去依靠算法進(jìn)行實(shí)現(xiàn),但在嘗試去找尋成熟算法的過程中就發(fā)覺,好多算法相對(duì)來說比較復(fù)雜,但是最主要的是好多算法都須要在大量的數(shù)據(jù)情況下才能得到相對(duì)確切的結(jié)果。
所以,最后思索解決這個(gè)問題的方法,便又回到貼子瀏覽這個(gè)事情的本質(zhì)上來。站在用戶的角度上,一方面其實(shí)是希望對(duì)于一些比較熱門的貼子才能及時(shí)看見,但另外一方面還是希望能不斷聽到新的東西。
一、相關(guān)原理
前面的這些場景,概括上去就是新的內(nèi)容總是會(huì)取代老的內(nèi)容,而它又剛好類似于化學(xué)學(xué)當(dāng)中的一個(gè)定理,它稱作“牛頓冷卻定理”。
本質(zhì)上它描述了低于周圍濕度的物感受向外散熱,并逐步降溫的過程,同時(shí)單位時(shí)間內(nèi)散熱與周圍溫差會(huì)成反比關(guān)系。
而這個(gè)就跟我們上面提及的貼子的爆光情況是基本一致的牛頓冷卻定律代碼,假如把貼子爆光或則排行情況想像成體溫,隨著時(shí)間的推移,最終貼子的排行也是會(huì)漸漸降出來。
二、影響誘因
按照前面的描述,我們會(huì)發(fā)覺,貼子的排行遭到了幾方面的誘因影響:
1.初始熱度
既然是一個(gè)隨著時(shí)間推移熱度逐步增加的過程,假如貼子剛被發(fā)布的初始情況下,沒有一個(gè)默認(rèn)的熱度值,則會(huì)造成貼子沒有辦法增加熱度;出現(xiàn)的結(jié)果就是大量貼子的熱度是相同的,那就難以分辨排行情況。
所以,對(duì)于貼子剛發(fā)布時(shí),須要給出相應(yīng)的熱度,假如完全是模擬體溫降溫的情況,這么就可以把初始的熱度設(shè)置為100,最終貼子的熱度就會(huì)漸漸趨近于0,但不會(huì)等于0。
但是,因?yàn)楫?dāng)時(shí)我們有好多不同的內(nèi)容分類展示在同一個(gè)貼子列表當(dāng)中,而我們又有一些對(duì)于不同內(nèi)容的初始情況下的不同展示傾向,于是便依照不同的內(nèi)容分類界定了不同的初始熱度值。
例如有科技、財(cái)經(jīng)、體育、女性等不同類別的內(nèi)容,而我們傾向的次序是科技、女性、體育、財(cái)經(jīng),所以最終界定的初始熱度值就不再都是100,而是界定成了100,90,80,70。其實(shí),具體的數(shù)值,還是須要依照實(shí)際上線后的情況去反復(fù)的調(diào)整。
2.用戶行為
若果只是有前面提及的誘因,這么可能會(huì)造成的問題就是,有好多相仿或則同一時(shí)間段發(fā)布的貼子,熱度值隨著時(shí)間的推移增加的速率幾乎是一致的,這都會(huì)造成貼子的排行也基本上是一致的,因而喪失了我們做這個(gè)東西的目的。
所以為了解決這樣的問題,還可以在不僅初始熱度以外,引入貼子被發(fā)布后用戶對(duì)其形成的一些行為,常見的行為可以包括瀏覽、評(píng)價(jià)、收藏、分享、點(diǎn)贊等。
具體實(shí)現(xiàn)時(shí),可以根據(jù)不同的維度界定權(quán)重,之后根據(jù)實(shí)際的數(shù)目減去對(duì)應(yīng)的權(quán)重后(例如瀏覽量、評(píng)價(jià)量、收藏量、點(diǎn)贊量、分享量分別對(duì)應(yīng)的權(quán)重是10%、20%、20%、20%、30%),求總的得分,總分暫且稱之為用戶行為熱度,估算方法為:
用戶行為熱度=瀏覽量*10%+評(píng)價(jià)量*20%+收藏量*20%+點(diǎn)贊量*20%+分享量*30%
3.時(shí)間
最主要的毫無疑惑是時(shí)間。
無論對(duì)于用戶還是平臺(tái),其實(shí)是不希望仍然是同樣的內(nèi)容強(qiáng)占了排名榜或則貼子列表的最上面位置的,而是希望不斷被更新的內(nèi)容所取代,也可以稱之為貼子的熱度須要隨時(shí)時(shí)間的推移而漸漸衰減,最好能呈現(xiàn)出下邊這樣的一種趨勢(shì):
在時(shí)間方面,不僅前面提及的隨時(shí)間推移的趨勢(shì),站在實(shí)際的場景上牛頓冷卻定律代碼,對(duì)于任一貼子,最好是在某一定時(shí)間段過后,貼子次序才能發(fā)生周期性的變化。
可以理解為刷新貼子熱度的時(shí)間間隔,具體的間隔多少則須要依照平臺(tái)的內(nèi)容量來確定、如果內(nèi)容較多,希望早日呈現(xiàn)新的內(nèi)容給用戶,便可以把時(shí)間間隔設(shè)置的比較短;假如內(nèi)容較少,則可以把間隔時(shí)間設(shè)置的比較長。
三、推導(dǎo)過程
確定了前面的影響誘因,便可以參照牛頓冷卻定理整理出對(duì)應(yīng)的算法公式了,牛頓冷卻定理的公式可以表示為:
ΔT(t)/Δt=–k(T(t)–C)
其中T(t)表示濕度隨時(shí)間變化的函數(shù),t表示當(dāng)前的時(shí)間,C表示一個(gè)常量溫度,ΔT(t)表示當(dāng)前時(shí)間從開始到當(dāng)前時(shí)間的氣溫隨時(shí)間變化的差值,Δt則表示從開始到當(dāng)前時(shí)間的間隔,而-k則是牛頓冷卻定理概念當(dāng)中單位時(shí)間內(nèi)散熱與周圍溫差會(huì)成反比關(guān)系的比值,又稱之為冷卻系數(shù)。
而將前面這個(gè)公式借助導(dǎo)函數(shù)、積分的知識(shí),進(jìn)行相應(yīng)的轉(zhuǎn)換變型后,可以變化如下(具體過程就不推論了,何況沒太大意義):
T=T0x(1/e)^(k(t-t0))
而將里面那些變量和常量替換為產(chǎn)品設(shè)計(jì)當(dāng)中的貼子情況時(shí),則可以理解為,T代表著貼子當(dāng)前的熱度,T0代表著初始熱度和用戶行為熱度的總和,k則代表著冷卻系數(shù),t-t0則代表間隔時(shí)間。
結(jié)合上面提及的關(guān)于初始熱度和用戶行為熱度的估算方法,則相關(guān)公式可以為:
T0=H(Type)+H()
H()=*a%+*b%+*c%+……
H(Type)則為初始熱度值,可以依據(jù)不同類型內(nèi)容進(jìn)行設(shè)置,H()則為用戶行為熱度值,不同的行為有各自的權(quán)重,權(quán)重占比支出為1。
而從函數(shù)曲線上來說,k越大,則曲線越陡,意味著熱度增加越快,k越小,則曲線越緩慢,意味著熱度增加越慢。
四、注意事項(xiàng)
針對(duì)一些異常情況,須要定義相關(guān)規(guī)則。在熱度值剛好一樣的情況下,須要定義相關(guān)的排序規(guī)則,例如根據(jù)某個(gè)單一維度或則綜合維度排序。
上線后,還須要不斷去監(jiān)控?cái)?shù)據(jù)情況,若果發(fā)覺排行變化太快,則須要去對(duì)冷卻系數(shù)進(jìn)行相應(yīng)的調(diào)整。
其實(shí),為了更好的拓展相關(guān)業(yè)務(wù),例如會(huì)在正常的貼子熱度當(dāng)中加入付費(fèi)的排名,或則其他推廣的業(yè)務(wù),可以考慮優(yōu)化公式,或則強(qiáng)行人工推薦,這么對(duì)于貼子內(nèi)容可能還會(huì)考慮做一些不一樣的貼子池的維護(hù)。