關(guān)于商品熱度值相似的叫法還有:商品靜態(tài)分、商品質(zhì)量分、口碑指數(shù)等,其實都在講商品熱度這個問題;關(guān)于如何構(gòu)建商品熱度排行榜,我們首先應(yīng)該堅信 好的榜單不是拍出來的。
給物品或內(nèi)容進(jìn)行打分排序,在互聯(lián)網(wǎng)應(yīng)用中非常常見,如豆瓣評分、微博熱搜、頭條榜單以及口碑指數(shù)等,至于打分規(guī)則官方自然不會公布其核心算法邏輯,否則營銷人員就會根據(jù)算法有針對性的攻擊內(nèi)容,到時我們看到的熱榜可能會被大量營銷廣告所占據(jù);雖然不能直接獲取熱度公式,但通過hacker news與Stack Overflow公開的處理邏輯,我也能給它山寨一個榜單算法。
一個完美的熱度排名算法應(yīng)該考慮以下問題
- 1, 運營同學(xué)問能否通過人工干預(yù)實現(xiàn)部分商品的排序,如營銷類、合作類以及熱點話題類相關(guān)內(nèi)容。
- 2, 受爬蟲或人氣大v影響,部分商品點擊量會無限暴增,但商品熱度的增長速度不能無限增大。
- 3, 排行榜商品應(yīng)不定期自動更換,不能因為單一維度變化影響商品熱度排序。
- 4, 多個維度共同打分時,如何權(quán)衡每種維度的權(quán)重。
- 5, 不同品類下的商品熱度是否可比,如邀請函和日簽。
- 6, 隨著時間推移,過早上架的商品應(yīng)該降權(quán),以確保新上架商品有足夠的曝光機會
- 7, 商品的熱度值要有參照性,最好能落在一個固定的區(qū)間里,例如當(dāng)說商品熱度值是15時,聽的人是沒有一個宏觀概念的,他們不知道商品熱度值15代表什么,但如果說小明考了99分,你瞬間就會覺得小明很棒。
熱度值算法
了解熱度公式之前,我們先來看一個比較有意思的自然現(xiàn)象,將一杯開水放在低溫環(huán)境中,由于物體和環(huán)境存在明顯的溫度差,這時溫度高的物體會向溫度低的物體傳遞熱量直至環(huán)境和物體間溫度平衡,溫度差約明顯物體散熱會越快,這就是著名的牛頓冷卻定律: ;而我們還需要額外考慮的是,當(dāng)散熱過程中繼續(xù)往杯子里加入熱水時水溫還會繼續(xù)上升。
那么最終的熱度公式將包含如下幾部分:
熱度值 = 初始熱度值 + 用戶交互貢獻(xiàn)值 - 時間衰減值

一件商品上架之后,系統(tǒng)會為其分配一個默認(rèn)的熱度值,基于該默認(rèn)值商品就進(jìn)入了排序列表;隨著用戶瀏覽、收藏、下單、使用等后續(xù)行為的發(fā)生,該商品熱度值會被不斷拉升,但由于上架時間距離當(dāng)前時間越來越遠(yuǎn),商品的熱度值會被衰減。
明確各維度的含義
- 初始熱度
雖然商品熱度值變化應(yīng)該符合一種自然的變化規(guī)律,但有時我們更想站在上帝視角進(jìn)行干預(yù),那么設(shè)置初始值將會是一個不錯的選擇
給予商品初始熱度一方面是為了讓新上架的商品在排序列表中有一定的排序比重,讓新商品獲得一定的展示機會;另一方面運營可以通過動態(tài)調(diào)整初始值來運作一些熱點話題和營銷廣告,如某花突然在微博上爆出“天貓總裁事件”。
初始值應(yīng)該根據(jù)商品所屬品類單獨劃定,這樣才能契合不同品類的定位和特點,比如你在京東搜索"小米",滿屏返回的都是小米手機,而不是小米手機殼;
為了能夠完美處理問題一,還需要針對商品本身進(jìn)行初始值設(shè)定,對運營類營銷熱點商品給予足夠的權(quán)重配置才能確保優(yōu)先曝光。
優(yōu)先級: 商品初始值 > 品類初始值
初始值的設(shè)定是為了保護(hù)新發(fā)商品和熱門商品,所以還需要搭配一個生效范圍,如一個月,超出一個月的應(yīng)歸零(當(dāng)然也可以對初始值進(jìn)行分階段降權(quán),如一周降一半 、再過一周再降一半);這也就是為什么你在京東搜索“小米手機”后,排在前面的都是些新品,反而銷量高的過代“旗艦機”被放到了后面。
- 用戶交互貢獻(xiàn)
為了避免商品分值受單一維度影響,這里可結(jié)合多種用戶行為進(jìn)行操作,如 瀏覽量、訪客數(shù)、分享量、收藏量、訂單量、制作量、商品頁數(shù)、含組件數(shù)量、。 這里參考控制變量法的思想,先選取一些核心指標(biāo)進(jìn)行初始驗證;至于如何選取還是要結(jié)合自身業(yè)務(wù)來定,以新浪微博為例,它追求的是熱點內(nèi)容(如明星相關(guān)的內(nèi)容)的高正向評價與病毒式傳播,所以點贊和轉(zhuǎn)發(fā)的量相對于回復(fù)量而言往往都很高;而以網(wǎng)易新聞為例,其中很多板塊都有不少爭議性內(nèi)容(如體育、3C方面),目的是引起用戶之間的強烈互動甚至撕逼,所以跟帖量又會遠(yuǎn)遠(yuǎn)超過喜歡和分享的數(shù)量。
用戶行為是表征內(nèi)容熱度的最直接指標(biāo),一般采用對各項數(shù)據(jù)加權(quán)的方式來計算。權(quán)重值的大小必然會有區(qū)別,閱讀量的權(quán)重幾乎總是最低的,而訂單和制作行為門檻較高,所以會給予比較高的權(quán)重,至于權(quán)重值的大小前期可以基于經(jīng)驗科學(xué)進(jìn)行驗證,然后通過ABTest不斷去調(diào)整(前期為了便于調(diào)整可以將權(quán)重做成運營可配)。
這里光有權(quán)重還不行,針對問題2可以引入log函數(shù)對數(shù)據(jù)進(jìn)行壓實,根據(jù)log曲線可以看出,隨著X數(shù)值的增大,Y值的增長速率在逐漸放緩,這樣就避免了因單一指標(biāo)的過快增長導(dǎo)致最終分值被線性放大。

