作為產(chǎn)品經(jīng)理,不懂一點(diǎn)個(gè)性化推薦原理,怎么行?

11 評(píng)論 34747 瀏覽 299 收藏 20 分鐘

在之前的文章《針對(duì)大眾點(diǎn)評(píng)V10改版的一些看法》里面提到要想提高用戶對(duì)內(nèi)容的點(diǎn)擊率,可以通過算法來實(shí)現(xiàn)個(gè)性化推薦。具體到實(shí)操階段,雖然主要涉及到算法,但作為一名產(chǎn)品經(jīng)理還是有必要了解的,為此我最近梳理出個(gè)性化推薦相關(guān)內(nèi)容,不足之處,歡迎大家指正和討論。

1. 為何要做個(gè)性化推薦

個(gè)性化推薦,一方面從用戶角度,可以基于用戶特征過濾掉“無效”物品/信息,推薦符合用戶口味的物品/信息,從而提升用戶體驗(yàn),進(jìn)一步也增加用戶點(diǎn)擊率,從而為轉(zhuǎn)化提供更多的可能性;另一方面從系統(tǒng)的角度,也可以讓更多長尾的物品/信息被曝光,從而最大效率的利用資源。如下圖所示,可以看出好的個(gè)性化推薦比簡單熱門排序算法有更好的的有效信息覆蓋度(圖中斜線面積)。

2. 推薦算法的前提——斷物識(shí)人

通常我們說物以類聚、人以群分,推薦算法也是基于用戶喜好物品/信息的相似性和同類用戶興趣相同的原理來推薦,這里就涉及到人一物人—人—物的關(guān)系,為了可量化人與物以及人與人的關(guān)系,我們需要做的就是給提煉出人和物的特征——即給人和物打上標(biāo)簽,通過標(biāo)簽抽象出事物更具有表意性、更為顯著的特點(diǎn),然后通過標(biāo)簽進(jìn)行匹配。

2.1 給物打上標(biāo)簽

標(biāo)簽不只是簡單的給物品/信息分類,而是代表著分發(fā)給不同的用戶群體,比如運(yùn)動(dòng)、健身類視頻就可以在標(biāo)簽中加上“球迷”“健身達(dá)人”等,有關(guān)動(dòng)漫等二次元的內(nèi)容,也可以加入些類似“宅男”“蘿莉”等標(biāo)簽。

這里補(bǔ)充一下標(biāo)簽和分類的區(qū)別,分類是樹狀的,是自上而下依次劃分的。在分類體系里,每個(gè)節(jié)點(diǎn)都有嚴(yán)格的父子關(guān)系,在兄弟節(jié)點(diǎn)層都具有可以被完全枚舉的屬性值,如天貓的商品服務(wù)分類(下圖)。應(yīng)用分類時(shí)必須考慮分類權(quán)威性和信息完備性問題,避免因?yàn)樽庸?jié)點(diǎn)覆蓋不全或分類錯(cuò)誤導(dǎo)致的認(rèn)知問題。

標(biāo)簽是網(wǎng)狀的,更強(qiáng)調(diào)表達(dá)屬性關(guān)系而非繼承關(guān)系, 只有權(quán)重大小之分,不強(qiáng)調(diào)包含與被包含關(guān)系。這就使得相對(duì)于分類而言,標(biāo)簽的靈活性更強(qiáng)。 在權(quán)威性方面,標(biāo)簽是弱化的,每個(gè)用戶都可參與進(jìn)來,基于自己的偏好貼標(biāo)簽,從而借助規(guī)模效應(yīng)實(shí)現(xiàn)對(duì)信息表意完備性的覆蓋。因此,在設(shè)計(jì)系統(tǒng)時(shí),可以先基于產(chǎn)品場(chǎng)景快速覆蓋主要標(biāo)簽,再結(jié)合標(biāo)簽集合的使用頻次、專家建議等因素逐步將部分入口收斂到樹狀的分類體系中來。

