設(shè)計(jì)一個(gè)屬于自己的內(nèi)容熱度值算法

前言

在產(chǎn)品蛛株、運(yùn)營(yíng)這次做社區(qū)改版的過(guò)程中,我們大數(shù)據(jù)部門(mén)結(jié)合具體的業(yè)務(wù)細(xì)節(jié)翰苫,通過(guò)研究止邮、討論與試錯(cuò),最終設(shè)計(jì)了一個(gè)基本符合需求的內(nèi)容熱度值算法奏窑,本文就簡(jiǎn)述其設(shè)計(jì)方法导披。

他山之石

有為數(shù)很少的幾家外國(guó)公司開(kāi)源或公開(kāi)說(shuō)明了自家的內(nèi)容熱度值算法,包括Hacker News埃唯、Reddit撩匕、Stack Overflow/Stack Exchange、StumbleUpon等墨叛。我們?cè)谠O(shè)計(jì)自己的算法之前止毕,參考了他們的一些理念。為了節(jié)省篇幅漠趁,就不再重復(fù)講一遍了扁凛,直接將reference傳送門(mén)放在下面:

可以攻玉

列舉內(nèi)容數(shù)據(jù)維度

在我們的社區(qū)體系中,與一篇內(nèi)容相關(guān)的指標(biāo)如下:

  • 時(shí)間維度:發(fā)布時(shí)間post_time闯传、最后回復(fù)時(shí)間last_reply_time谨朝、最后操作時(shí)間last_op_time
  • 互動(dòng)量維度:閱讀量view_num、回復(fù)量reply_num甥绿、收藏量favor_num字币、點(diǎn)贊量like_num、回復(fù)點(diǎn)贊量reply_like_num共缕、分享量share_num
  • 內(nèi)容維度:內(nèi)容長(zhǎng)度content_length洗出、平均回復(fù)長(zhǎng)度reply_avg_length、圖片數(shù)picture_num
  • 用戶維度:用戶對(duì)內(nèi)容的興趣度图谷、活躍度翩活、發(fā)/回帖用戶的聲望,etc.


明確各維度的業(yè)務(wù)含義

時(shí)間維度

時(shí)間維度用來(lái)控制熱度隨時(shí)間的衰減蜓萄,距離當(dāng)下比較久遠(yuǎn)的內(nèi)容應(yīng)該具有更低的熱度值隅茎,就像人會(huì)逐漸忘記一些之前做過(guò)的事情一樣。我們認(rèn)為嫉沽,三種時(shí)間維度指標(biāo)各自有適合的場(chǎng)景:

  • 發(fā)布時(shí)間:(1)內(nèi)容時(shí)效性強(qiáng),容易過(guò)期俏竞,如新聞和資訊網(wǎng)站绸硕;(2)UGC遠(yuǎn)多于PGC堂竟,且用戶喜歡討論流行話題,基本不需要內(nèi)容沉淀玻佩,如綜合性論壇和BBS出嘹。
  • 最后回復(fù)時(shí)間:(1)內(nèi)容具有沉淀意義,發(fā)布很久之后也仍然可讀咬崔,如專業(yè)領(lǐng)域論壇或博客税稼;(2)用戶回復(fù)的信息量普遍大于內(nèi)容主體,如交互式問(wèn)答垮斯。
  • 最后操作時(shí)間:(1)UGC經(jīng)忱善停或周期性由發(fā)布者自己修改,如小說(shuō)連載兜蠕;(2)以PGC為主并且運(yùn)營(yíng)有明顯的指向性(人工推薦扰肌、打星標(biāo)等),如商品推廣熊杨。
互動(dòng)量維度

互動(dòng)量是表征內(nèi)容熱度的最直接指標(biāo)曙旭,一般采用對(duì)各項(xiàng)數(shù)據(jù)加權(quán)的方式來(lái)計(jì)算。

權(quán)重值的大小必然會(huì)有區(qū)別晶府,閱讀量的權(quán)重幾乎總是最低的桂躏,而回復(fù)、點(diǎn)贊/收藏川陆、分享量的權(quán)重值如何排序剂习,也需要根據(jù)業(yè)務(wù)場(chǎng)景來(lái)具體討論。

以新浪微博為例书劝,它追求的是熱點(diǎn)內(nèi)容(如明星相關(guān)的內(nèi)容)的高正向評(píng)價(jià)與病毒式傳播进倍,所以點(diǎn)贊和轉(zhuǎn)發(fā)的量相對(duì)于回復(fù)量而言往往都很高。而以網(wǎng)易新聞為例购对,其中很多板塊都有不少爭(zhēng)議性內(nèi)容(如體育猾昆、3C方面),目的是引起用戶之間的強(qiáng)烈互動(dòng)甚至撕逼骡苞,所以跟帖量又會(huì)遠(yuǎn)遠(yuǎn)超過(guò)喜歡和分享的數(shù)量垂蜗。

