tft每日頭條

 > 科技

 > 推薦系統為客戶推薦商品自動完成

推薦系統為客戶推薦商品自動完成

科技 更新时间:2024-08-11 05:21:56

編輯導語:相信大家都聽說過協同過濾算法,那到底什麼是協同過濾,有何用處。本文将為大家介紹推薦系統召回策略中基于協同過濾算法的召回,希望你能對此有更深的理解,一起來看看。

推薦系統為客戶推薦商品自動完成(推薦策略産品經理必讀系列-第四講推薦系統的召回)1

前言:上一篇為大家介紹了推薦系統召回策略裡面基于規則的召回,本篇将為大家介紹推薦系統召回策略中基于協同過濾算法的召回。

一、協同過濾算法綜述

大家應該在很多場合或者文章中都聽到過協同過濾算法,首先到底什麼是協同過濾(Collaborative Filtering),它的核心思想是什麼。

何為協同:

協同字面意思就是大家在一起互相配合來做成某一件事情。在協同過濾算法裡指的就是利用群體的數據去尋找規律,去尋找物料與物料,用戶與用戶之間的相似性。

何為過濾:

過濾字面意思就是把不符合條件的東西給過濾掉。在協同過濾算法裡指的就是當我們基于物料相似度或者用戶相似度進行推薦時,需要把那些相似性很低的物料和用戶過濾掉。

那“協同 過濾”:其實就是利用群體的數據去尋找規律,去尋找物料與物料,用戶與用戶之間的相似性,然後再把相似性很低物料和用戶過濾掉,挑選出相似度最高的物料和用戶。

協同過濾算法的産生是推薦算法1.0時代“基于内容的标簽召回”算法後,人們開始利用數據本身探讨用戶與用戶,物料與物料之間的關聯性,從而演化出來了協同過濾(Collaborative Filtering)算法。

标志性的算法就是基于用戶的協同過濾算法,該算法在1992年被提出。協同過濾算法可以說是推薦領域最經典的算法了。甚至可以說協同過濾算法的出現,代表了推薦系統的出現。協同過濾算法一共分為兩個大的方式:基于鄰域的方法和基于模型的方式。

推薦系統為客戶推薦商品自動完成(推薦策略産品經理必讀系列-第四講推薦系統的召回)2

下面我們将詳細展開介紹:

二、基于領域的方法

2.1 基于用戶的協同過濾(User-Based)

AB用戶擁有相同的背景和興趣,基于用戶之間的相似性,為A推薦用戶B感興趣且用戶A沒有接觸過的内容。比如大學時候,我們都會問同專業的學長學姐應該選什麼課。這個就是學長學姐和我們有一樣的專業背景,基于他們過去經驗上過的課,一定可以推薦出哪些考試簡單給分又高的課,如果這個課很難給分又低,學長學姐們一定不會去上這個課。整個算法分為兩個大的步驟:

推薦系統為客戶推薦商品自動完成(推薦策略産品經理必讀系列-第四講推薦系統的召回)3

第一步:挖掘和目标用戶相似的用戶集合;

如何計算用戶之間的相似性,一般我們使用Jaccard系數或者餘弦相似度。具體公式如下:

推薦系統為客戶推薦商品自動完成(推薦策略産品經理必讀系列-第四講推薦系統的召回)4

上圖左側為曆史用戶浏覽商品數據,右側為計算用戶相似度的公式。用戶數很龐大,所以一般我們會設置一個K值,找出與用戶A最相似的Top K個用戶。例子中我們設置K為2,根據公式我們可以計算出與用戶A相似度最高的兩個用戶是用戶B和用戶E。

第二步:挖掘該集合中受歡迎的Item,同時目标用戶沒有接觸過的,将其推薦給目标用戶;

推薦系統為客戶推薦商品自動完成(推薦策略産品經理必讀系列-第四講推薦系統的召回)5

用戶B和E曆史浏覽過的商品中,商品d和e用戶A沒有浏覽過,需要計算用戶A對于商品d和e的興趣度。計算公式如上圖所示,我們以用戶A對商品d的興趣度舉例:( 用戶A與用戶B的相似度 * 用戶B對于商品d的興趣度 ) ( 用戶A與用戶E的相似度 * 用戶E對于商品d的興趣度 ),這裡用戶之間的相似度第一步裡面已經計算過了,用戶B & E對于商品d的興趣度,我們統一設定:如果浏覽過興趣度就為1,沒有浏覽過興趣度就為0。

實際業務中,我們可以更加細化,比如同一時間段浏覽的次數等将興趣度計算方式更加細化。最終計算出用戶A對商品e的興趣度為1.15,對商品d的興趣度為0.4,所以優先推薦商品e。

User-CF算法1992年就已經在某電子郵件的個性化推薦系統上得到了應用,關于User-CF算法的優缺點我們在介紹完Item-CF算法以後進行統一對比介紹。

2.2 基于物料的協同過濾(Item-Based)