通過PGC和UGC可以獲取物品/信息標(biāo)簽。例如人人都是產(chǎn)品經(jīng)理上文章通過審核后,官方會(huì)在文章下面會(huì)打上相關(guān)標(biāo)簽。有的產(chǎn)品除給物品/信息打上標(biāo)簽之外,還會(huì)以分值代表這一標(biāo)簽的表征程度,如音樂推薦引擎潘多拉(Pandora)的音樂基因工程中,歌曲體系被抽離出450個(gè)標(biāo)簽,細(xì)化到如主唱性別、電吉他失真程度、背景和聲類型等。每一首歌曲都會(huì)經(jīng)由工作人員耗時(shí)二三十分鐘,有選擇性地標(biāo)注一些標(biāo)簽,并以0~5的分值代表這一標(biāo)簽的表征程度。

而在豆瓣,給電影的標(biāo)簽的是普通網(wǎng)友產(chǎn)出(如下圖所示)。群體的力量為豆瓣積累了大量具有語義表意性的標(biāo)簽。當(dāng)然,由于用戶的多樣性和編輯的開放性,用戶標(biāo)簽系統(tǒng)需要經(jīng)過特定的清洗和歸一處理。

2.2 給用戶打上標(biāo)簽

一個(gè)用戶行為的數(shù)據(jù)集一般由一個(gè)三元組的集合表示,其中記錄{u,i,b}表示用戶u給物品i打上了標(biāo)簽b(當(dāng)然實(shí)際中會(huì)包含用戶屬性、物品屬性等,更為復(fù)雜)。給用戶提供標(biāo)簽一般有4種方法 :

  1. 給用戶推薦一個(gè)系統(tǒng)中最熱門的標(biāo)簽;
  2. 給用戶推薦物品i上最熱門的標(biāo)簽;
  3. 給用戶推薦他自己經(jīng)常使用的標(biāo)簽;
  4. 將方法2和方法3融合,通過一個(gè)系數(shù)將上面的推薦結(jié)果線性加權(quán),生成最終的推薦結(jié)果。

實(shí)際推薦過程中,為了給用戶更精確的推薦,除了用戶行為數(shù)據(jù)外,還會(huì)收集用戶基本信息、位置信息、搜索等信息建立完整的用戶畫像

3. 推薦算法原則——物以類聚、人以群分

3.1 物以類聚:基于物的相似性推薦

基于物的相似性推薦是基礎(chǔ)的推薦策略。如果你瀏覽或購買過某種類型的內(nèi)容/物品,則基于類型或標(biāo)簽給你推薦其他內(nèi)容/物品(如下圖)。以內(nèi)容推薦為例,其用于相似度計(jì)算的常見因素有:作者層面的相似性(基于訂閱或偏好關(guān)系),內(nèi)容層面的相似性(如關(guān)鍵詞、話題、類目、標(biāo)簽等)。

如果想要進(jìn)一步細(xì)化,那么可以借助TF– IDF方式給不同的標(biāo)簽設(shè)定權(quán)重,其基本思想是一個(gè)標(biāo)簽在某內(nèi)容中出現(xiàn)次數(shù)越多, 同時(shí)在所有內(nèi)容中出現(xiàn)次數(shù)越少, 越能夠代表該內(nèi)容, 那么這個(gè)標(biāo)簽的權(quán)重應(yīng)該較高,反之區(qū)分度就沒有那么高,權(quán)重較低。

以內(nèi)容/物品屬性來推薦:

(1)優(yōu)點(diǎn)

只依賴物品本身的特征而不依賴用戶的行為,讓新的物品、冷僻的物品都能得到展示的機(jī)會(huì)。

(2)缺點(diǎn)

  • 推薦質(zhì)量的優(yōu)劣完全依賴于特征構(gòu)建的完備性,但特征構(gòu)建本身是一項(xiàng)系統(tǒng)的工程,存在一定成本;
  • 基于物品或信息屬性推薦沒有考慮用戶對(duì)物品的態(tài)度,用戶的品位和調(diào)性很難得到詮釋和表達(dá)。比如,市面上關(guān)于內(nèi)容分發(fā)的書籍很多,僅從標(biāo)簽詞上很難分辨出高下。

