常用推薦算法介紹 | 人人都是產品經理

2020-11-27 人人都是..

在本文中,作者主要是介紹了常見推薦算法的基本原理。

0. 從餘弦公式講起

先思考一個問題,我們怎麼量化兩個事物的相似度呢?當然,這也是推薦系統需要多次面臨的問題。

我們知道向量的概念,可以形象化地表示為帶箭頭的線段。二維空間向量表示方法為,多維空間向量表示為,向量是描述事物一種很好模型。

比如,假設用戶有5個維度:

  1. 對服裝的喜歡程度(1~5分)
  2. 對家居的喜歡程度(1~5分)
  3. 對3C的喜歡程度(1~5分)
  4. 對圖書的喜歡程度(1~5分)
  5. 對化妝品的喜歡程度(1~5分)
  • 一個用戶A:對服裝的喜歡程度3,對家居的喜歡程度1,對3C的喜歡程度4,對圖書的喜歡程度5,對化妝品的喜歡程度0,用戶A可以用向量表示為
  • 一個用戶B:對服裝的喜歡程度3,對家居的喜歡程度4,對3C的喜歡程度5,對圖書的喜歡程度0,對化妝品的喜歡程度2,用戶B可以用向量表示為

這兩個用戶的相似程度是多大呢?既然我們把這兩個用戶表示為向量,那麼我們可以考慮向量怎麼判斷相似性。沒錯,看這兩個向量的夾角。夾角約小,則相似度越大。

對於向量和而言,他們的在多維空間的夾角可以用向量餘弦公式計算:

餘弦相似度的值本身是一個0~1的值,0代表完全正交,1代表完全一致。就剛才用戶A和用戶B的例子而言,我們可以知道他們的相似度為:

餘弦公式本身應用範圍很廣,量化相似度在搜索推薦,商業策略中都是常見問題,餘弦公式是很好的解決方案。就推薦本身而言,計算內容的相似度,計算用戶的相似度,計算用戶類型的相似度,計算內容類型的相似度,這些都是可以應用的場景。

1. 推薦的本質是什麼

推薦和搜索本質有相似的地方。搜索滿足用戶從海量數據中迅速找到自己感興趣內容的需求,屬於用戶主動獲取。推薦則是系統從海量數據中根據獲取到的用戶數據,猜測用戶感興趣的內容並推薦給用戶,屬於系統推薦給用戶。本質上都是為了在這個信息過載的時代,幫助用戶找到自己感興趣的東西。

推薦系統有很多種形式。運營或者編輯篩選出自己認為最好的內容放在首頁,廣義上講這也是一種推薦。不過這個不在我們本期文章的討論範圍,本期主要是討論系統級別的推薦。這裡主要介紹四類常見的推薦方法:

  • 基於內容的推薦
  • 基於內容的協同過濾
  • 基於用戶的協同過濾
  • 基於標籤的推薦

2. 基於內容的推薦

基於內容的推薦是基礎的推薦策略。如果你瀏覽或購買過某種類型的內容,則給你推薦這種類型下的其他內容。

以電影推薦為例。比如你之前看過《盜夢空間》,則系統會關聯資料庫中盜夢空間的信息。系統會推薦克里斯多福·諾蘭導演的其他作品,比如《致命魔術》;系統會推薦主演裡昂納多的其他作品,比如《第十一小時》。

如果這個電影系統的數據被很好地分類,那麼推薦系統也會給用戶推薦這個分類下的其他作品。盜夢空間如果被歸為科幻作品,那麼可能會推薦其他科幻作品,比如《星際迷航》。

基於內容的推薦好處在於易於理解,但是壞處是推薦方式比較依賴於完整的內容知識庫的建立。如果內容格式化比較差,那麼基於內容的推薦就無法實行。同時如果用戶留下的數據比較少,則推薦效果很差,因為無法擴展。

3. 基於內容的協同過濾

協同過濾(Collaborative Filtering)與傳統的基於內容過濾直接分析內容進行推薦不同,協同過濾會分析系統已有數據,並結合用戶表現的數據,對該指定用戶對此信息的喜好程度預測。

基於內容的協同過濾(item-based CF),通過用戶對不同內容的評分來評測內容之間的相似性,基於內容之間的相似性做出推薦;最典型的例子是著名的「啤酒加尿布」,就是通過分析知道啤酒和尿布經常被美國爸爸們一起購買,於是在尿布邊上推薦啤酒,增加了啤酒銷量。

