前言:最近一段時間開始逐漸負責一些個性化推薦的項目,所以對推薦知識進行了一波惡補,這個過程其實是異常痛苦的,因為網(wǎng)上的知識要么過于”直白“,完全沒有借鑒意義,要么就過于偏向技術,拒人于千里之外,于是便早早立下flag,要整理一篇針對于小白推薦PM的科普文章,由于自己也是做推薦中新的不能再新的新人,故求交流,求輕噴。
一、推薦系統(tǒng)的意義
1.1什么時候需要推薦系統(tǒng)
推薦系統(tǒng)本質(zhì)上是一種信息過濾系統(tǒng),主要解決的問題為信息過載,即用戶與標的物(內(nèi)容/商品/其他)之間的觸達效率。
在傳統(tǒng)行業(yè)場景下,由于貨架有限,標的物不可能無限增加,解決信息過載問題相對比較容易,比如在一家路邊超市,你想買一款飲料,只要轉(zhuǎn)一圈就可以找到。到了大商場,商品變多,這個過程相對復雜點,你需要先到達對應的樓層,找到對應的飲料區(qū)域,在進行挑選購買。
在互聯(lián)網(wǎng)場景下,由于貨架成本被無限降低,對應的選擇也會成幾何量級的增加,這個時候幫助用戶選擇就顯得十分重要了,這里又具體分為兩個場景:
場景一:用戶有明確或相對明確的需求,只是無從下手----解決方案為搜索引擎
場景二:用戶沒有明確的需求,比如我餓了想找點吃的,但是不知道吃啥-----解決方案為個性化推薦
(當然,搜索場景下依然需要推薦輔助決策,并不能粗暴割裂,這里只是為了方便理解就近似分類了)
綜上:判別產(chǎn)品/業(yè)務線是否需要推薦系統(tǒng)的先決條件有兩個:
①存在信息過載,即用戶不能很容易或很快的從所有物品中找到自己想要的
②用戶在當前場景下大部分時間是沒有特別明確需求的
1.2推薦系統(tǒng)的是否有用?
這部分不用過于贅述,相信大家看的都比較多了,國外的亞馬遜,國內(nèi)的今日頭條,不論大廠還是小廠,在這個信息爆炸的時代,都相對比較重視個性化推薦,效果也非常顯著。
二、PM在個性化推薦工作中的主要作用
個性化推薦的相關工作中,稍微深入一點就會涉及復雜的算法、模型訓練、機器學習的理論知識,在這些知識面前,往往RD更為強勢,個人認為PM在個性化推薦工作中主要的內(nèi)容是:
(1)確定以及跟進評估指標(項目管理)
(2)特征的選取與權重定義(懂業(yè)務)
(3)基礎數(shù)據(jù)(用戶數(shù)據(jù)&標簽)的維護(數(shù)據(jù)意識)
(4)內(nèi)容/商品數(shù)量、質(zhì)量、展現(xiàn)形式的擴充與優(yōu)化(降低推薦難度,提高起點)
(5)資源協(xié)調(diào)(搶人、撕逼、背鍋)
以上五點從上到下是重要程度降序的關系,在保證數(shù)據(jù)的前提下,結(jié)合公司/團隊/自身的實際情況,決定每一部分的參與程度,但是無論如何需要切記:個性化推薦是偏技術向的工作,PM不可能比技術更加了解,起好方向把握與潤滑的作用即可(不懂可以學,別瞎比比)
三、推薦系統(tǒng)的關鍵指標
關鍵指標主要分為以下幾類:
(1)用戶滿意度
這個主要通過用戶調(diào)研體現(xiàn),無論數(shù)據(jù)多么好,用戶滿意、時長增加才是唯一的判別標準
(2)預測準確度(precision)&召回率(recall)
這兩個數(shù)據(jù)是TOPN推薦中最核心的指標,算法是把模型推薦數(shù)據(jù)與用戶實際行為作比對,需要重點關注
(3)商業(yè)/產(chǎn)品目標
結(jié)合實際情況,關注最終的商業(yè)/產(chǎn)品目標是否達成,比如:交易額、點擊率、訂單量、停留時長、CTR等等
(4)其他指標
包括:覆蓋率、多樣性、新穎性、精細度、信任度、健壯度、實時性等多個維度的指標來評判模型的健康
四、基于鄰域的相關推薦算法介紹
目前主流的推薦方法主要分為以下幾類:
(1)協(xié)同過濾(CF)的推薦方法
(2)基于內(nèi)容(CB)的推薦方法
(3)基于知識的推薦方法
以上三種主流的推薦方法,實際上是分別利用四種信息源來完成的,包括用戶畫像、物品畫像、群體數(shù)據(jù)、知識模型。
其中CF推薦方法利用了群體數(shù)據(jù)信息源;CB推薦方法利用了用戶畫像和物品畫像這種類信息源;KB推薦方法利用了用戶畫像、物品畫像和知識模型三類信息源。
由此可見,沒有一類推薦方法可以同時利用四種信息源。同時三類推薦方法也各有優(yōu)缺點,可以說沒有任何單獨的一類方法可以解決所有局限性問題,因此,將多種推薦方法混合起來使用、各取其長的算法設計思路開始變得重要起來。即大多數(shù)公司的混合推薦系統(tǒng)
本次主要講解最被大眾熟知的(1)協(xié)同過濾(CF)的推薦方法
4.1基于鄰域的推薦算法概述
協(xié)同過濾(collaborative filtering)是推薦系統(tǒng)最為常用的算法之一,已被很多知名網(wǎng)站如Amazon.com、TiVo、Netflix等成功應用在自己的推薦系統(tǒng)中。
協(xié)同過濾推薦系統(tǒng)的算法可以分為兩類:基于記憶(memory-based)的和基于模型(model-based)的算法。memory-based與model-based 區(qū)別在于前者基于實例,先記住所有實例(訓練數(shù)據(jù)),然后用相似度算法來泛化到新數(shù)據(jù)中,后者基于模型;基于訓練數(shù)據(jù)學習一個模型(函數(shù)),然后基于該模型來做預測,本次我們下面主要講解基于記憶(memory-based)的相關算法
基于記憶的算法最主要可以分為基于用戶鄰域(User-CF)的協(xié)同過濾和基于物品鄰域(Item-CF)的協(xié)同過濾。下面詳述
4.2基于用戶鄰域(User-CF)的協(xié)同過濾
基于用戶鄰域的協(xié)同過濾算法給用戶推薦和該用戶興趣相似的其他用戶喜歡的物品。具體的推薦過程為:我要給你推薦物品,首先找到和你興趣最相似的一群用戶,然后在他們喜歡但你還沒有產(chǎn)生行為的物品中挑選你可能最感興趣的N個物品推薦給你。
要實現(xiàn)上面的推薦過程,我們要做好兩件事。一是準確找到和一個特定用戶興趣最相似的K個用戶;二是在眾多可能感興趣的物品集合中選出最感興趣的N個物品。
為了做好上面的兩件事,基于用戶鄰域的協(xié)同過濾引進了下面兩個概念:
(1)用戶興趣相似度數(shù)據(jù),用于度量兩個用戶興趣相似的程度。
這個概念實現(xiàn)的關鍵是計算兩個用戶的興趣相似度主要原理為:給定用戶u和v,令N(u)表示用戶u曾經(jīng)有過的正反饋的物品合集,令N(v)表示用戶v曾經(jīng)有過的正反饋的物品合集,利用余弦公式來量化相似程度

對于少量用戶,其實直接計算就能很好地解決了,但事實上在海量用戶的情況下,這樣的復雜度是很難接受的,那么可優(yōu)化的空間在哪里呢?其實用戶的交互是稀疏的,所以對于很多(u,v)對來說其實沒有計算的必要。所以可以選擇做一個物品-用戶倒排表,用一個矩陣C[u][v]來表示用戶之間相同的交互數(shù)量,對于倒排表中的每個物品對應的用戶,兩兩之間在C中+1,通過這種方式得到所有交互不為0的用戶相似度即可。
(2)用戶對物品的興趣度數(shù)據(jù),用于度量一個用戶對一個物品的感興趣程度。
有了相似度矩陣之后我們就可以進行推薦了,首先找出和用戶相似度最高的K個用戶,然后得到這K個用戶發(fā)生交互商品的集合,去除用戶原本已經(jīng)發(fā)生交互的商品就得到了帶推薦的集合,如何去衡量這些待推薦商品的優(yōu)先級呢,很容易想到,如果它來自和用戶相似度非常高的用戶,那么它的優(yōu)先級肯定應該高一點對吧,所以可以用如下公式來描述

與用戶最相似的K個用戶中如果用戶v與待推薦商品發(fā)生過交互,則用戶對該商品的興趣加上這兩個用戶的相似度和該用戶對該商品的興趣的乘積,如果只是單純的行為數(shù)據(jù),則興趣為1。有了用戶對待推薦商品的興趣之后,可以選擇一個閾值N,將用戶興趣度最高的N個商品作為最后的推薦集合即可
4.3基于物品鄰域(Item-CF)的協(xié)同過濾
基于物品鄰域的協(xié)同過濾算法給用戶推薦和該用戶產(chǎn)生過行為的物品內(nèi)容相似的其他物品。具體的推薦過程為:我要給你推薦物品,首選找到和你產(chǎn)生過行為的每個物品內(nèi)容最相似的一批物品,然后在這些相似物品中挑選你可能最感興趣的N個物品推薦給你。
要實現(xiàn)上面的推薦過程,我們要做好兩件事。一是準確找到和一個特定物品內(nèi)容最相似的K個物品;二是在眾多相似物品集合中挑選出最感興趣的N個物品。
為了做好上面的兩件事,基于物品鄰域的協(xié)同過濾引進了下面兩個概念:
(1)物品內(nèi)容相似度數(shù)據(jù),用于度量兩個物品內(nèi)容相似的程度。
其中,|N(i)|是喜歡物品i的用戶數(shù),|N(j)|是喜歡物品j的用戶數(shù),|N(i)&N(j)|是同時喜歡物品i和物品j的用戶數(shù)。
從上面的定義看出,在協(xié)同過濾中兩個物品產(chǎn)生相似度是因為它們共同被很多用戶喜歡,兩個物品相似度越高,說明這兩個物品共同被很多人喜歡。
(2)用戶對物品的興趣度數(shù)據(jù),用于度量一個用戶對一個物品的感興趣程度。
在得到物品之間的相似度后,Item-CF 用如下公式計算用戶u對一個物品的感興趣程度

其中,Puj表示用戶u對物品j的興趣,N(u)表示用戶喜歡的物品集合(i是該用戶喜歡的某一個物品),S(i,k)表示和物品i最相似的K個物品集合(j是這個集合中的某一個物品),Wji表示物品j和物品i的相似度,Rui表示用戶u對物品i的興趣(這里簡化Rui都等于1)。
該公式的含義是:和用戶歷史上感興趣的物品越相似的物品,越有可能在用戶的推薦列表中獲得比較高的排名。
4.4User-CF與Item-CF的區(qū)別

資料引用:
《推薦系統(tǒng)時間》-項亮
《集群智慧編程》Toby Segara
http://www.itdecent.cn/p/b0fa0f900d73-(簡書-蕭飯飯-PM個性化推薦總結(jié))
http://www.cnblogs.com/shijingxiang/articles/5773246.html
https://blog.csdn.net/ningyanggege/article/details/80930542
由于寫的很倉促,很多部分取自博客/簡書/知乎,如有未提到的引用煩請?zhí)嵝眩直浮?/p>