因此,為了在推薦中更好地引入受眾反饋因素,提出了基于用戶行為的“協(xié)同過濾”概念。

3.2 人以群分:基于用戶行為的協(xié)同過濾

協(xié)同推薦是目前應(yīng)用最為廣泛的推薦機(jī)制,其基于用戶行為的特點(diǎn)使我們不需要對(duì)內(nèi)容/物品進(jìn)行完整的標(biāo)簽化分析和建模,從而實(shí)現(xiàn)了領(lǐng)域無關(guān),可以很好地發(fā)現(xiàn)用戶的潛在興趣偏好??紤]到協(xié)同過濾的方式依賴歷史數(shù)據(jù),新的用戶和新的物品會(huì)存在冷啟動(dòng)的問題,該問題筆者的《個(gè)性化推薦中不得不知道的冷啟動(dòng)問題——以內(nèi)容類產(chǎn)品為例》文章中有相關(guān)梳理。

基于用戶的協(xié)同其基礎(chǔ)思路分為兩步:

  • 第一步,找到那些與你在某一方面口味相似的人群;
  • 第二步,將這一人群喜歡的新東西推薦給你。

目前主要包括三個(gè)子類:基于用戶( User- based)的協(xié)同、基于物品( Item- based)的協(xié)同、和基于模型( Model- based)的協(xié)同。

(1)基于用戶的 CF(User CF)

基于用戶的CF的基本思想相當(dāng)簡單,通過用戶對(duì)內(nèi)容/物品的偏好找到相鄰鄰居用戶,然后將鄰居用戶喜歡的推薦給當(dāng)前用戶。下圖給出了一個(gè)例子,對(duì)于用戶 A,根據(jù)用戶的歷史偏好,這里只計(jì)算得到一個(gè)鄰居—用戶C,然后將用戶C喜歡的物品D推薦給用戶 A(如下圖):

① 發(fā)現(xiàn)偏好相同的用戶

通常用 Jaccard 公式或者余弦相似度計(jì)算兩個(gè)用戶之間的相似度。設(shè) N(u) 為用戶 u 喜歡的物品或信息集合,N(v) 為用戶v喜歡的物品或信息集合,那么u和v的相似度為:

假設(shè)目前共有4個(gè)用戶:A、B、C、D;共有5篇物品或信息:a、b、c、d、e。用戶與物品/信息的關(guān)系(用戶喜歡物品/信息),如下圖左邊所示,為計(jì)算方便,通常首先需要建立“物品—用戶”的倒排表(如下圖中間所示),然后對(duì)于每個(gè)物品,喜歡他的用戶,兩兩之間相同物品加1。例如喜歡物品 a 的用戶有 A 和 B,那么在矩陣中他們兩兩加1(如下圖右邊所示)。

計(jì)算用戶兩兩之間的相似度,上面的矩陣僅僅代表的是公式的分子部分。以余弦相似度為例(如下圖),到此,計(jì)算用戶相似度就大功告成,可以很直觀的找到與目標(biāo)用戶興趣較相似的用戶。

② 推薦物品

首先需要從矩陣中找出與目標(biāo)用戶u最相似的K個(gè)用戶,用集合S(u, K) 表示,將S中用戶喜歡的物品或信息全部提取出來,并去除u已經(jīng)喜歡的物品。對(duì)于每個(gè)候選物品i ,用戶u對(duì)它感興趣的程度用如下公式計(jì)算:

如上面的4個(gè)用戶,假設(shè)我們要給A推薦物品,選取 K = 3 個(gè)相似用戶,相似用戶則是:B、C、D,那么他們喜歡過并且A 沒有喜歡過的物品有:c、e,那么分別計(jì)算 p(A, c) 和 p(A, e),通過公式可計(jì)算出用戶 A 對(duì) c 和 e 的喜歡程度可能是一樣的,在真實(shí)的推薦系統(tǒng)中,只要按得分排序,取前幾個(gè)物品就可以了。

(2)基于物品的 CF(Item CF)