基于物料之間的相似性,通過用戶曆史喜歡的物料,為其推薦相似的物料。這裡面的物料相似性并不是基于物料之間标簽重合度來計算相似度,Item CF是基于用戶對于物料的曆史行為數據來計算物料之間的相似度。Item-CF最早是由亞馬遜公司提出的,目前在各大互聯網公司應用都十分頻繁。

整個算法同樣分為兩個步驟:

第一步:計算商品之間的相似度;

推薦系統為客戶推薦商品自動完成(推薦策略産品經理必讀系列-第四講推薦系統的召回)6

首先我們基于用戶曆史浏覽的行為,統計兩個商品被同一用戶浏覽過的次數,比如pair(e,d)同時被3個用戶都浏覽過,那麼相似度矩陣裡面就填入3。最後我們使用餘弦相似度公式來計算商品之間的相似度。

第二步:基于目标用戶曆史浏覽行為和商品之間的相似度,為其推薦感興趣且未浏覽過的商品;

推薦系統為客戶推薦商品自動完成(推薦策略産品經理必讀系列-第四講推薦系統的召回)7

相似度計算完以後,我們需要計算用戶對這些沒有浏覽過商品的興趣度。比如我們計算用戶A對于商品d的興趣度,案例中因為一共隻出現了5個商品,隻有d和e用戶A沒有浏覽過,這裡的K值我們就設置為3,我們隻基于商品d和a,b,c之間的相似度以及用戶A對于商品a,b,c的興趣度進行計算。

實際案例中用戶A浏覽過的商品很多,和d有交集的商品也會很多,我們需要設置一個合理的K值,無法計算商品d和所有商品的相似度,再去乘以用戶A對于這些商品的興趣度。最終根據上述公式計算得出用戶A對e的興趣度為1.74,對d的興趣度為1.17。所以優先為用戶A推薦商品e。

最後我們用下面這張圖将User CF和Item CF之間的區别進行歸納:

推薦系統為客戶推薦商品自動完成(推薦策略産品經理必讀系列-第四講推薦系統的召回)8

上圖裡面有幾個核心的點需要關注。

(1)應用領域

User-CF在新聞社交網站等UGC社區使用的較多,而Item-CF在電商、電影&音樂等網站使用的較多。一方面因為新聞等網站内容更新快,使用Item-CF無法滿足時效更新的要求,另一方面新聞等網站上用戶的興趣相對粗粒度,很多用戶群體喜歡閱讀同一内容。而在電商、電影等網站上用戶興趣相對比較個性化,使用Item-CF更能夠反映用戶興趣的傳承。

(2)可解釋性

User-CF的解釋性弱于Item-CF,因為User-CF是側重于人與人之間的相似,給用戶A推薦用戶B感興趣的東西。而Item-CF是側重于基于用戶A曆史買過的商品,為其推薦相似的商品。從直觀上用戶也更願意相信Item-CF這種推薦方式。

三、基于模型的方法

協同過濾是一種思想,很多時候大家在講協同過濾時就講User-CF和Item-CF,其實協同過濾中有很大一部分甚至說當前先進的協同過濾算法都是基于模型的協同過濾。下面為大家介紹幾種常見基于模型的協同過濾。

3.1 基于圖模型(Graph-based model)

第一步:将數據由表格轉化為二分圖;

推薦系統為客戶推薦商品自動完成(推薦策略産品經理必讀系列-第四講推薦系統的召回)9

我們将表格用戶曆史浏覽過的數據轉化為Graph,左邊為用戶Node,右邊為物料Node。用戶浏覽過的物料兩個頂點之間就連一條線,頂點與頂點之間的連線我們叫做邊Edge。

第二步:基于兩個頂點之間路徑數、路徑長度及經過的節點出度判斷相關性;

推薦系統為客戶推薦商品自動完成(推薦策略産品經理必讀系列-第四講推薦系統的召回)10

比如我們計算用戶Node-A與物料Node-c和Node-e之間的相關性。首先我們統計Node-A到Node-c可以有幾條路徑,這裡面隻有一條路徑可以到達就是A—a—B—c,長度是3。而Node-A與Node-e之間一共有兩條路徑可以到達,分别是A—b—C—e和A—d—D—e,長度均為3。所以Node-A和Node-e的相關性要強于NodeA與Node-c。

同時我們再去比較同樣是兩條長度為3的路徑“A—b—C—e”,哪條路徑産生的鍊接更強了?我們分别去統計兩個路徑經過Node的出度,何為出度?

出度就是該Node對外連接幾個其他Node,比如Node-A的出度就是3。

兩條路徑經過節點的出度分别是【3,2,2,3】和【3,2,3,3】,該某個節點的出度越大代表這個節點的鍊接越多,該節點和連接的單個節點的相關性就越弱。所以路徑A—b—C—e産生的A與e的相關性要強于A—d—D—e産生的A與e的相關性。

以上就是基于圖模型的協同過濾算法。

下一篇将重點為大家介紹基于向量的召回,大家經常聽到的FM模型以及雙塔模型,大家敬請期待~

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

題圖來自 Unsplash,基于 CC0 協議

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved