數(shù)據(jù)驅(qū)動:一次利用算法提升評論活躍的案例
優(yōu)化評論區(qū)有很多辦法,本文將從評論排序算法的角度,介紹一次評論排序優(yōu)化的過程,并展望下后續(xù)的迭代思路。
哪個產(chǎn)品甘愿只做用戶用完即走的工具?作為內(nèi)容產(chǎn)品的產(chǎn)品經(jīng)理,內(nèi)容同質(zhì)化帶來的用戶流失始終是困擾我們的問題,如何讓用戶留存并活躍,產(chǎn)生粘性呢?
可以通過做社交來實現(xiàn),通過內(nèi)容的評論區(qū)向社區(qū)進行的轉(zhuǎn)化,例如網(wǎng)易云音樂。
優(yōu)化評論區(qū)有很多辦法,本文將從評論排序算法的角度,介紹一次評論排序優(yōu)化的過程,并展望下后續(xù)的迭代思路。
本文行文思路如下:
為什么要做評論排序
探討這個問題之前,先要講評論區(qū)對于一篇內(nèi)容來說有什么作用。評論尤其是優(yōu)質(zhì)評論能夠讓用戶產(chǎn)生共鳴,加深對內(nèi)容的理解,或者激發(fā)用戶討論等等。灌水的評論也是組成評論的一部分,但其價值顯然沒有優(yōu)質(zhì)評論高,那怎樣讓優(yōu)質(zhì)的評論獲得更多的曝光,解決優(yōu)質(zhì)的評論內(nèi)容無法被用戶看到,互動量少的問題,這就是做評論排序的一個重要意義。
主流評論排序方式
現(xiàn)在主流的評論排序有3種,按點贊數(shù)量排序,按時間排序以及基于算法排序。
按點贊排序最能反映用戶對評論內(nèi)容的態(tài)度,也最直觀易懂,而其問題是時間越長,評論數(shù)量越多,新的評論得到的曝光越差。按時間排序則能保證評論內(nèi)容的流動性,即時性強,但這種排序方式又不能讓優(yōu)質(zhì)的評論獲得最大限度的曝光。
基于各類算法排序則一定程度上將這兩種的優(yōu)點結(jié)合起來,既保證了優(yōu)質(zhì)評論能獲得更多的曝光,又能讓評論流動更新,在這次迭代時我們也選擇了算法排序的方式。
什么是Hacker News算法
Hacker News算法源于Y Combinator旗下的新聞頻道Hacker News,用戶可以在此討論某個新聞或主題,同時用戶可以對其進行投票。Hacker News算法則基于用戶投票情況與時間等因素,對內(nèi)容展示進行排序。
這個算法的公式如下:
其中P代表的得票數(shù),T代表內(nèi)容發(fā)表至今的時間(單位為小時)。而(P-1),(T+2),1.8這些數(shù)值,設(shè)計這個算法的人對此的解釋是:(P-1)是為了去掉提交者的投票,(T+2)是為了防止最新帖子分母過下導(dǎo)致最終得分無限大(有說法是選擇2是因為從原始文章出現(xiàn)在其他網(wǎng)站,到轉(zhuǎn)帖到Hacker News平均需要兩小時),而1.8則是“重力引子”或者叫做“萬有引力”參數(shù),默認為1.8。
了解這個公式之后我們畫個圖:
我們發(fā)現(xiàn)在其他條件相同時,時間越長,分值越低;投票越多,分值越高;重力引子越大,隨時間衰減越快。深度了解之后我們發(fā)現(xiàn)其分子其實代表的是內(nèi)容質(zhì)量,分母控制跟隨時間衰減。
(Q指內(nèi)容質(zhì)量分,G指重力引子)
了解這些之后我們可以開始動手干了。
擴展:相似類型的算法還有Reddit,Delicious,IMDB等。感興趣的同學(xué)可以自行查閱。
實施步驟
第一步:基于Hacker News算法提出幾種適合自己業(yè)務(wù)的假設(shè)
前面我們提到了,Hacker News算法計算公式的分子本質(zhì)上表現(xiàn)的是內(nèi)容質(zhì)量。那從哪些維度可以評估評論的內(nèi)容質(zhì)量或者影響評論的用戶互動行為呢?可用的指標有點贊數(shù),回復(fù)數(shù),評論(回復(fù))字數(shù),發(fā)表用戶是否KOL,回復(fù)增長速度等。在本次實踐中我們提出猜想為點贊數(shù),回復(fù)數(shù),字數(shù)可以影響內(nèi)容質(zhì)量。
基于我們的猜想我們在Hacker News算法的基礎(chǔ)上進行調(diào)整,衍生出了5種計算方式,如下:
- 原始:Score=(P-1)/(T+2)^1.8
- 衍生1:Score= (P)/(T+2)^1.8:點贊數(shù)不進行減1
- 衍生2:Score= (P+R)/2*[(T+2)^1.8]:加入回復(fù)數(shù)的維度,回復(fù)數(shù)與點贊數(shù)各占1/2權(quán)重
- 衍生3:Score= (P+3R)/4*[(T+2)^1.8]:加入回復(fù)數(shù)的維度,回復(fù)數(shù)占3/4權(quán)重,點贊數(shù)占1/4權(quán)重
- 衍生4:Score= [P+R+N/AVERAGE(N)]/3*[(T+2)^1.8] :加入回復(fù)數(shù)與字數(shù)的維度,字數(shù)以文章平均字數(shù)為1單位,回復(fù)數(shù),點贊數(shù)與字數(shù)各占1/3權(quán)重
- 衍生5:Score= [2P+5R+N/AVERAGE(N)]/8*[(T+2)^1.8] :加入回復(fù)數(shù)與字數(shù)的維度,字數(shù)以文章平均字數(shù)為1單位,回復(fù)數(shù)占5/8權(quán)重,點贊數(shù)占2/8權(quán)重,字數(shù)占1/8權(quán)重
(Score=排序分;P=點贊數(shù);R=回復(fù)數(shù);N=字數(shù);AVERAGE(N)=當(dāng)前文章評論字數(shù)平均值;T=評論發(fā)布距今天小時數(shù))
第二步:文章樣本離線研究與算法實驗
確定了算法后,我們抽取了幾篇線上的評論量相對較多的文章的評論內(nèi)容,按上面的幾種算法進行排序,觀察對比每種算法排序的評論列表的特點,以及這幾種算法能否讓優(yōu)質(zhì)評論突出,讓灌水評論沉底。
我們以《武漢市中心醫(yī)院:李醫(yī)生去世》這篇文章為例,這篇文章約有5000條評論,將其所有評論按以上6種算法排序后如圖所示。
列表開頭:
列表結(jié)尾:
得出以下研究結(jié)果:
- 點贊和回復(fù)數(shù)較多的評論不太會受算法影響,受時間衰減影響也較小,能夠一直排在最前的位置;
- 僅計算點贊與回復(fù)數(shù)時,如遇無點贊與回復(fù)評論則僅以時間倒序進行排序,質(zhì)量較高的評論會被沉底,需要加入字數(shù)維度進行調(diào)整;
- 加入字數(shù)維度能夠有效將質(zhì)量較低(字數(shù)少,無意義,無點贊回復(fù))的評論甩在隊列最后;
- 加入字數(shù)和回復(fù)數(shù)維度后較多較高質(zhì)量評論(有一定的觀點,字數(shù)較多,點贊和回復(fù)數(shù)中等)的排序會更靠前;
- 有效字數(shù)需要進行限制,如遇灌水帖本身質(zhì)量不高卻能因字數(shù)較多排名靠前,而且字數(shù)無法完全證明該評論質(zhì)量,需要削弱影響占比。
第三步:線上ABtest開發(fā)方案確認
根據(jù)上面的案例研究,我們需要加入有效字數(shù)的限制邏輯,本次案例中我按67個字進行了限制(受測產(chǎn)品在標準屏幕下一級評論收起狀態(tài)最多展示字數(shù)67字)計算字數(shù)時小于67字按實際字數(shù)計算,大于等于67字時按67字計算。
為了控制開發(fā)成本,也為了增大各個分組的樣本量。我們在以上算法中挑出2種,原始算法與衍生5。來觀察不進行評論排序,Hacker News算法排序與衍生算法排序的評論數(shù)據(jù)情況,對比優(yōu)劣。將所有用戶根據(jù)用戶ID通過模3運算分為3個實驗組,分別展示不同的排序算法得出的評論列表。(如果用戶量較少不建議將所有用戶進行對比,分組容易產(chǎn)生特殊性)
同時由于節(jié)省計算資源:一段時間后的評論不再進行排序計算,按質(zhì)量分最高值為4000(當(dāng)前觀察到的最大質(zhì)量分)計算Score曲線如下:
算法的更新時效規(guī)則設(shè)置為:即約T>=80時分數(shù)趨近于0且隨時間的衰減變?nèi)醪⒖紤]資訊內(nèi)容的時效性,則3天后不再計算衰減,以第72個小時的分數(shù)為其最終得分(T最大值為72)。由于隨時間衰減為指數(shù)型變化,則T<=24時Score每10分鐘更新一次,24<T<=48時Score每30分鐘更新一次,48<T<=72時Score每60分鐘更新一次。
整體方案確定好之后就可以準備開發(fā)上線了。
第四步:線上ABtest與算法調(diào)參
算法上線后,需要隨時監(jiān)測各個對照組的數(shù)據(jù)情況,并對有疑惑的數(shù)據(jù)進行抽樣檢查,了解具體的文章與評論區(qū)案例。
經(jīng)過一段時間對比我們發(fā)現(xiàn)加入了回復(fù),點贊和字數(shù)多個維度的衍生5算法用戶互動更為活躍。至此我們確定了一個基礎(chǔ)算法,在這之后繼續(xù)通過不斷調(diào)整算法的各項參數(shù),例如重力因子,各指標影響占比等,進行對照試驗,試圖找出效果更優(yōu)秀的計算方式。
迭代展望與一些擴展內(nèi)容
以上就是一次完整的一次利用算法提升評論活躍的案例,最終在包括算法優(yōu)化以及新增功能等一些產(chǎn)品迭代的幫助下,產(chǎn)品的評論量增長了一倍多。
提升評論活躍還有很多可以做的工作,例如進行評論的運營:由運營手動或自動的發(fā)布一些評論內(nèi)容,或者對優(yōu)質(zhì)評論人工增加推薦權(quán)重;功能上支持發(fā)圖片或者有趣的大表情等。包括算法上也可以提出一些新的假設(shè)并進行驗證,或者加入自動調(diào)整參數(shù)的功能,隨時根據(jù)內(nèi)容情況調(diào)整算法參數(shù)與邏輯。評論區(qū)運營有一定效果后可以增加同時發(fā)送到社區(qū)(個人狀態(tài))的功能,為社區(qū)引流,提升社區(qū)氛圍。以達到提升用戶粘性,促進留存的目的。以上僅是個人的一些拙見,在此拋磚引玉。
除了本文介紹的內(nèi)容,關(guān)于評論區(qū)還有一些其他的有趣的產(chǎn)品思路值得探究,例如蓋樓式評論區(qū),樹狀式評論區(qū),直線分支式評論區(qū)等。以及剛剛提到的幾種內(nèi)容排序算法。感興趣的同學(xué)可以查閱資料。
本文在編寫過程中較為倉促,難免疏漏煩請指出,虛心接受(求輕噴我還是個孩子)。同時為避免一些問題,省略了一些不重要的步驟,部分參數(shù)非真實值,請諒解。
作者:劉軒宇,從業(yè)2年半,前內(nèi)容網(wǎng)站用戶端產(chǎn)品經(jīng)理,Wechat:GraythornVi
本文由 @劉軒宇 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
你好,請問“字數(shù)以文章平均字數(shù)為1單位,N/AVERAGE(N)]”當(dāng)中的N和AVERAGE(N)的具體含義是什么呢?:N是該條評論的字數(shù)、AVERAGE(N)是指本篇文章下的所有評論的平均字數(shù)嗎?還是什么呢?