從0到1,基于內(nèi)容的推薦算法的產(chǎn)品設(shè)計
本文從定義和框架出發(fā),結(jié)合實際案例,深入淺出地闡述了基于內(nèi)容的推薦算法及其產(chǎn)品設(shè)計。
一、前言&定義
可能很多和筆者一樣非數(shù)據(jù)或算法科班出身的產(chǎn)品同學(xué)在涉及到需要進行內(nèi)容推薦的產(chǎn)品時無從下手,盡管在網(wǎng)絡(luò)上可搜索到各種算法的基本原理和公式,但或過于專業(yè)或直接呈現(xiàn)最終邏輯,但具體怎么做還是一頭霧水,筆者拋開理論和復(fù)雜的公式,直接從產(chǎn)品出發(fā)設(shè)計一套最小可行性從0到1的推薦算法能力。
什么是基于內(nèi)容的推薦算法
基于內(nèi)容的推薦:核心思想是根據(jù)推薦物品或內(nèi)容的元數(shù)據(jù),發(fā)現(xiàn)物品或者內(nèi)容的相關(guān)性,然后基于用戶以往的喜好記錄,推薦給用戶相似的物品。
簡單地理解就是:根據(jù)用戶過去喜歡的內(nèi)容,為用戶推薦和他過去喜歡的內(nèi)容相似的內(nèi)容。
二、算法整體架構(gòu)說明
1. 明確算法目的
我們在最開始做推薦算法時,要清楚初始階段目的:即在保證內(nèi)容質(zhì)量的前提下根據(jù)用戶行為推薦盡可能符合用戶期望的豐富內(nèi)容。
這句話雖然很短,但包含了三個很重要的關(guān)鍵詞:內(nèi)容的質(zhì)量、內(nèi)容豐富(多元)度和符合預(yù)期。
2. 推薦算法整體邏輯
基于推算的場景,我們很容易發(fā)現(xiàn)推薦邏輯:用戶在線進行操作行為時,系統(tǒng)向后臺發(fā)起用戶數(shù)據(jù)召回請求,然后根據(jù)排序模型形成最終用戶看見的內(nèi)容,最后通過用戶的請求和記錄完善用戶行為,以進行后續(xù)的內(nèi)容匹配。常見的推算下圖:
圖片雖然看起有點復(fù)雜,抽絲剝繭就三個核心:一套內(nèi)容管理后臺+多個權(quán)重算法+展示邏輯。
3. 推薦算法產(chǎn)品框架
基于算法邏輯和最小可行性目的,我們可以整理出簡單的產(chǎn)品框架,如下圖:
很明顯算法推薦公式可以不用立馬就建立一套復(fù)雜的算法模型,只要有基礎(chǔ)的用戶管理、內(nèi)容管理能力,結(jié)合內(nèi)容質(zhì)量權(quán)重和用戶喜好權(quán)重,考慮到去中心化和時效應(yīng)影響,就可完成在保證內(nèi)容質(zhì)量的前提下根據(jù)用戶行為推薦盡可能符合用戶期望的豐富內(nèi)容。
三、具體算法權(quán)重設(shè)計
1. 質(zhì)量管理評分公式
質(zhì)量評分總得分Score由三大模塊得分加權(quán)計算得出,其公式如下所示:
(系數(shù)可根據(jù)業(yè)務(wù)情況自行調(diào)整,起始分為100)
其中A、B、C為三大模塊各自得分值。Score得分為三大模塊得分乘以各自對應(yīng)系數(shù)。
各模塊得分由其多項評分指標(biāo)及對應(yīng)系數(shù)加權(quán)計算得到,此處以A模塊為例:
其中為A模塊下對應(yīng)的各項指標(biāo)得分,?為各項指標(biāo)得分所對應(yīng)的權(quán)重系數(shù)。
A-內(nèi)容流量模塊評分
內(nèi)容流量為是內(nèi)容對流量的吸引能力體現(xiàn),初始化的產(chǎn)品建議的核心熱度加權(quán):停留時間(退出率)>評論量>點贊量>收藏量>PV/UV>轉(zhuǎn)發(fā)量。下表為案例:
B-內(nèi)容質(zhì)量模塊評分
主要根據(jù)后臺內(nèi)容的狀態(tài)進行評斷,在機審能力未完全搭建以前,本模塊受到人工影響較大。
附:評分公式
目前對于內(nèi)容推薦型的評分算法,推薦貝葉斯平均評分法作。其公式如下:
其中,n為當(dāng)前內(nèi)容的評分次數(shù),M為總內(nèi)容平均得分,S為單個內(nèi)容總得分,C為動態(tài)系數(shù)。
單個內(nèi)容評分得分 = (總內(nèi)容的平均得分 * C系數(shù)) + 單個產(chǎn)品的評分總和) / (當(dāng)前內(nèi)容的評分次數(shù)+ C系數(shù))
C系數(shù)為每個內(nèi)容的被評分的平均次數(shù),即C=所有內(nèi)容被評論的總次數(shù)/所有內(nèi)容數(shù)量。例如:總共有1000個文章 一共被評論了50000次,那C就等于50000/1000=50。
小例:
(貝葉斯平均法評估示例)
結(jié)論:以貝葉斯平均為依據(jù)的排序更能反應(yīng)真實的情況,打分次數(shù)多且評分較高的產(chǎn)品會更加靠前,打分次數(shù)多評分較低的產(chǎn)品則會更加靠后,與單純依據(jù)每個產(chǎn)品的平均分排序相比,這種結(jié)果更有意義。
C-用戶質(zhì)量模塊評分
用戶質(zhì)量根據(jù)后臺人工標(biāo)識用戶屬性加上其發(fā)帖質(zhì)量2個維度構(gòu)成。
2. 用戶喜好評分公式
用戶行為記錄是獲取用戶相關(guān)推薦的主要依據(jù),初期是根據(jù)用戶關(guān)注、瀏覽喜好以及用戶搜索關(guān)鍵詞對用戶喜好進行統(tǒng)計,基本的邏輯如下:
喜好評分=瀏覽喜好分類*0.6+關(guān)注人內(nèi)容*0.4 +搜素內(nèi)容分類*0.0
(系數(shù)可根據(jù)業(yè)務(wù)情況自行調(diào)整,起始分為100)
舉例說明:
(1)通過用戶的瀏覽記錄,獲得用戶的喜好標(biāo)簽
那么對于同一分類下的內(nèi)容按照公式增加喜好值。
(2)獲取用戶的關(guān)注用戶,獲得喜好標(biāo)簽
那么對于關(guān)注用戶下的內(nèi)容按照公式增加喜好值。
(3)如果內(nèi)容1屬于分類A,并且是用戶D創(chuàng)建的,這個內(nèi)容對于用戶來說就是兩個權(quán)重值相加? =查看內(nèi)容分類*0.6+關(guān)注人內(nèi)容*0.4
四、前端展示權(quán)重設(shè)計
通過質(zhì)量評分和用戶喜好評分,我們能得到以內(nèi)容為主。針對不同用戶的內(nèi)容質(zhì)量和喜好評分值,那么就可以得到一個簡單的推薦邏輯(推薦列表):按照用戶喜好評分推薦質(zhì)量評分較高的內(nèi)容,若得分相同則按內(nèi)容創(chuàng)建時間倒序排列進行推薦。
但在實際推薦中除了保證用戶喜好外,需要嘗試去中心化的內(nèi)容展示模式,所以最終展示的推薦內(nèi)容,應(yīng)該來自三個模塊:
A、用戶喜好列表:通過用戶喜好評分,為用戶推薦內(nèi)容評分質(zhì)量較高的內(nèi)容,這是主要推薦內(nèi)容。
推薦邏輯:先對內(nèi)容按照用戶喜好值進行從高到低的排序,再喜好值A(chǔ)以上的內(nèi)容中依次健康值高于閥值B、閥值C、閥值D的內(nèi)容隨機推薦,低于閥值D不進行推薦。
B、高質(zhì)量非喜好列表:用戶喜好值低于某個閥值但內(nèi)容流量評分較高的內(nèi)容。
C、初始流量推薦列表:通過用戶喜好評分,為用戶推薦內(nèi)容質(zhì)量審核過但流量不高的內(nèi)容。
老用戶算法為:Score=A*0.7+B*0.2 +C*0.1(系數(shù)可根據(jù)業(yè)務(wù)情況自行調(diào)整)
其中0.7、0.2、0.1位A、B、C為三大模塊初始系數(shù),它受到時間效應(yīng)變化。
新用戶冷啟動的算法為:ScoreL= B*0.9 +C*0.1
其中B模塊直接調(diào)用流量池健康評分。
注意:喜好評分和健康值相同時,隨機選取加載量,在同一輪加載過程中同一信息需要剔重。
1. 時間效應(yīng)計算方式
為了進一步去中心化,以及推薦準(zhǔn)確性,根據(jù)熱度冷卻公式:
本期系數(shù) = 上期系數(shù) x exp(-(冷卻系數(shù)) x 間隔的小時數(shù))。T為初始熱度,此處默認為0.7,為上一期溫度,為冷卻系數(shù),為間隔小時數(shù)。
五、關(guān)于A/B測試
推算推薦更加需要進行A/B test,因為我們在初始化的過程中,具體的權(quán)重設(shè)置是否合理是無法得知的,但是能保證的時沒有垃圾推薦的流出,所以A/B測試結(jié)果對優(yōu)化權(quán)重格外重要,將用戶分流至對應(yīng)方案內(nèi),在保證每組用戶特征相同的前提下,根據(jù)用戶的真實數(shù)據(jù)反饋,幫助產(chǎn)品決策。當(dāng)然隨著測試樣本變多對技術(shù)架構(gòu)考驗越大。
六、尾聲
正如開頭所說本文的算法是剝離于內(nèi)容推薦算法理論公式,根據(jù)實際產(chǎn)品出發(fā)進行的設(shè)計,其核心是保證內(nèi)容質(zhì)量的前提下根據(jù)用戶行為推薦盡可能符合用戶期望的豐富內(nèi)容,具有相當(dāng)?shù)木窒扌?,它適用于沒有完善的算法團隊和進行最小可行試驗的產(chǎn)品。希望文章對和我一樣沒有算法基礎(chǔ)的同學(xué)帶來幫助和啟發(fā),野路子的產(chǎn)品悲哀。歡迎大家交流。
本文由 @jingtianz 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
請問幾個問題:1.如果一個用戶給自己作品重復(fù)評論,那么這個評論數(shù)量累計起來會不會影響作品的權(quán)重,如果其他用戶給自己作品重復(fù)評論又怎么計算作品的權(quán)重
2.怎樣算是完成了一個分享流程,對于web來說。
想請問一下,所以離線部分的加權(quán)模型=內(nèi)容質(zhì)量評分嗎,數(shù)據(jù)應(yīng)該多久更新一次呢
一樣的野路子。。最近在做用戶推薦關(guān)注,看完蠻有啟發(fā)!
按照你第一個表格如果點贊數(shù)15000那一項得分是多少啊
感恩樓主,寫的很詳細,準(zhǔn)備拿一個項目簡單搭一下內(nèi)容推薦了~~:)
有結(jié)果我們可以探討
請教下,去中心化是什么意思?是什么樣的業(yè)務(wù)場景需要去中心化
流量的分發(fā)基于用戶的偏好+內(nèi)容創(chuàng)建者+內(nèi)容質(zhì)量(平臺設(shè)定自動甄別+人工干預(yù)),而不是單純的依靠內(nèi)容創(chuàng)建者或平臺的權(quán)重,
嗯嗯,謝謝解釋
我想問問這個評分的概念,初始100,根據(jù)加分、減分項,要是這個視頻非常好的話,這個分?jǐn)?shù)會沒有上限嗎?比如到10000分
您好,本期系數(shù)T和質(zhì)量評分總得分Score有什么關(guān)系嗎?或者這個時間效應(yīng)怎么運用進去的
可以的
清晰明了,學(xué)習(xí)了
這個指標(biāo)權(quán)重和權(quán)重計算是什么關(guān)系呀
比如 訪問數(shù)占整個權(quán)重的10%(權(quán)重值為10分),總的UV大于20則獲得這個10%的100%,大于10低于20則獲得80%。如果一個內(nèi)容的訪問量大于20,這個內(nèi)容的訪問數(shù)權(quán)重得分就是10*100%=10分,同理如果是后者這個權(quán)重值只有 10*80%=8分
100%是給10分,80%是給8分,那么120%是給12分?-20%是給-2分?
QAQ看完的第一感受:我TM數(shù)學(xué)還得再修個幾年!
說的是抖音推薦算法么
個人覺得內(nèi)容類都適合,但是比較簡單粗暴
明明咱們都是九年義務(wù)教育,你咋那么優(yōu)秀?
構(gòu)思有了,就可以去畫原型了,對了原型工具我覺得axure強大,但是上手好難,其他的邏輯也比較復(fù)雜 /哭唧唧,用著墨刀還挺順手,之前想過找人做,結(jié)果要價太高,逼著自學(xué)墨刀,一個星期就順利畫出了 /樂呵呵