“猜你喜歡”是怎么產生的?

8 評論 22169 瀏覽 198 收藏 8 分鐘

在百度百科大致介紹了推薦算法,這是一個很有意思的人工智能(artificial intelligence)。想想看,計算機能夠根據大數據較為精確地了解人們的喜好、預測可能的結果,那如果輸入人類的表情、內心與行為方式給機器人,它是不是也就能像人一樣進行思考和對話呢?

目前的科技已部分地完成了這種可能。下面想介紹下小編個人對推薦算法的淺薄之見,也是一個深入學習、認真思考的開篇。

推薦算法的Base可以分三類:用戶性質、對象性質、用戶與對象的交互過程。用網上的話來說,就是以人為本、以物為本和協同過濾(我喜歡稱之為“聯動”)。這三類算法并不會孤立存在,一般會交錯切換或者加權共生,意思就是會綜合起來使用或者在不同場景使用不同方法。我把它們單一的存在,稱為“一度推薦”;綜合在一起時,稱為“二度推薦”。

首先說說“一度推薦”。

第一類叫基于用戶性質的推薦,可以說是用戶與用戶的交互過程,具體來說,就是根據用戶的label、喜好等個性來建立一個“同好會”。同好會也有分層,低層的只對應一個關鍵字詞(tag),高層的會對應多個tag,故每個用戶會有N個同好會,越高層聯系越緊密。在推薦的時候,根據分層高低來進行前后排序。說白了,高層產生于低層,低層只是質變之前的量變,可以不作他用。

第二類叫基于對象性質的推薦,可以說是對象與對象的交互過程,根據對象(產品/內容)的本身相似度進行同類推薦,這就包括作用、場景、品牌、價格、目標用戶、label等tag,在用戶搜索瀏覽某些tag時,系統會據此來進行相應推薦,推薦排序可以是以加權算法計算的相似度高低。例如,A與B-Z均有關聯,但要做推薦,那么簡化版的計算公式為相似度=tag1*權重1+tag2*權重2+…+tagN*權重N,所得結果按高低排序。

第三類叫用戶與對象的交互過程,根據用戶顯式或隱式的行為,比如搜索、瀏覽、關注、收藏、分享、下載、評價等加強的行為,或者取關、刪除、拉黑、秒關等減弱的行為,還有關系傳遞(同類用戶也看過B、買物品A的人80%的也買了B)。其中,根據用戶不同的行為及展現出的喜好的強弱,進行權重的加減。另外我想到的用戶二次行為,也要加入到運算中,比如推薦后主動瀏覽、多次瀏覽等。除了這些用戶行為,系統也可以進行預測型行為來進一步提高推薦準確度,比如消息推送后點開鏈接、“換一組”的tag等。此類算法有幾個經典的,例如余弦相似度、泊松相關系數等,稍后會一一說明。

這里有幾種最主要的推薦算法供大家了解,因為小編數學一般,不能很深入了解,故寫得較簡略。

一,余弦相似度和修正余弦相似度,公式如下(截圖來自百度百科):

屏幕快照 2016-08-28 07.43.26

將向量根據坐標值,繪制到向量空間中,求得他們的夾角,并得出夾角對應的余弦值。余弦值的范圍在[-1,1]之間,值越趨近于1,代表夾角越小,兩個向量的方向越一致,相似度也越高。

修正余弦相似度是為了加入取關、刪除、低評價等影響相似度的用戶反向行為,也算是對余弦相似度缺點的修正

二,潛在因子(Latent Factor)算法,用戶-潛在因子矩陣Q(用戶多個tag的關注喜愛度)和對象-潛在因子矩陣P(對象多個tag的關聯包含度),用矩陣表示即為:R=QP,也是值高者勝。(本算法整理自知乎上的回答@nick lee

三,Pearson相關系數是用來衡量兩個數據集合是否在一條線上面,它用來衡量定距變量間的線性關系,公式如下:

屏幕快照 2016-08-28 07.45.15

通常情況下通過以下取值范圍判斷變量的相關強度:

  • 0.8-1.0 極強相關
  • 0.6-0.8 強相關
  • 0.4-0.6 中等程度相關
  • 0.2-0.4 弱相關
  • 0.0-0.2 極弱相關或無相關

此外,還有一種我覺得特別有意思的推薦算法,可稱之為互動的生態圈型,也就是UGC和官網的聯動推薦。目前算法主要是官方來主導的,基于其背后的大數據系統,但用戶參與很少,基于用戶的social性質,這種生態圈型的算法會成為一種趨勢,用戶可以自行建立電臺、社區等個性化“文件夾”,進行用戶之間的相互推薦,特別適用于電商、娛樂型產品,淘寶的社區、微淘都具有此類屬性。具體的方式可以是基于用戶之間的關聯,推薦同類用戶的個人“文件夾”;基于對象之間的關聯,推薦含有相同tag的個人“文件夾”,鼓勵和引導用戶貢獻內容,加強社交屬性,增強用戶歸屬感和成就感,增加用戶黏性,這種知乎就做得很好,雖然不至于主動推薦,但專為用戶開放一個入口,可以接觸到可能感興趣的他人“文件夾”。

出現的疑問一:如何避免推薦的單一化?解決方式可以是推薦用戶沒有加強或減弱行為下的tag,進行熱門推薦、換一組形式的tag。在推薦比例上,遵循推薦數量為強關聯:中等關聯:弱關聯=4:2:1,。

出現的疑問二:如何解決用戶冷啟動的問題?解決方式可以是排行榜、熱門推薦等,也可以在最初讓用戶選擇tag和拒絕部分tag,進行初步推薦,在后續用戶行為增加后再進行精細化推薦。

以上是從個人興趣點出發,僅為拙見。

 

作者:小喬,公眾號:亂入花間化綠葉。產品小白一枚,希望通過這種每周一次深入思考總結的方式,促進自己的成長,走出從0到1到無窮的產品之路

本文由 @小喬 原創發布于人人都是產品經理。未經許可,禁止轉載。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 看不懂啊

    來自北京 回復
  2. 那如何確定不同元素的向量坐標?

    來自北京 回復
  3. ??

    來自北京 回復
  4. 不懂編程,不懂數據挖掘,這些就只能止步于理解層面……

    回復
  5. 好生澀啊

    回復
  6. 啊…… 看不懂

    來自四川 回復
    1. 額總之就是基于物與物之間或人與人之間的相似性,通過復雜一點的算法,做出的推薦。我覺得算法究竟是怎樣的不必懂,只需要看到算法背后的邏輯就行。

      來自北京 回復
    2. 看到算法層面確實有些看不懂了,請教下,作為產品,在進行智能化產品設計時,對算法不懂的話是不是阻礙比較大?

      來自上海 回復