推薦策略設(shè)計(jì)的Notes
推薦算法的基本原理表述起來(lái)比較簡(jiǎn)單,但是具體實(shí)施起來(lái)還是比較復(fù)雜。沒有任何一個(gè)標(biāo)準(zhǔn)的推薦系統(tǒng),可以適用全部的情形,在真正實(shí)現(xiàn)的過(guò)程中,需要對(duì)算法有融匯貫通的掌握,以及對(duì)業(yè)務(wù)本身有深刻的理解。本章會(huì)介紹一些碎片化的推薦系統(tǒng)notes。
1. 要解決哪些bad case?
這個(gè)問(wèn)題是推薦系統(tǒng)被設(shè)計(jì)出來(lái)的根本,產(chǎn)品遇到了哪些bad case,無(wú)法通過(guò)現(xiàn)有的機(jī)制實(shí)現(xiàn),而一定要通過(guò)推薦系統(tǒng)才能解決?
以傳統(tǒng)門戶而言,之所以用推薦系統(tǒng),是因?yàn)殡S著受眾的增多,受眾對(duì)于新聞的偏好越來(lái)越多樣化,而針對(duì)全體人的推薦系統(tǒng)并不能滿足所有人的需求。編輯默認(rèn)只會(huì)推薦絕大多數(shù)人喜歡的內(nèi)容,國(guó)內(nèi)的情況就是“強(qiáng)奸新聞”和“奇聞異獸”,但是這顯然不滿足高端用戶的需求。相反會(huì)降低門戶產(chǎn)品的調(diào)性,造成高端用戶的流失。推薦系統(tǒng)就可以根據(jù)不同人的需求推送不同的內(nèi)容,解決這個(gè)問(wèn)題。
這里的要解決的case,如下:
- 如何讓互聯(lián)網(wǎng)新聞偏好者的首頁(yè)主要是互聯(lián)網(wǎng)新聞而非大眾新聞。
- 如果讓女性用戶首頁(yè)不出現(xiàn)大量男權(quán)色彩重的新聞,比如“強(qiáng)奸新聞”。
只有明確了bad case,才知道了解決問(wèn)題的方向。
2. 設(shè)計(jì)怎樣的合理路徑?
推薦系統(tǒng)最終形態(tài)是基于機(jī)器學(xué)習(xí)的推薦系統(tǒng),那么如果設(shè)計(jì)一個(gè)一個(gè)月就上線的推薦系統(tǒng),怎樣既保證有效性,同時(shí)也又保證最后的合理演化?
舉個(gè)例子,如果最終路徑是無(wú)人駕駛電動(dòng)車代步。有兩種演化方案:
- 方案一:電動(dòng)滑板 → 電動(dòng)自行車 → 電動(dòng)摩托車 → 無(wú)人駕駛電動(dòng)車
- 方案二:汽油動(dòng)力汽車 → 混合動(dòng)力汽車 → 電動(dòng)汽車 → 無(wú)人駕駛電動(dòng)車
方案一看似不斷演進(jìn),其實(shí)每一次都是很大成本的重構(gòu)。而第二個(gè)方案,則能看到清晰的技術(shù)演化路線,駕駛動(dòng)力在演化,最終是無(wú)人駕駛系統(tǒng)的上線,而大的架構(gòu)沒有修改。
我一直覺得一個(gè)產(chǎn)品經(jīng)理的能力很大程度體現(xiàn)在架構(gòu)思維和中間版本的設(shè)計(jì)。
具體到推薦系統(tǒng)的設(shè)計(jì),短期內(nèi)要看到效果,一開始直接上CF,是不明智的,一開始直接上基于語(yǔ)義分析的推薦方法也是不明智的。而如果是利用現(xiàn)有內(nèi)容信息進(jìn)行人工干預(yù)的聚類,利用這個(gè)內(nèi)容聚類去實(shí)現(xiàn)用戶聚類,則更加明智一些。后續(xù)轉(zhuǎn)為自動(dòng)化聚類也更加合理。
3. 可調(diào)整性
推薦系統(tǒng)最需要考慮的問(wèn)題是,如果出現(xiàn)了問(wèn)題,怎么可以快速調(diào)整來(lái)滿足需求?
措施無(wú)外乎三種:提權(quán),降權(quán),屏蔽。
這里就要求,權(quán)重是否能夠快速調(diào)整?召回策略是否能夠快速調(diào)整?只有系統(tǒng)級(jí)別支持粒度較細(xì)的權(quán)重調(diào)整策略,以及靈活的召回策略,才能夠保證策略的快速調(diào)整,保證推薦系統(tǒng)的可持續(xù)迭代。
這也是不建議直接上線CF或者機(jī)器學(xué)習(xí)的原因,因?yàn)镃F和機(jī)器學(xué)習(xí)等策略,一開始可調(diào)整性比較差,前期無(wú)法快遞迭代,可能對(duì)于項(xiàng)目而言,就是死刑。
4. 離線評(píng)估、 灰度上線和用戶反饋
離線評(píng)估是指在發(fā)布之前,需要去檢驗(yàn)典型的bad case 是否解決。是否達(dá)成一開始的目標(biāo),如果沒有,則需要繼續(xù)調(diào)整對(duì)應(yīng)算法,直到能夠明顯解決問(wèn)題。
灰度上線則也是穩(wěn)妥的措施。一開始推薦系統(tǒng)一定是充滿了各種問(wèn)題,所以為了解決這個(gè)問(wèn)題,剛開始上線一定不能直接全量上線。正確的做法是,灰度上線一段時(shí)間期間,快速的根據(jù)用戶反饋迭代算法,再考慮全量上線。
用戶反饋的方案包括但不限于:用戶問(wèn)卷,負(fù)反饋操作入口。典型的負(fù)反饋入口如下(今日頭條):
5. 說(shuō)服別人的數(shù)據(jù)
所有改進(jìn)工作效率的系統(tǒng),都會(huì)觸碰別人的利益。這句話話值得讀三遍。
推薦系統(tǒng)正是這樣。如果沒有推薦系統(tǒng),運(yùn)營(yíng)或者編輯能確定所有的位置應(yīng)該擺放什么內(nèi)容。有了推薦系統(tǒng),原來(lái)10個(gè)人做的事情可以3個(gè)人能做完。那么這個(gè)部門裁誰(shuí)?沒有推薦系統(tǒng),可能有一些特定KPI完成的余地,甚至可能有利益輸送的空間,現(xiàn)在交給推薦系統(tǒng),這個(gè)損失怎么辦?
另一方面,并不是所有人都有技術(shù)信仰,覺得推薦系統(tǒng)能比運(yùn)營(yíng)或編輯的經(jīng)驗(yàn)判斷會(huì)比推薦系統(tǒng)差,如果領(lǐng)導(dǎo)本身對(duì)推薦系統(tǒng)有懷疑,這也會(huì)是一大阻力。
推薦系統(tǒng)最開始的目標(biāo)并不是要大范圍的上線,并且證明自己能替代編輯或者運(yùn)營(yíng),而是要能夠說(shuō)服別人,推薦系統(tǒng)是可用的。這樣才會(huì)減少阻力。最常見的做法是在運(yùn)營(yíng)或編輯不會(huì)干預(yù)的地方,上線推薦策略。因?yàn)檫@些地方上線推薦,業(yè)務(wù)數(shù)據(jù)是絕對(duì)的增量?;蛘呷绻谥匾\(yùn)營(yíng)位上線,一定不要改變運(yùn)營(yíng)或者編輯最好的位置,而是在相對(duì)次要的位置增加推薦模塊兒。
而只有在這些位置不斷迭代系統(tǒng),效果足夠好之后,達(dá)到能夠說(shuō)服別人的時(shí)候,再考慮進(jìn)一步推進(jìn)推薦系統(tǒng)的覆蓋率。
6. AB test
之前在講搜索的時(shí)候,我也是在最后強(qiáng)調(diào)了AB test的重要性。推薦和搜索一樣,本身極大依賴參數(shù)的配置。而這些參數(shù)的配置并沒有通用的法則,同時(shí)也依賴各個(gè)平臺(tái)自身具體的情況,只能在了解其原理的基礎(chǔ)上,不斷迭代摸索。在算法迭代的過(guò)程中,能夠測(cè)試其效果是算法迭代的核心。只有能同時(shí)在線上部署多套搜索算法,并且監(jiān)控其效果,推薦的迭代和改進(jìn)才能展開。而這一切的基礎(chǔ),正是一個(gè)看不見的功能:AB test機(jī)制。
7. 總結(jié)
本期總結(jié)了推薦系統(tǒng)實(shí)現(xiàn)過(guò)程中一些需要特別注意的地方。
結(jié)束之前,討論另一個(gè)問(wèn)題,推薦系統(tǒng)的產(chǎn)品經(jīng)理需要懂算法么?
答案也很簡(jiǎn)單,一定要懂。如果不懂算法,就只能是做簡(jiǎn)單的評(píng)估并提出改進(jìn),很難有系統(tǒng)性的優(yōu)化方案。懂算法也不是要知道具體怎么實(shí)現(xiàn),而是要知道實(shí)現(xiàn)的原理,這樣才能更好地把產(chǎn)品需求轉(zhuǎn)為推薦策略,并且和算法工程師商量出解決方案。
#專欄作家#
潘一鳴,公眾號(hào):產(chǎn)品邏輯之美,人人都是產(chǎn)品經(jīng)理專欄作家。畢業(yè)于清華大學(xué),暢銷書《產(chǎn)品邏輯之美》作者;先后在多家互聯(lián)網(wǎng)公司從事產(chǎn)品經(jīng)理工作,有很多復(fù)雜系統(tǒng)的構(gòu)建實(shí)踐經(jīng)驗(yàn)。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
上線CF的CF是什么意思。。求掃盲。。。
CF是協(xié)同過(guò)濾的縮寫
Collaborative Filtering, 簡(jiǎn)稱 CF。分為User-CF 和Item-CF。
User-CF是從User的緯度根據(jù)購(gòu)買(瀏覽)記錄計(jì)算多個(gè)user之間的相似度,然后把與當(dāng)前user相似的用戶也喜歡而當(dāng)前user沒有選擇的item推薦個(gè)當(dāng)前用戶。
Item-CF是從item的緯度出發(fā),根據(jù)user對(duì)物品的喜好(購(gòu)買)記錄計(jì)算物品之間的相似度,然后把用戶已經(jīng)選擇的物品相似的其他物品推薦個(gè)用戶。
?
算法好像太多了,看的有點(diǎn)懵逼。。主要還是有疑問(wèn):什么算法在什么流程或者什么步驟或者什么場(chǎng)景中使用效果最好,能掃盲一下嗎大佬 ?
可以看我上一篇文章。
求個(gè)微信探討一下 推薦算法