常用推薦算法介紹

2020-12-12 人人都是產品經理

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

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. 總結

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

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

#專欄作家#

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

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

相關焦點

  • 聽說你了解深度學習最常用的學習算法:Adam優化算法?
    Adam優化算法是隨機梯度下降算法的擴展式,近來其廣泛用於深度學習應用中,尤其是計算機視覺和自然語言處理等任務。本文分為兩部分,前一部分簡要介紹了Adam優化算法的特性和其在深度學習中的應用,後一部分從Adam優化算法的原論文出發,詳細解釋和推導了它的算法過程和更新規則。
  • 算法有沒有價值觀?知乎內容推薦算法解析
    同樣是知識分享平臺,知乎倒是躲過了每一次整改,肯定有人會說是幸運,也肯定有人會從理性的角度對知乎的內容推薦和討論方式進行分析,就好像每一條知乎問答下的用戶一樣理性。  同樣是AI算法,同樣是內容推薦,知乎更側重於將關注點放在內容生產本身,對違規內容的處理速度也是極其快速。
  • 百度地圖ETA算法推薦:一場算法和道路信息之間的鬥智鬥勇
    第一步 針對時間規劃路線為了實現根據時間推演進行路線規劃,常用做法是將連續的時間點分散成多個時刻,在每一個時刻都生成一套權值,並在路線搜索過程中恰當切換不同權值,從而實現針對時間進行路線規劃。在算法選擇上,一般要考慮預處理時間、在線計算性能、路線效果等要素。
  • 機器學習十大算法都是何方神聖?
    跟我們生活息息相關的最常見機器學習算法包括電影推薦算法、圖書推薦算法。這些算法都是基於你的電影觀看記錄或圖書購買記錄來給你做推薦的。James Le在KDnuggets上發布了一篇文章,介紹了他是如何入門機器學習的。此外,他在其中摸索出十大常用的機器學習算法,並逐一進行介紹。雷鋒網編譯如下,未經許可不得轉載。如果你想學機器學習,那怎麼入門呢?
  • 輕鬆看懂機器學習十大常用算法
    通過本篇文章可以對ML的常用算法有個常識性的認識,沒有代碼,沒有複雜的理論推導,就是圖解一下,知道這些算法是什麼,它們是怎麼應用的,例子主要是分類問題。每個算法都看了好幾個視頻,挑出講的最清晰明了有趣的,便於科普。 以後有時間再對單個算法做深入地解析。
  • 5分鐘弄懂的五大常用算法之「分治法」,以C語言歸併排序算法為例
    分治算法,顧名思義就是「分而治之」,即把規模較大的複雜問題拆分為若干規模較小的類似子問題,並逐個解決,最後再將各個子問題的解決結果合併,得到原始問題的結果的方法。這個技巧是很多高效算法的基礎,例如快速排序算法、歸併排序算法、快速傅立葉變換等等。
  • ...媒體算法解析:Facebook、YouTube、Twitter如何利用算法推薦內容?
    作者Ste Davies (經授權轉載自「騰訊媒體研究院」)在如今的世界中,算法已經成為了我們日常生活的核心。當你進行網絡搜索,滾動瀏覽社交媒體上的信息,或者從Spotify上接收到歌曲推薦時,實際上你正在被算法指導,甚至算法比你本人更了解你的消費習慣。
  • 視頻推薦、畫質修復、廣告植入,首屆「馬欄山杯」國際音視頻算法...
    近年來,隨著深度學習的崛起,人工智慧技術在眾多領域都有了突破性進展:語音識別準確率不斷刷新記錄;結合了神經網絡的語音合成技術應用越來越廣泛;融合了強化學習的推薦算法在各大視頻平臺相繼大規模落地。人工智慧,為音視頻領域應用創新帶來了無限可能。
  • 算法左右歌曲推薦,而不是用戶喜好?
    編輯導語:如今,不少的音樂類軟體比如:QQ音樂、網易雲音樂,甚至短視頻類的抖音,都會向用戶推薦可能喜歡的歌曲/背景音樂。在這個大數據時代,算法支配著受眾,因此歌曲的推薦也基於算法先行,這就導致了用戶聽到的歌曲和喜好偏離,用戶聽到的都是同質化的、略顯「枯燥」的音樂。
  • 個性化新聞推薦系統中算法把關的思考
    [2]隨著算法技術在個性化新聞推薦系統的應用,「把關人」和「把關模式」也悄然發生了變化。然而,網際網路的傳播特性導致傳者與受者的界限模糊,傳統的把關人角色弱化,個性化新聞推薦中算法技術充當了主要把關人的角色,把關權力由人工編輯轉向算法技術,把關的標準也相應發生改變。
  • 你了解壓縮算法嗎?常見的壓縮算法都在這裡了
    壓縮算法的定義上面介紹了文件的集合體其實就是一堆字節數據的集合,那麼我們就可以來給壓縮算法下一個定義。壓縮算法(compaction algorithm)指的就是數據壓縮的算法,主要包括壓縮和還原(解壓縮)的兩個步驟。
  • 機器學習十大算法都是何方神聖?看完你就懂了
    跟我們生活息息相關的最常見機器學習算法包括電影推薦算法、圖書推薦算法。這些算法都是基於你的電影觀看記錄或圖書購買記錄來給你做推薦的。James Le 在 KDnuggets 上發布了一篇文章,介紹了他是如何入門機器學習的。此外,他在其中摸索出十大常用的機器學習算法,並逐一進行介紹。雷鋒網編譯如下,未經許可不得轉載。如果你想學機器學習,那怎麼入門呢?
  • 飛豬旅行推薦算法應用實踐
    首先介紹一下,在飛豬 APP 中哪些是推薦場景。如飛豬 APP 首頁中間位置的「百億補貼」和「特價機票」是兩個推薦的場景,主要給用戶做特價類相關商品的推薦。最上層是服務,服務整個「猜你喜歡」及前面所說的各種推薦模塊。用戶畫像是個有點老生常談的問題,但在旅行場景,我們把用戶畫像作為一個非常重要的角色去做。正如前面所介紹的,整個用戶有幾個通用的問題,低頻,冷啟動,周期長。
  • 騰訊廣告:廣告場景下有哪些視覺算法應用?
    本次總決賽現場,騰訊廣告高級應用研究員石瑞超為大家帶來了題為《廣告場景下的 AI 視覺算法應用》的演講。視覺算法應用於廣告創意的三個階段包括廣告創建、廣告審核及廣告播放。研究員石瑞超為我們展示了 AI 視覺算法在解決廣告落地中痛難點的優勢與應用方法。以下是他的分享內容,雷鋒網 AI 科技評論做了不改變原意的整理與編輯。
  • YouTube視頻推薦算法:5個非常有意思的細節
    YouTube會在新視頻中分享有關其搜索和推薦算法工作原理的更多詳細信息,該視頻將幫助公司回答用戶的問題。據悉,YouTube小組在本月初發布了類似的視頻,儘管其最新視頻回答了一系列全新問題。有很多內容需要討論,所以讓我們一起看看吧。
  • 數字新材料:設計師還得懂算法?
    圖源:Maximillian Piras算法必備數字產品顯示的大部分內容都是由算法負責的,如社群摘要feed、購物車建議、電子郵件草稿的常用語推薦TikTok的創新界面人工智慧正在按照黃氏定律飛速發展,出現了界面更友好的設計解決方案,以增強提供算法可見性的範式。今天最神秘的算法就是TikTok的算法,利用其界面快速解鎖用戶資料庫,以獲得競爭力極高的內容推薦。出人意料的是,它卻犯了設計的一大忌:增加摩擦。
  • 怪物獵人世界常用藥品都有哪些 常用藥品推薦
    導 讀 「《怪物獵人世界》常用藥品推薦 常用藥品都有哪些 」是小編為大家推薦的文章。
  • 常用的相似性度量算法(原理,實現,優缺點,適用場景...
    內容導讀對相似性算法的了解起源於最近在做 使用協同過濾原理 的推薦系統中, 基於鄰域的推薦算法 (User-Based CF和 和 Item-Based CF)需要估算不同樣本之間的 相似性度量(Similarity Measurement) ,這也是機器學習中在做 分類 的時候的一個常見場景。
  • 反思Youtube 算法:個性化內容推薦能毀掉你的人格
    人工智慧算法驅動下的推薦系統世界上有15億的YouTube用戶,遠遠超過了擁有電視的家庭數量。他們觀看的視頻是由算法塑造的,這個算法掃描並排列了數十億的視頻,來確定用戶「接下來」的20個視頻片段,這些視頻都與之前的視頻有關聯,從統計數據上來看,也極有可能是為了讓人著迷。
  • 簡單介紹一下最近爆火的算法穩定幣
    幣圈一天不知道要發出多少個幣,網上對於各種幣的介紹卻很少,最多幾句話,官網白皮書都是英文加花裡胡哨的東西完全看不懂,可以說是瞎JB炒。現在DEFI經過幾個月,越玩越高級了,更加需要技術基礎和英文水平,大牛默默發財中,很少會介紹什麼,讓別人學會了自己就不掙錢了,所以也只有我這樣的半桶水才會出來分享一下。