需要計算用戶u對物品j的興趣,公式如下:

這裡N(u)表示用戶有關聯的商品的集合,wji表示物品j和i的相似度,rui表示用戶u對物品i的打分,示例如下:

這裡還有兩個問題沒有仔細描述,如何打分,如何計算相似度。

打分的話需要根據業務計算,如果有打分系統最好,沒有打分系統,則需要根據用戶對這個物品的行為得到一個分數。

計算相似度除了之前我們提到的餘弦公式,還可以根據其他的業務數據。比如對於網易雲音樂而言,兩首歌越多的被加入兩個歌單,可以認為兩首歌越相似。對於亞馬遜而言,兩個商品越多的被同時購買,則認為兩個商品相似。這裡其實是需要根據產品的具體情況進行調整。

4. 基於用戶的協同過濾

基於用戶的協同過濾(user-based CF),通過用戶對不同內容的行為,來評測用戶之間的相似性,基於用戶之間的相似性做出推薦。這部分推薦本質上是給相似的用戶推薦其他用戶喜歡的內容,一句話概括就是:和你類似的人還喜歡下列內容。

需要計算用戶u對物品i的興趣,公式如下(可以和基於物品的協同過濾仔細對比):

這裡N(i)表示對物品i有過行為的用戶集合,wuv使用用戶u和用戶v的相似度,rvi表示用戶v對物品i的打分,示例如下:

同樣的,這裡計算相似度如果用到餘弦公式,其實最主要的是選好維度。對於音樂而言,可能是每首歌都作為一個維度,對於電商而言,也可以是每個商品都是一個維度。當然,用一些可理解的用戶標籤作為維度也是可以的。

5. 基於標籤的推薦

標籤系統相對於之前的用戶維度和產品維度的推薦,從結構上講,其實更易於理解一些,也更容易直接幹預結果一些。關於tag和分類,基本上是網際網路有信息架構以來就有的經典設計結構。內容有標籤,用戶也會因為用戶行為被打上標籤。通過標籤去關聯內容。

需要計算用戶u對物品i的興趣,公式如下(可以和基於物品的協同過濾仔細對比):

這裡N(u.,i)表示用戶u和物品i共有的標籤,wuk使用用戶u和標籤k的關聯度,rki表示標籤k和物品i的關聯性分數,示例如下:

標籤查找的方法這裡有很大可以發揮的空間,比如,通過知識庫進行處理,或者語義分析處理。而對於一些設計之初就有標籤概念的網站, 就比較容易,比如豆瓣和知乎。對於知乎而言,公共編輯的標籤是天然的標籤內容,對於知乎的用戶而言,瀏覽回答關注等行為則是天然的用戶標籤素材。

6. 總結

對於推薦而言,這幾種基本的方法彼此之前都有些應用場景的差別:比如基於知識的推薦,這是比較老舊的推薦方法,但是對於系統和結構比較好的內容,則低成本且高效。比如基於內容的協同過濾,就適用於內容比較有限,但是用戶數特別多的情況,比如電商公司。比如基於用戶的協同過濾,則比較容易根據用戶的興趣點,發覺熱點內容,比如新聞門戶。對於基於標籤的推薦,有標籤系統的很佔便宜,它在靈活性和可控制性上都好一些,但是做好很難。

本期主要是介紹了常見推薦算法的基本原理,那麼在推薦系統策略設計的時候,有哪些需要特別注意的地方呢?我們怎麼衡量一個推薦系統的優劣呢?推薦系統有哪些典型的應用場景呢?歡迎關注專欄,繼續閱讀下期。

#專欄作家#

潘一鳴,公眾號:產品邏輯之美,人人都是產品經理專欄作家。畢業於清華大學,暢銷書《產品邏輯之美》作者;先後在多家網際網路公司從事產品經理工作,有很多複雜系統的構建實踐經驗。

本文原創發布於人人都是產品經理。未經許可,禁止轉載。