基于物品的 CF 的原理和基于用戶的 CF 類似,只是在計(jì)算鄰居時(shí)采用物品本身,而不是從用戶的角度,即基于用戶對(duì)物品的偏好找到相似的物品,然后根據(jù)用戶的歷史偏好,推薦相似的物品給他。下圖給出了一個(gè)例子,對(duì)于物品A,根據(jù)所有用戶的歷史偏好,喜歡物品 A的用戶都喜歡物品C,得出物品A和物品C比較相似,而用戶C喜歡物品A,那么可以推斷出用戶C可能也喜歡物品 C。

ItemCF的算法結(jié)構(gòu)基本與UserCF的算法類似(如下圖),只不過由對(duì)人的相似度改為了物品之間的相似度,這里不做過多說明了。

N(i)和N(j)表示喜歡物品i的用戶數(shù),ItemCF的算法結(jié)構(gòu)基本與UserCF的算法類似,這里不做過多說明了。

(3)基于模型的協(xié)同

基于模型的協(xié)同過濾推薦就是基于樣本的用戶喜好信息,訓(xùn)練一個(gè)推薦模型,然后根據(jù)實(shí)時(shí)的用戶喜好的信息進(jìn)行預(yù)測(cè)推薦。

① 建立好評(píng)分規(guī)則

比如,對(duì)于一篇內(nèi)容而言,可能會(huì)有以下行為:

② 算出用戶對(duì)物品或信息的偏好

基于模型的協(xié)同最常見的方法為矩陣分解(Matrix factorization),其示意圖如下圖左邊。矩陣分解通過把原始的評(píng)分矩陣R分解為兩個(gè)矩陣相乘,只考慮有評(píng)分的值,訓(xùn)練時(shí)不考慮missing項(xiàng)的值,如下圖右邊所示。其背后的核心思想,找到兩個(gè)矩陣,它們相乘之后得到的那個(gè)矩陣的值,與評(píng)分矩陣R中有值的位置中的值盡可能接近。這樣一來,分解出來的兩個(gè)矩陣相乘就盡可能還原了評(píng)分矩陣R,因?yàn)橛兄档牡胤?,值都相差得盡可能地小,那么missing的值通過這樣的方式計(jì)算得到,比較符合趨勢(shì)。具體案例可參考知乎上關(guān)于網(wǎng)易云音樂的歌單推薦算法的回答。

4. 個(gè)性化推薦系統(tǒng)的架構(gòu)

個(gè)性化推薦引擎架構(gòu)主要包括三部分,如下圖所示:

  1. 模塊A部分負(fù)責(zé)從數(shù)據(jù)庫或緩存中拿到用戶行為數(shù)據(jù),通過分析不同行為,生成當(dāng)前用戶的特征向量(即標(biāo)簽),如果使用非行為特征,就不需要行為提取和分析模塊了,該模塊的輸出就是用戶特征向量。
  2. 模塊B部分負(fù)責(zé)將用戶的特征向量通過特征- 物品或信息相關(guān)矩陣轉(zhuǎn)化為初始推薦物品或信息列表。
  3. 模塊C部分負(fù)責(zé)對(duì)初始的推薦列表進(jìn)行過濾、排名等處理,從而生成該引擎的最終推薦結(jié)果。

此外,有的推薦系統(tǒng)會(huì)將用戶行為拆分為數(shù)據(jù)和事件,其中,數(shù)據(jù)的時(shí)間敏感度更低,事件的時(shí)間敏感度更高?;跁r(shí)間維度,會(huì)在推薦系統(tǒng)中增加一個(gè)近線層,比如,我在大眾點(diǎn)評(píng)上輸入了野郊公園后,如果希望及時(shí)更新用戶的推薦列表,那么這次觀看動(dòng)作就會(huì)被視作事件型進(jìn)入近線層,以更快地更新用戶畫像數(shù)據(jù),因此短期內(nèi)我會(huì)收到公園甚至是該公園相關(guān)推薦,但是過了一段時(shí)間后,公園的頻度就會(huì)少很多。

5. 小結(jié)

一說到個(gè)性化推薦,大家都會(huì)覺得這是技術(shù)來主導(dǎo)的事情,但是通過前面對(duì)個(gè)性化推薦的了解后, 作為產(chǎn)品經(jīng)理,還是有不同的優(yōu)化空間和迭代導(dǎo)向。