時間衰減
時間維度用來控制熱度隨時間的衰減,距離當(dāng)下比較久遠(yuǎn)的內(nèi)容應(yīng)該具有更低的熱度值,就像人會逐漸忘記一些之前做過的事情一樣。
- 發(fā)布時間:為了解決馬太效應(yīng),隨著時間推移過早上架的商品應(yīng)該降權(quán),以確保新上架商品有足夠的曝光機會。
- 最近一次作品制作時間:好的內(nèi)容具有沉淀意義,早期上架的商品當(dāng)遇到某個時間節(jié)點或某個事件觸發(fā),依然有可能被再次激活,如中秋祝福、婚禮邀請函相關(guān)商品。
再結(jié)合牛頓冷卻定律公式可得:
S(t) = S·exp[ -γ·(Tn+Tc-2·Tp) ]
其中S是商品初始分值與用戶交互貢獻(xiàn)分值之和,γ是重力因子(也叫冷卻系數(shù)),該值越大,分值下降的會約快,Tn、Tc、Tp分別代表當(dāng)前時間、最近一次作品的制作時間、商品發(fā)布時間,時間單位是天;通過公式可以看出,S是增函數(shù),時間衰減是減函數(shù),這樣一增一減才能最終實現(xiàn)S(t)的平衡。
其中重力因子是一個可調(diào)節(jié)的值,例如S值為100分,24天后為1分,則可得出重力因子系數(shù)為0.192;如果想要加快冷卻衰減則可以增大該值,否則減??;下圖為不同的重力因子系數(shù)對應(yīng)的衰減曲線:

公式
S(熱度指數(shù)) = [ if[(Tn-Tp) > 1M , score0 , 0] + log10(1+visitor) + ln(1+2·work) + ln(1+5·order) ] * exp[ -γ·(Tn+Tc-2·Tp) ]
這里有兩點需要注意:
- 為了避免出現(xiàn)log值為負(fù)的情況,需要將曲線沿x軸方向向左平移1個單位,即 y=lg(x+1)
- 為了消除問題5與問題7帶來的影響,這里需要對S(熱度指數(shù))進(jìn)行歸一化處理。
歸一化
數(shù)據(jù)歸一化的目的是讓數(shù)據(jù)能夠均勻離散的分布于0-1之間,并且可以達(dá)到消除量綱的目的,讓不同品類的指標(biāo)可以進(jìn)行相互比較;常用的歸一化函數(shù)為最值歸一化:

搞一個Demo
到此理論知識已傾囊相授,那么還需要結(jié)合實際來驗證一下效果,以下是在百萬商品集上進(jìn)行簡單的效果驗證,毫秒級可出結(jié)果:



從上面兩張圖可以明顯看出 3天之后的榜單發(fā)生了明顯的數(shù)據(jù)變化。
思考
-
關(guān)于時間衰減,還有另外一種較為常見的算法 即高斯衰減,該衰減函數(shù)變化曲線為先緩慢,再劇烈然后又緩慢;至于哪種變化關(guān)系更符合實際的商品熱度的變化,需要結(jié)合實際業(yè)務(wù)和效果去評判。
image.png
其中高斯衰減曲線為Y軸的右半側(cè),與指數(shù)衰減不同的是x部分使用的是二階函數(shù)。
上述熱榜算法并未考慮基于商品內(nèi)容性質(zhì)以及品類進(jìn)行細(xì)分,感興趣的同學(xué)可以參照知乎熱榜,將數(shù)據(jù)分為全站、科學(xué)、數(shù)碼、體育等多個版塊的方式去做,不過主要流量還是集中于總榜。
該算法模型不僅僅可以用在榜單,還可以應(yīng)用在用戶畫像系統(tǒng) 衡量標(biāo)簽的質(zhì)量、應(yīng)用在搜索推薦業(yè)務(wù)中 提升商品的排序效果。
寫在最后
從技術(shù)人員的角度講,一句話:技術(shù)本身是死的,但業(yè)務(wù)與人都是活的。如果技術(shù)人員對業(yè)務(wù)邏輯有深入了解的話,就會自然地去尋找更準(zhǔn)確、高效的解決方法,雙方合作起來也會更愉快;同樣,產(chǎn)品經(jīng)理在算法的實施中,絕對不是一句 “做榜單我們要用AI來完成” 就完事的,必須深入算法內(nèi)部,對算法的原理做深入了解,然后結(jié)合自己的經(jīng)驗進(jìn)行設(shè)計和優(yōu)化,不然技術(shù)最終交付的東西,產(chǎn)品是沒辦法去驗證它的質(zhì)量的。
對該話題感興趣的同學(xué) 還可以參考我的另外一篇文章 商品靜態(tài)分
-- 作品系原創(chuàng)、轉(zhuǎn)載請注明出處
