好的推薦系統應該是什么樣?
推薦,猜你喜歡,個性歌單,熱搜榜……這些我們常見的其實都是推薦系統輸出的內容,一個推薦系統的好壞實實在在影響著用戶使用產品的感受。
在沒找到工作的間隙,開始從原理層面了解機器學習,做畢設的時候是關于圖片學習的,啃完paper擼好論文后的我,不久前我終于能夠暢游互聯網的海洋了。抓緊時間體驗和使用了國外的一大批社區和vedio后,對其有了一些思考。這里閑扯兩句,也算是拋磚引玉。
推薦系統到底是個啥
這個問題,不同的人有不同的答案,如果你是網購達人,那么對于你可能是這樣的:
如果你是音樂發燒友,那么就是這樣的:
如果你是知識青年,應該是這樣的:
如果你是八卦狂魔,那么就是這樣的啦:
推薦,猜你喜歡,個性歌單,熱搜榜,這些都是推薦系統輸出的內容,我們從這些就可以總結出,推薦系統到底干了啥了?
1. 幫助用戶找到他們感興趣的東西(商品,內容),發掘長尾
幫用戶找到想要的東西,談何容易。商品茫茫多,甚至是我們自己,也經常點開淘寶,面對眼花繚亂的打折活動,滿減促銷。陷入無限的選擇困難癥,在經濟學中,有一個著名理論叫長尾理論(The Long Tail)。
套用在互聯網領域中,指的就是最熱的那一小部分資源和掌握它們的頭部用戶將得到絕大部分的關注,而剩下的很大一部分資源卻鮮少有人問津。這不僅造成了資源利用上的浪費,也讓很多的中部和尾部的內容輸出者沒有公平的曝光機會。
2. 降低信息過載
如今的互聯網無論是信息量還是熱點量都處于overload的狀態,若是將所有的內容都放在首頁,那么用戶將是無從閱讀的,信息的利用率將會非常低下,因此需要推薦系統來幫助用戶篩選過濾信息。
3. 提升用戶黏性,增加用戶的轉化率和點擊率
一個優秀的推薦系統不僅能讓用戶更頻繁的訪問某一個板塊/站點,而且總是能夠幫助用戶找出他需要的商品和內容,提升其消費的動力。
4. 為用戶創建專屬的用戶畫像,為用戶提供私人訂制的個性化服務
每當系統成功推薦了一個用戶感興趣的內容后,我們對該用戶的興趣愛好等維度上的形象是越來越清晰的。當我們能夠精確描繪出每個用戶的形象之后,就可以為他們定制一系列服務,讓擁有各種需求的用戶都能在我們的平臺上得到滿足。
5. 深度關聯使用場景,為消費創造新的窗口
試想如果在你需要太陽鏡的時候能夠根據你瀏覽頁面的歷史記錄來給你個性化推薦太陽鏡,豈不是很爽?這不僅解決了你的消費需求,也為商家提供了個性化售賣的窗口。
你或許跟我感覺是一樣的,推薦系統就是如果A,那么B的一個系統。其關鍵就在于如何確定A與B的映射關系。目前常用的有協同過濾、Logistic Regression、DNN、GBDT等。
詳情抄送:http://neuralnetworksanddeeplearning.com/
一個推薦系統對用戶有什么影響
我們先來看看,一個聊勝于無的推薦系統是什么樣子的。前兩天刷知乎,timeline上出現了一個問題:為什么知乎的推薦系統為何這么差?
知乎用戶吳大官人是這樣回答的:
其實縱觀這幾年來國內的APP,無論是知乎、今日頭條等信息資訊類app,還是網易云、抖音這些泛娛樂app。都在嘗試用推薦算法來過濾內容,推薦用戶可能更感興趣、更具有吸引力的內容以期讓用戶能更久的駐留在自己的生態里。
但是,這真的是個有效且好用的方式嗎?
筆者持保留意見。我是個年輕人,我想看看更大的世界,不需要你喂養的千篇一律的內容。
這里要尬吹一下奈飛神一般的推薦系統了
Netflix的推薦技術本質上回答了兩個問題:
1. 如何提升用戶觀看體驗?
2. 如何在內容上投用戶所好?
奈飛在每次啟動的時候都會咨詢:是誰在觀看影片?
一個典型的 Netflix 用戶會在 60-90 秒的瀏覽后失去興趣,這個過程中大概能看到 10-20 部作品,仔細看過其中 3 部左右,滑動不超過兩屏。在這之后用戶要么就是找到了自己想要的作品,要么就徹底流失掉。所以推薦系統要做到的就是針對不同的用戶在這兩屏里,找到自己感興趣的作品,從而留住用戶。
用戶的觀看體驗可能收到多方面因素的影響,觀看入口,操作步驟,海報內容等等都有可能對用戶的觀看體驗造成影響,奈飛通過為每個用戶建立用戶畫像,可以迅速定位到觀看的用戶的性別,年齡,過去看過的影片,好友信息等內容,從而產生一個stream主頁,根據用戶畫像構建了一個復雜的推薦系統來為用戶推薦合乎口味的影片和電視劇。這個推薦系統的方法包括:
PVR – Personal Video Ranker:記錄你的影片風格的偏好,同時結合時下流行來進行推薦以達到最好的推薦效果。
Top-N Video Ranker:根據用戶的個性化推薦計算出得分最高的條目來進行推薦,和PVR有所不同。PVR是先進性優先分類,然后再進行的個性化推薦。
Trending Now:當前熱點,可以解決以下的三種場景:
- 周期性的觀影需求,比如節假日或者是特殊的紀念日。
- 一些突發事件,類似于時政要聞。
- 一些熱點事件,諸如碧昂斯劈腿了(大霧)。
Continue Watching:上次沒看完,這次接著看唄。算法本身也會做一些預測,是真的沒看完,在追。還是對這個節目不感興趣而直接棄劇??梢詮挠^影時間,結束觀看的時間戳來進行推薦。
Video-Video Similarity:根據你觀看的某部電影的相似度來進行計算,只是基于電影本身的內容推薦,但是展示到瀑布流中會進行個性化篩選。
推薦頁面最終排序及生成:上面提到的 5 種算法推薦出的過千個模塊,會進行統一的排序最終展示給用戶。奈飛使用的算法中針對不同用戶的使用習慣做了定制化的方案,不再采用固定的模塊排序。
Evidence:Netflix推薦系統中一個非常重要的特性就是“evidence”,它的覆蓋面很廣,比如獲得什么獎項、演員是誰、封面圖要放什么。在拿到所有的 evidence 后,Netflix 會根據不同的電影和用戶,選擇不同的 evidence 推出去說服用戶接受這部電影。這個舉措不但會給用戶帶來信任感,還會鼓勵他們更積極地參與到推薦互動中來,給予更多有效反饋。
推薦算法的優化
想要在一個非常大的、復雜的推薦系統中優化算法是一件非常困難的事情,尤其是當你想調成某個item時候經常會不知所措,由于?Netflix 幾乎所有收入都來自于每月用戶的訂閱費,而觀看時間與次月留存也被證明了是正相關的,因此多種算法和參數在競爭時都會以觀看時長以及留存率作為比較指標。
Netflix 的 A/B test
最初的時候隨機選擇部分用戶的推薦算法更換為與當前使用的算法不同的另一套算法,這個過程會持續 2-6 個月。
回收統計結果,制作以下的問卷:
- 改動后的算法是否激勵用戶看了更多的電影?
- 算法改動后的用戶群體相比傳統用戶整體上是否看了更多的電影?
- 算法改動是否提升了續費的比例?
測試組的大小如何決定?
- 測試組要選多少用戶進來才具有代表性?比如測試組留存 50.05%,對照組留存 49.95%,提升了 0.1%,那我到底需要多少用戶來實驗才能說明這個提升是真正的提升,而不是選擇的樣本波動呢?
- 這里采用了一個概率模型,假設留存率和置信區間存在關系,比如你現在計算出的留存是 50%,那么可以在概率模型中找到留存率為50%的位置,如果說測試組和對照組的差是 0.1%,就往 Y 軸上去查找 0.1%,發現對應的值是 2000K,這就意味著如果要驗證這個結果有效,測試組和對照組的用戶量級都必須是 2000K 才可以
Netflix 的 AB test 會在老用戶及新用戶兩個群體里分別進行。老用戶的好處是量足夠多,可以跑很多實驗。但老用戶已經有自己的使用習慣了,突然換上新的算法,并不能完全體現新算法的實際表現,因為用戶會按照自己的歷史經驗來使用產品。
因此在新用戶群體中做實驗其實更好,但問題就是新用戶沒那么多,而且新用戶第一個月還是免費的,那么他們多半不會在免費期去關閉他們的帳號。這就意味著面向新用戶的測試,得在一個月后,讓他們實際續費時,才能得出續費率的統計結果。
但整體上來看,這樣的實驗手段還是太慢了,即使每次實驗都是多種算法多種參數的組合,但還是慢到他們自己也不太能接受。因此他們用上了 offline experimentation:
舉個例子,利用一個用戶兩天之前的所有觀看數據,讓各種算法來計算接下來應該給該用戶推薦什么電影,然后再去查看這兩天該用戶實際看了什么電影。計算這兩者間的重合度,從而去評判不同算法之間的好壞。
這樣的操作完全依賴歷史數據,不用等待,可以不斷的迭代,增刪參數,改變算法本身。因此運作起來速度很快。
但這種方法也有它的壞處,就是假設用戶在接受新的推薦后,還是會去點之前看的那些電影。這個假設偶爾成立,但很多場景下也是不成立的。
不過 offline experimentation 還是有它的價值,就是可以幫助我們快速驗證想法,以及發現一些新的推薦機會。
(而且我注意到似乎對于同一部影片,奈飛推薦給不同的人的stream流都是使用的不同的海報??赡芩麄儗笠沧隽藰撕灠伞?/p>
而且,不僅是強大的推薦系統,奈飛的內容精細化程度也很大程度上為其做了質量背書。作為一個20年高齡,在快餐信息和內容為王的時代依舊屹立不倒的視頻網站,其前瞻性的自制劇的投拍功不可沒。
本文由 @leon 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議
老哥,采用的那個概率模型,能否細講一下,多謝多謝