內(nèi)容維度

內(nèi)容維度一般只起輔助作用,因?yàn)閮?nèi)容的質(zhì)量與字?jǐn)?shù)解幽、平均回復(fù)字?jǐn)?shù)贴见、圖片數(shù)等指標(biāo)的關(guān)系不太能通過(guò)計(jì)算來(lái)衡量(比如很長(zhǎng)的文章也有可能完全是篇水文),只有通過(guò)NLP或者人工篩選才能更加精準(zhǔn)地看出來(lái)躲株。

用戶維度

在標(biāo)簽化推薦系統(tǒng)中片部,如果用戶對(duì)帶有標(biāo)簽的內(nèi)容產(chǎn)生了互動(dòng),那么內(nèi)容上的標(biāo)簽就會(huì)轉(zhuǎn)化并積累為用戶的興趣向量霜定。用戶興趣度和內(nèi)容熱度的綜合档悠,可以保證呈現(xiàn)給用戶的內(nèi)容不會(huì)過(guò)于大眾化廊鸥,也不會(huì)造成興趣的收斂。另外辖所,如果用戶分級(jí)的體系比較完善惰说,那么KOL、大V創(chuàng)作或參與互動(dòng)的內(nèi)容往往會(huì)獲得比普通用戶更高的熱度值缘回。

算法設(shè)計(jì)思路

時(shí)間維度

由于我們的定位是針對(duì)垂直領(lǐng)域的專業(yè)性攻略和交流社區(qū)吆视,所以選取了最后回復(fù)時(shí)間作為時(shí)間維度。它的優(yōu)點(diǎn)是優(yōu)質(zhì)內(nèi)容可以隨時(shí)獲得較高的熱度酥宴,激起用戶的討論欲望啦吧;缺點(diǎn)是無(wú)法應(yīng)對(duì)挖墳、灌水等惡意行為幅虑,但可以通過(guò)反垃圾機(jī)制過(guò)濾掉這些異常數(shù)據(jù)丰滑。以后可以考慮發(fā)布時(shí)間與最后回復(fù)時(shí)間的結(jié)合方案。

我們采用牛頓冷卻定律作為時(shí)間衰減函數(shù)倒庵,即:

H(t) = Ha · exp[-γ · (t-tlast) / 86400]

其中Ha是內(nèi)容的原始熱度值褒墨,即通過(guò)互動(dòng)量算出的熱度值。采用以e為底的指數(shù)函數(shù)擎宝,tlast即該內(nèi)容的最后回復(fù)時(shí)間郁妈。時(shí)間的單位都是秒,所以要除一天中的秒數(shù)86400绍申,以天為單位做衰減噩咪。γ是所謂“重力因子”(gravity factor),即該值越大极阅,帖子的熱度會(huì)更快地下落胃碾。

采用Wolfram Alpha畫(huà)圖可以展示出不同Ha與γ值的影響,我們也會(huì)根據(jù)具體業(yè)務(wù)的特點(diǎn)適當(dāng)調(diào)整γ值筋搏。


互動(dòng)量維度

我們暫時(shí)還無(wú)法從后端日志或其他數(shù)據(jù)源采集到內(nèi)容分享量仆百,但是它是一個(gè)相對(duì)低頻的行為,可以日后再實(shí)現(xiàn)奔脐。至于內(nèi)容中回復(fù)的點(diǎn)贊量俄周,我們認(rèn)為熱評(píng)對(duì)內(nèi)容整體熱度的貢獻(xiàn)有限,并且也不太好采集髓迎,暫時(shí)也擱置一邊峦朗。所以互動(dòng)量維度剩下了四個(gè)指標(biāo):閱讀量、回復(fù)量排龄、收藏量波势、點(diǎn)贊量,內(nèi)容的原始熱度值Ha計(jì)算方法如下:

Ha = ln(1+Nview) + 1.0·Nreply + 1.75·Nlike + 3.2·Nfavor

回復(fù)、收藏艰亮、點(diǎn)贊量都是采用線性加權(quán)的方式來(lái)做闭翩,它們的權(quán)重是根據(jù)現(xiàn)有內(nèi)容規(guī)律大致推斷的挣郭。還有一種較為科學(xué)的方式是讓運(yùn)營(yíng)人員根據(jù)經(jīng)驗(yàn)手動(dòng)為一批較熱門(mén)的內(nèi)容打分迄埃,然后利用多元線性回歸(multivariate linear regression)確定各個(gè)系數(shù)的值,這件事可以之后做兑障。

閱讀量的處理方式比較特殊侄非。由于閱讀是門(mén)檻最低的互動(dòng)行為,因此我們傾向于認(rèn)為那些第一批來(lái)閱讀的用戶對(duì)熱度貢獻(xiàn)值較大流译,而之后跟風(fēng)來(lái)看的用戶會(huì)越來(lái)越?jīng)]有價(jià)值逞怨。自然對(duì)數(shù)能夠很好地滿足,如下圖所示福澡。