相關焦點

  • 網際網路正在失去記憶 | 人人都是產品經理
    因為推薦算法會過濾掉這些缺乏時效性的內容,在當下的內容平臺,如果內容不在24h甚至更短的時間被及時曝光並引發互動,那麼基本就不會再被分發了。這也就意味著,即便網際網路已經是當下最迅捷的信息存儲媒介和信息傳遞媒介,但記憶信息保存和傳遞依然顯得奢侈,在當下的時代背景下,與其他新熱內容格格不入,被徹底掃進了歷史垃圾堆。
  • AI產品經理必懂算法:k-近鄰(KNN)算法
    作為想在AI領域長期發展的PM同學來說,對算法有一個初步、通識的了解是非常有必要的。今天我們就從一個最為簡單、易懂的「k-近鄰(KNN)算法」聊起,KNN屬於監督學習算法,即可以用於分類,也可以用於回歸,後續還會逐步為大家介紹一些常用的其他算法。
  • 人人都是產品經理App體驗報告及改進建議
    產品概況背景介紹人人都是產品經理社區是中國最大、最活躍、最具人氣產品經理學習、交流、分享平臺。社區目前擁有300萬忠實粉絲,其中產品經理佔比50萬, 中國75%的產品經理都在這裡。產品經理這款APP是繼Web端之後人人都是產品經理社區推出的移動端產品,更加便於資訊信息的獲取以及產品經理之間的交流學習。產品簡介產品經理這款App主要以業界資訊動態,產品的互動設計運營等相關的文章為主,也有著關於行業招聘,職場攻略的文章,是一款將產品經理日常工作的方方面面全部涵蓋進去的App。
  • 數據分析實戰|人人都是產品經理網站(上篇):平臺視角
    乾貨滿滿的上篇,不僅僅是一篇數據分析,相信你將對人人都是產品經理的網站和發展會有新認識,歡迎指導交流~起因看了幾年的人人都是產品經理(以下本文中簡稱人人),從來只是個看客和學習者。最近因為比較閒,也在總結這幾年來的工作心得。近一個月前終於有了第一次投稿,如何通過小程序和微信社群來構建產品運營體系?
  • | 人人都是產品經理
    現在搞AI的公司,不管用什麼樣的算法,都想讓自己跟深度學習扯上點關係,因為這樣好像顯得逼格夠高。目前比較前沿的語音交互、計算機視覺等,就連神壇的Alpha Go的算法都是用深度學習。那究竟深度學習是什麼?到底有多強大?要怎麼實現?本文就跟大家一起討論下。
  • 機器學習|特徵工程 - 人人都是產品經理
    簡單來說就是算法的前期處理階段,經過特徵工程處理後的數據是無法直接通過肉眼辨別處理的好換,只有通過算法的結果反推特徵工程處理的好壞,如果模型任何效果不好,任何一個模型的效果都不好,八成是特徵工程不好,需要重新做特徵工程。
  • 產品經理必備之常用需求挖掘的7個方法
    作者對產品經理常用的需求挖掘的方法進行了梳理總結,並結合相關案例進一步加深了對需求分析的理解。為什麼我要說常用需求挖掘方法是產品經理必備的知識?在《俞軍產品方法論》一書中提到產品經理需要為用戶創造價值,在我看來產品經理只有通過解決用戶的問題進而滿足用戶的需求才能不斷為用戶創造價值。
  • 協同推薦算法沒有這麼複雜,真的
    個性化推薦基本上是由兩個策略算法來進行演變的,一個是基於數據挖掘的關聯分析推薦,一個是基於協同過濾的方法。筆者將重點介紹什麼是協同過濾算法以及細分下的算法類型。John之前寫了一篇關於電商中的搜索和關聯推薦策略的文以及一篇《產品經理,如何理解並應用策略?》。有些讀者找到我說:太虛啦。
  • 競品報告 | 模板讓競品分析一文不值 | 人人都是產品經理
    競品分析報告是一份具有實際參考價值的導向性手冊,但是現在很多的報告,真正有效信息都太少。既無參考價值也不具有導向性,通篇都是定式模塊以及表面信息地堆徹,就像寫的八股文。
  • 微信產品經理:我的產品之器——Sketch
    感謝覃超推薦過來與讀者們一同分享。John的產品之器系列最近會持續更新,產品經理們可以繼續關注雷鋒網,或者移步其知乎。最近看知乎的時候發現了一篇很棒的文章,特地拿過來與大家分享,尤其推薦給產品經理或想成為產品經理的你。以下是原文:算上創業,我做產品差不多三年。我一直在問自己,做產品經理最重要的特質是什麼?
  • - 人人都是產品經理
    這些都是前期分析數據的關鍵產出,而「提升分享率能夠提升DAU和時長」是一個假設,需要實驗驗證。小結這個實驗雖小,但是它背後關聯到最核心的增長目標。實驗效果的評估,我們也需要關注到這些「結果指標」,而不僅僅是分享按鈕的點擊率、分享完成率、分享的回流率等等「過程指標」。
  • 數據產品經理之數據分析與挖掘
    其中,作為數據產品經理必備的專業知識之一的數據分析可以分為廣義的數據分析和狹義的數據分析,廣義的數據分析就包括狹義的數據分析和數據挖掘,人們常常提到的數據分析是指狹義的數據分析,數據挖掘和數據分析都是從數據中提取一些有價值的信息,但互相的側重點又有所不同。
  • AI產品經理必修——揭開算法的面紗(餘弦定理)
    餘弦定理作為初中課本就學過的知識,AI產品經理將會把它運用到相似度計算當中。在數據採集及大數據處理的時候,數據排重、相似度計算是很重要的一個環節,由此引入相似度計算算法。但你知道我們在初中課本中學過的餘弦定理是如何完成相似度計算的嗎?要揭開謎底,我們先來「三步走」。一、TF-IDF單文本詞彙頻率/逆文本頻率值1.
  • 爆款產品打造公式 | 人人都是產品經理
    一、爆款產品介紹本文一共會介紹10款爆款商品,涉及電子產品、個護產品、3C周邊等,對於爆款商品我的定義有如下理由:A 在銷量上至少突破10萬臺,10萬臺的出貨量對於手機這類產品來說不算什麼,但是對於一般消費級硬體產品來說,已然是一個非常不錯的成績。B 在多個不同類型的渠道進行銷售曝光,渠道覆蓋率較高。
  • AI產品經理的入門必修——概念篇
    四、算法需要懂多少?確認算法的流程通常是由產品經理和算法工程師共同完成,包含:需求確定 -> 算法設計 -> 算法討論 -> 算法確認 -> 算法驗收 -> 持續改進。算法模型的選擇和訓練是個繁瑣且複雜的過程,依賴於具體所解決問題的複雜程度。產品經理除了要明確定位要解決的核心問題,還需要了解模型訓練的整個流程。很多人會說產品經理不需要了解這麼多,不是還有算法工程師嗎?
  • 地圖服務App分析報告 | 人人都是產品經理
    總體滲透率達61.5%高德地圖和百度地圖雙雄爭霸,高德春節後滲透率躍居第一名並在5月份達到34.9%高德地圖以3184.1萬的DAU均值位列市場第一高德地圖月均日新增用戶數穩步上漲,5月達267.2萬;百度地圖5月則有所回落湖南人民愛高德,上海群眾喜百度超過6成的地圖服務app用戶為男性,69.2%的用戶為16-35歲區間地圖服務app的安卓手機用戶中,OPPO手機佔比26.0%,排名第一一、行業介紹
  • 推薦算法改版前的AB測試 | 實驗設計
    編輯導語:所謂推薦算法就是利用用戶的一些行為,通過一些數學算法,推測出用戶可能喜歡的東西;如今很多軟體都有這樣的操作,對於此系統的設計也會進行測試;本文作者分享了關於推薦算法改版前的AB測試,我們一起來看一下。
  • 【人人早報】第346期:2014年中國產品經理職業發展報告
    早報導語近幾年,人人都是產品經理的口號喊的越來越響,越來越多的人加入到產品經理這一崗位。人人都是產品經理社區成立4年以來,一直服務於中國的產品經理,結合我們這幾年對產品經理行業的分析和認識,為大家整理出2014年度產品經理職業發展報告。新的一年,重新出發。早報雞湯圓規為什麼可以畫圓?因為腳在走,心不變。你為什麼不能圓夢?因為心不定,腳不動。
  • 數據分析必備——統計學入門基礎知識 - 人人都是產品經理
    但是,統計學的知識包括了圖形信息化、數據的集中趨勢、概率計算、排列組合、連續型概率分布、離散型概率分布、假設檢驗、相關和回歸等知識;對於具體的知識點,本文就不一一介紹了,感興趣的同學請參考《深入淺出統計學》、《統計學:從數據到結論》等等專業書籍。統計學分為描述性統計學和推斷性統計學。
  • AI產品經理的入門必修課(4)——知識圖譜
    編輯導語:通過知識圖譜,不僅可以將網際網路的信息表達成更接近人類認知世界的形式,而且提供了一種更好的組織、管理和利用海量信息的方式;本文作者分享了關於AI產品經理的知識圖譜簡介以及利用,我們一起來了解一下。