推薦策略設(shè)計的Notes

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