內(nèi)容維度

內(nèi)容字?jǐn)?shù)和圖片數(shù)可以間接地作為內(nèi)容質(zhì)量潛力的判斷指標(biāo)叠赦,但有很大的隨機(jī)性。我們目前只采用了字?jǐn)?shù)的常用對(duì)數(shù)值革砸,即lg(Nlength)作為它對(duì)熱度的貢獻(xiàn)除秀,按數(shù)量級(jí)增長(zhǎng)的幅度很小,因此就算不準(zhǔn)算利,也不會(huì)對(duì)最終結(jié)果造成什么影響册踩。
圖片數(shù)對(duì)某一部分內(nèi)容而言可能非常具有代表性,可以與運(yùn)營(yíng)人員討論確定一些標(biāo)準(zhǔn)效拭。

用戶維度

經(jīng)過(guò)上面的介紹暂吉,我們其實(shí)已經(jīng)可以得出通用的熱度值計(jì)算方法:

H = [lg(Nlength) + ln(1+Nview) + 1.0·Nreply + 1.75·Nlike + 3.2·Nfavor] · exp[-γ · (t-tlast) / 86400]

而用戶維度的存在,可以讓我們獲得更加差異化的推薦效果缎患。
目前我們的標(biāo)簽化推薦系統(tǒng)已經(jīng)運(yùn)行了相當(dāng)長(zhǎng)的時(shí)間慕的,有不少的用戶興趣積累。我們根據(jù)日志采集每位用戶的近30天行為挤渔,計(jì)算其對(duì)每個(gè)標(biāo)簽的興趣度肮街,形成興趣向量,并將它們的值歸一化到[0.1,1.0]區(qū)間內(nèi)蚂蕴,以削除最低與最高興趣之間的巨大差距低散。然后,計(jì)算用戶興趣向量與內(nèi)容標(biāo)簽向量的相似度(余弦相似度骡楼、Pearson相關(guān)性等)熔号,并將其作為總熱度值的系數(shù)即可。

在實(shí)際使用時(shí)鸟整,我們還可以用隨機(jī)數(shù)適當(dāng)打散排序引镊,使內(nèi)容列表展示在用戶面前時(shí)看起來(lái)更加豐富。即:

rand(0.75,1.25) · Cinterest · H

至于用戶聲望的影響,是一個(gè)更大的話題弟头,還有待我們?nèi)ヌ剿鞣宰ァP枰⒁獾氖牵^(guò)分強(qiáng)調(diào)KOL和大佬的影響力本質(zhì)上是反社交的赴恨,會(huì)造成“精英主義”(elitism)的泛濫疹娶,所以一旦要上這種邏輯的話,需要嚴(yán)格控制伦连。

總結(jié)

從技術(shù)人員的角度講雨饺,一句話:技術(shù)本身是死的,但業(yè)務(wù)與人都是活的惑淳。如果技術(shù)人員對(duì)業(yè)務(wù)邏輯有深入了解的話额港,就會(huì)自然地去尋找更準(zhǔn)確、高效的解決方法歧焦,雙方合作起來(lái)也會(huì)更愉快移斩。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市绢馍,隨后出現(xiàn)的幾起案子向瓷,更是在濱河造成了極大的恐慌,老刑警劉巖痕貌,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件风罩,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡舵稠,警方通過(guò)查閱死者的電腦和手機(jī)超升,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)哺徊,“玉大人室琢,你說(shuō)我怎么就攤上這事÷渥罚” “怎么了盈滴?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)轿钠。 經(jīng)常有香客問(wèn)我巢钓,道長(zhǎng),這世上最難降的妖魔是什么疗垛? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任症汹,我火速辦了婚禮,結(jié)果婚禮上贷腕,老公的妹妹穿的比我還像新娘背镇。我一直安慰自己咬展,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布瞒斩。 她就那樣靜靜地躺著破婆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪胸囱。 梳的紋絲不亂的頭發(fā)上祷舀,一...
    開(kāi)封第一講書(shū)人閱讀 49,829評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音旺矾,去河邊找鬼蔑鹦。 笑死,一個(gè)胖子當(dāng)著我的面吹牛箕宙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播铺纽,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼柬帕,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了狡门?” 一聲冷哼從身側(cè)響起陷寝,我...
    開(kāi)封第一講書(shū)人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎其馏,沒(méi)想到半個(gè)月后凤跑,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡叛复,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年仔引,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片褐奥。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡咖耘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出撬码,到底是詐尸還是另有隱情儿倒,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布呜笑,位于F島的核電站夫否,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏叫胁。R本人自食惡果不足惜凰慈,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望曹抬。 院中可真熱鬧溉瓶,春花似錦急鳄、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至触创,卻和暖如春坎藐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背哼绑。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工岩馍, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人抖韩。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓蛀恩,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親茂浮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子双谆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容