5.1 完善用戶畫像

完善用戶畫像既可以通過盡可能多的外部渠道數(shù)據(jù)塑造用戶來實(shí)現(xiàn),也可以借助產(chǎn)品設(shè)計(jì)和運(yùn)營活動(dòng)引導(dǎo)用戶多沉淀行為來實(shí)現(xiàn)。以支付寶為例,一次過年的集五?;顒?dòng),就讓它收集了數(shù)以億計(jì)的關(guān)系鏈數(shù)據(jù)。而緊隨 其后的螞蟻森林、螞蟻莊園等輕社交游戲,間接地豐富了用戶的線下支付數(shù)據(jù)、用戶的健康數(shù)據(jù)等。

5.2 完善規(guī)則系統(tǒng), 優(yōu)化用戶使用體驗(yàn)

一方面,規(guī)則是最快的上線生效途徑,可以用于糾偏、提權(quán)等操作。比如最新的網(wǎng)絡(luò)語舉個(gè)例子,在《中國有嘻哈》開播之前,大眾是不知道紅花會(huì)是什么的。這時(shí),產(chǎn)品經(jīng)理就該進(jìn)行規(guī)則干預(yù)了,標(biāo)注紅花會(huì)是一個(gè)嘻哈團(tuán)體。

另一方面,需要認(rèn)識(shí)到短期的干預(yù)是應(yīng)該逐步被長期的機(jī)制所替換的。我們應(yīng)該下力氣解決系統(tǒng)的滯后性, 讓它能夠更快速地實(shí)現(xiàn)搜索意圖理解的進(jìn)化,比如監(jiān)控全網(wǎng)產(chǎn)出的新物品或信息,分析其中的共現(xiàn)詞匯特點(diǎn)。

5.3 根據(jù)推薦的結(jié)果優(yōu)化推薦結(jié)果

評(píng)測(cè)推薦系統(tǒng)的指標(biāo)有:

  • 用戶滿意度;
  • 預(yù)測(cè)準(zhǔn)確度;
  • 覆蓋率;
  • 多樣性;
  • 新穎性;
  • 驚喜度;
  • 信任度;
  • 實(shí)時(shí)性;
  • 健壯性和商業(yè)目標(biāo)。

因此,基于不同的場(chǎng)景,在使用推薦系統(tǒng)后,產(chǎn)品需要去親自體驗(yàn)并收集各方面反饋,將反饋同步給技術(shù),并基于反饋,嘗試不同推薦方式共同作用,做到查遺補(bǔ)缺,找到更有的推薦方案。

 

作者:瑪麗娟,微信公眾號(hào):瑪麗娟娟有話說

本文由 @瑪麗娟 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自 Pexels,基于 CC0 協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 你好,文中的發(fā)現(xiàn)偏好相同的用戶的中間圖片是錯(cuò)誤,d、e物品喜歡的用戶只有D用戶

    來自廣東 回復(fù)
  2. 大學(xué)學(xué)的內(nèi)容都還給老師了,有關(guān)算法,矩陣,向量這些內(nèi)容請(qǐng)問該如何快速撈起呢?

    來自浙江 回復(fù)
    1. 高中數(shù)學(xué)課本了解下 ?? ??

      來自廣東 回復(fù)
  3. 不錯(cuò)哦

    回復(fù)
  4. 在學(xué)校期間看這個(gè)都沒有現(xiàn)在吃力

    回復(fù)
    1. 贊同,深有體會(huì) ??

      來自浙江 回復(fù)
  5. 你好,文中的發(fā)現(xiàn)偏好相同的用戶的中間圖片是錯(cuò)誤,c物品喜歡的用戶有ABCD,而不是只是BD。

    來自浙江 回復(fù)
    1. 應(yīng)該是A物喜歡的是AC,而不是AB,哈哈,我改一下

      來自上海 回復(fù)
    2. 辛苦

      來自臺(tái)灣 回復(fù)
  6. ?? 特別棒!學(xué)習(xí)了很多

    來自北京 回復(fù)