推薦系統(tǒng)簡介

1. 初識推薦系統(tǒng)

所謂推薦系統(tǒng),簡言之就是根據(jù)用戶的偏好推薦其最有可能感興趣的內(nèi)容。

以新聞平臺為例淑履,過去主要以新浪新聞這類中心化內(nèi)容平臺為代表;

而現(xiàn)在藻雪,以今日頭條為代表的新聞APP 均在首頁根據(jù)用戶偏好推送不同內(nèi)容的定制化新聞秘噪,推動了整個行業(yè)向個性化推薦轉(zhuǎn)型。

在淘寶勉耀、京東指煎、亞馬遜等電商網(wǎng)站的首頁都設(shè)有“猜你喜歡”專區(qū)蹋偏,根據(jù)用戶最近瀏覽和購
買的行為記錄推薦商品。

電商的猜你喜歡

在新興的短視頻領(lǐng)域至壤,以抖音和快手為代表的APP 以推薦為流量分發(fā)的主要手段威始。

在互聯(lián)網(wǎng)金融領(lǐng)域,各大平臺也開始主打針對個人定制化的千人千面投資推薦像街。

毫無疑問黎棠,個性化推薦己成為所有新聞、視頻宅广、音頻葫掉、電商、互聯(lián)網(wǎng)金融等相關(guān)平臺的標配跟狱。

推薦系統(tǒng)俭厚,

對用戶來說,在用戶需求并不十分明確的情況下進行信息的過濾,與搜索系統(tǒng)相比,推薦系統(tǒng)更多的利用用戶的各類歷史
信息猜測其可能喜歡的內(nèi)容驶臊;

對公司而言挪挤,解決產(chǎn)品能夠最大限度地吸引用戶,留存用戶,增長用戶黏性,提高用戶轉(zhuǎn)化率,從而達到公司商目標連續(xù)增長
的目的;

  • 個性化推薦的成功應(yīng)用需要兩個條件:
  1. 信息過載关翎,因為用戶如果可以很容易地從所有物品中找到喜歡的物品扛门,就不需要個性化推薦了。
  2. 用戶大部分時候沒有特別明確的需求纵寝,因為用戶如果有明確的需求论寨,可以直接通過搜索引擎找到感興趣的物品。

推薦系統(tǒng)的基本任務(wù)是聯(lián)系用戶和物品爽茴,解決信息過載的問題葬凳。本質(zhì)上是一種實現(xiàn)將用戶-商品-公司之間利益最大化的手段.

2. 推薦系統(tǒng)的常用評測指標

2.1. 用戶滿意度

用戶作為推薦系統(tǒng)的重要參與者,其滿意度是評測推薦系統(tǒng)的最重要指標室奏。但是火焰,用戶滿意度沒有辦法離線計算,只能通過用戶調(diào)查或者在線實驗獲得胧沫。

用戶調(diào)查獲得用戶滿意度主要是通過調(diào)查問卷的形式昌简。用戶對推薦系統(tǒng)的滿意度分為不同的層次。

在在線系統(tǒng)中绒怨,用戶滿意度主要通過一些對用戶行為的統(tǒng)計得到纯赎,比如,利用購買率度量用戶的滿意度南蹂;

此外址否,有些網(wǎng)站會通過設(shè)計一些用戶反饋界面收集用戶滿意度。比如,電商佑附、外賣的app收貨后彈出的評價提示樊诺;

外賣的用戶滿意調(diào)查

2.2 預(yù)測準確度

預(yù)測準確度度量一個推薦系統(tǒng)或者推薦算法預(yù)測用戶行為的能力。這個指標是最重要的推薦系統(tǒng)離線評測指標音同,從推薦系統(tǒng)誕生的那一天起词爬,幾乎99%與推薦相關(guān)的論文都在討論這個指標。因為該指標可以通過離線實驗計算权均。

下面是不同的研究方向的預(yù)測準確度指標:

2.2.1 評分預(yù)測

很多網(wǎng)站都有一個讓用戶給物品打分的功能顿膨,那么,如果知道了用戶對物品的歷史評分叽赊,就可以從中習得用戶的興趣模型恋沃,并預(yù)測該用戶在將來看到一個他沒有評過分的物品時,會給這個物品評多少分必指。預(yù)測用戶對物品評分的行為稱為評分預(yù)測囊咏。

某外賣收集用戶評分的界面

評分預(yù)測的預(yù)測準確度一般通過均方根誤差(RMSE)和平均絕對誤差(MAE)計算。

對于測試集中的一個用戶u和物品i塔橡,令r_{ui}是用戶u對物品i的實際評分梅割,而\hat{r_{ui}}是推薦算法給出的預(yù)測評分,那么RMSE的定義為:

RMSE = \sqrt{\frac{\sum_{u,i \in T}(r_{ui} - \hat{r}_{ui})^2}{|T|}}
MAE采用絕對值計算預(yù)測誤差葛家,它的定義為:

MAE = \frac{\sum_{u,i \in T}|r_{ui} - \hat{r}_{ui}|}{|T|}
假設(shè)我們用一個列表records存放用戶評分數(shù)據(jù)户辞,

令records[i]= [u,i,rui,pui],其中rui是用戶u對物品i的實際評分癞谒,pui是算法預(yù)測出來的用戶u對物品i的評分底燎,

那么下面的代碼分別實現(xiàn)了RMSE和MAE的計算過程。

def RMSE(records):
    return math.sqrt(sum([(rui-pui)**2 for u,i,rui,pui in records]) / float(len(records)))

def MAE(records):
    return sum([abs(rui-pui) for u,i,rui,pui in records]) / float(len(records))

關(guān)于RMSE和MAE這兩個指標的優(yōu)缺點弹砚,

Netflix認為RMSE加大了對預(yù)測不準的用戶物品評分的懲罰(平方項的懲罰)双仍,因而對系統(tǒng)的評測更加苛刻。

研究表明迅栅,如果評分系統(tǒng)是基于整數(shù)建立的(即用戶給的評分都是整數(shù))殊校,那么對預(yù)測結(jié)果取整會降低MAE的誤差②晴玖。

2.2.2. TopN推薦

網(wǎng)站在提供推薦服務(wù)時读存,一般是給用戶一個個性化的推薦列表,這種推薦叫做TopN推薦呕屎。

TopN推薦的預(yù)測準確率一般通過準確率(precision)/召回率(recall)度量让簿。

令R( u)是根據(jù)用戶在訓練集上的行為給用戶作出的推薦列表,而T( u)是用戶在測試集上的行為列表秀睛。那么尔当,

  • 精確率(precision):

分類正確的正樣本個數(shù)占分類器判定為正樣本的樣本個數(shù)比例(這里 R(u)R?(u) 相當于是模型判定的正樣本)

Precision= \frac{\sum_{u \in U}|R(u) \cap T(u)|}{\sum_{u \in U}|R(u)|}
即:精確率 = 分類正確的正樣本個數(shù) / 所有判定為正樣本的樣本個數(shù)

  • 召回率(recall):

分類正確的正樣本個數(shù)占真正的正樣本個數(shù)的比例(這里的T(u)相當于真正的正樣本集合)

Recall= \frac{\sum_{u \in U}|R(u) \cap T(u)|}{\sum_{u \in U}|T(u)|}
即:召回率 = 分類正確的正樣本個數(shù) / 所有真正的正樣本的樣本個數(shù)

為了全面評測TopN推薦的準確率和召回率,一般會選取不同的推薦列表長度N,計算出一組準確率/召回率椭迎,然后畫出準確率/召
回率曲線(precision/recall curve)锐帜。

補充知識點

  • 精確率( Precision) (也叫查準率)

    TP / TP+ FP

    精準率反應(yīng)的是預(yù)測準確的數(shù)量,即預(yù)測為正的樣本中有多少是真正的正樣本畜号,

    預(yù)測準確的次數(shù)越多缴阎,這個數(shù)值就越大。精準率是針對我們預(yù)測結(jié)果而言的简软,

    它表示的是預(yù)測為正的樣本中有多少是真正的正樣本蛮拔。那么預(yù)測為正就有兩種可能了,

    一種就是把正類預(yù)測為正類(TP)痹升,另一種就是把負類預(yù)測為正類(FP)建炫,

  • 召回率( Recall)

    TP / TP+ FN

    召回率反應(yīng)的是預(yù)測準確的概率,它表示的是樣本中的正例有多少被預(yù)測正確了疼蛾,

    如果預(yù)測百分之百地準確肛跌,那這個數(shù)值就會很高。

    召回率是針對我們原來的樣本而言的据过,它表示的是樣本中的正例有多少被預(yù)測正確了惋砂。

    也有兩種可能,一種是把原來的正類預(yù)測成正類(TP)绳锅,另一種就是把原來的正類預(yù)測為負類(FN)西饵。

  • AUC(Area Under Curve)

    AUC 即ROC曲線下的面積,ROC曲線下與坐標軸圍成的面積鳞芙,顯然這個面積的數(shù)值不會大于1眷柔。

    又由于ROC曲線一般都處于y=x這條直線的上方,所以AUC的取值范圍在0.5和1之間原朝。

    AUC越接近1.0驯嘱,檢測方法真實性越高;

    等于0.5時喳坠,則真實性最低鞠评,無應(yīng)用價值。

    roc.png

精確率和召回率的代碼實現(xiàn):

from sklearn import metrics 
from sklearn.metrics import precision_recall_curve
from sklearn.metrics import average_precision_score
from sklearn.metrics import accuracy_score
#分類結(jié)果
y_pred = [0, 1, 0, 0]
y_true = [0, 1, 1, 1]

print("precision_score:", metrics.precision_score(y_true, y_pred))
print("recall_score:", metrics.recall_score(y_true, y_pred))

auc代碼實現(xiàn):

# auc
import numpy as np
from sklearn import metrics
y = np.array([1, 1, 2, 2])
pred = np.array([0.1, 0.4, 0.35, 0.8])
fpr, tpr, thresholds = metrics.roc_curve(y, pred, pos_label=2)
metrics.auc(fpr, tpr)

# 當類別滿足{0, 1}時壕鹉,可直接使用metrics.roc_auc_score(y,pred)
metrics.roc_auc_score(y,pred)

0.75

ROC曲線代碼實現(xiàn):

## ROC曲線
from sklearn.metrics import roc_curve
y_pred = [0, 1, 1, 0, 1, 1, 0, 1, 1, 1]
y_true = [0, 1, 1, 0, 1, 0, 1, 1, 0, 1]
FPR,TPR,thresholds=roc_curve(y_true, y_pred)
plt.title('ROC')
plt.plot(FPR, TPR,'b')
plt.plot([0,1],[0,1],'r--')
plt.ylabel('TPR')
plt.xlabel('FPR')
roc曲線

小知識點:

  • 關(guān)于評分預(yù)測和 TopN 推薦的討論

指出電影推薦的目的是找到用戶最有可能感興趣的電影剃幌,而不是預(yù)測用戶看了電影后會給電影什么樣的評分。因此晾浴,TopN推薦更符合實際的應(yīng)用需求负乡。也許有一部電影用戶看了之后會給很高的分數(shù),但用戶看的可能性非常小脊凰。因此抖棘,預(yù)測用戶是否會看一部電影,應(yīng)該比預(yù)測用戶看了電影后會給它什么評分更加重要。

因此切省,后面的重點也是在TopN推薦最岗。

2.2.3 覆蓋率

覆蓋率(coverage)描述一個推薦系統(tǒng)對物品長尾的發(fā)掘能力。定義為推薦系統(tǒng)能夠推薦出來的物品占總物品集合的比例朝捆。
假設(shè)系統(tǒng)的用戶集合為U仑性,推薦系統(tǒng)給每個用戶推薦一個長度為N的物品列表R(u)。那么推薦系統(tǒng)的覆蓋率的公式:

覆蓋率公式

即:覆蓋率 = 推薦出來的商品數(shù)量 / 總商品數(shù)量

為了更細致地描述推薦系統(tǒng)發(fā)掘長尾的能力右蹦,需要統(tǒng)計推薦列表中不同物品出現(xiàn)次數(shù)的分布诊杆。如果所有的物品都出現(xiàn)在推薦列表中,且出現(xiàn)的次數(shù)差不多何陆,那么推薦系統(tǒng)發(fā)掘長尾的能力就很好晨汹。

因此,可以通過研究物品在推薦列表中出現(xiàn)次數(shù)的分布描述推薦系統(tǒng)挖掘長尾的能力贷盲。

如果這個分布比較平淘这,那么說明推薦系統(tǒng)的覆蓋率較高,而如果這個分布較陡峭巩剖,說明推薦系統(tǒng)的覆蓋率較低铝穷。

在信息論和經(jīng)濟學中有兩個著名的指標可以用來定義覆蓋率。

第一個是信息熵:

H = -\sum_{i=1}^n p(i) logp(i)
其中 p(i)p?(i) 是物品 ii 的流行度除以所有物品流行度之和佳魔;

第二個指標是基尼系數(shù)(Gini Index):

G = \frac{1}{n-1} \sum_{j=1}^{n}(2j-n-1)p(i_{j})
其中 ijij 是按照物品流行度p從小到大排序的物品列表中第 jj 個物品曙聂;

2.2.4 多樣性

為了滿足用戶廣泛的興趣,推薦列表需要能夠覆蓋用戶不同的興趣領(lǐng)域鞠鲜,即推薦結(jié)果需要具有多樣性宁脊。

盡管用戶的興趣在較長的時
間跨度中是一樣的,但具體到用戶訪問推薦系統(tǒng)的某一刻贤姆,其興趣往往是單一的榆苞,那么如果推薦列表只能覆蓋用戶的一個興趣點,而這個興趣點不是用戶這個時刻的興趣點霞捡,推薦列表就不會讓用戶滿意坐漏。反之,如果推薦列表比較多樣碧信,覆蓋了用戶絕大多數(shù)的興趣點赊琳,那么就會增加用戶找到感興趣物品的概率。因此給用戶的推薦列表也需要滿足用戶廣泛的興趣音婶,即具有多樣性慨畸。

多樣性描述了推薦列表中物品兩兩之間的不相似性莱坎。因此衣式,多樣性和相似性是對應(yīng)的。

假設(shè){s(i,j) \in [0,1]}定義了物品i和 j之間的相似度,那么用戶u的推薦列表R(u)的多樣性定義如下:

Diversity(R(u)) = 1-\frac{\sum_{i,j \in R(u)}s(i,j)}{\frac{1}{2}|R(u)|(|R(u)|-1)}
推薦系統(tǒng)的整體多樣性可以定義為所有用戶推薦列表多樣性的平均值:

Diversity = \frac{1}{U} \sum_{u\in U}Diversity(R(u))
不同的物品相似度度量函數(shù)s(i,j)可以定義不同的多樣性;

如果用內(nèi)容相似度描述物品間的相似度碴卧,我們就可以得到內(nèi)容多樣性函數(shù)弱卡,
如果用協(xié)同過濾的相似度函數(shù)描述物品間的相似度,就可以得到協(xié)同過濾的多樣性函數(shù)住册。

2.2.5 新穎性

新穎的推薦是指給用戶推薦那些他們以前沒有聽說過的物品婶博。在一個網(wǎng)站中實現(xiàn)新穎性的最簡單辦法是,把那些用戶之前在網(wǎng)站中對其有過行為的物品從推薦列表中過濾掉荧飞。

比如在一個視頻網(wǎng)站中凡人,新穎的推薦不應(yīng)該給用戶推薦那些他們已經(jīng)看過、打過分或者瀏覽過的視頻叹阔。

但是挠轴,有些視頻可能是用戶在別的網(wǎng)站看過,或在電視上看過耳幢,因此僅僅過濾掉本網(wǎng)站中用戶有過行為的物品還不能完全實現(xiàn)新穎性岸晦。

有研究表明,評測新穎度的最簡單方法是利用推薦結(jié)果的平均流行度睛藻,因為越不熱門的物品越可能讓用戶覺得新穎启上。因此,如果推薦結(jié)果中物品的平均熱門程度較低店印,那么推薦結(jié)果就可能有比較高的新穎性冈在。

但是,用推薦結(jié)果的平均流行度度量新穎性比較粗略按摘,因為不同用戶不知道的東西是不同的讥邻。要準確地統(tǒng)計新穎性需要做用戶調(diào)查。

2.2.6 驚喜度

簡單來說院峡,驚喜度(serendipity)就是兴使,如果推薦結(jié)果和用戶的歷史興趣不相似,但卻讓用戶覺得滿意照激,那么就可以說推薦結(jié)果的驚喜度很高发魄,而推薦的新穎性僅僅取決于用戶是否聽說過這個推薦結(jié)果。

即:令用戶驚喜的推薦結(jié)果是和用戶歷史上喜歡的物品不相似俩垃,但用戶卻覺得滿意的推薦

因此励幼,提高推薦驚喜度,需要提高推薦結(jié)果的用戶滿意度口柳,同時降低推薦結(jié)果和用戶歷史興趣的相似度惶看。

2.2.7 信任度

度量推薦系統(tǒng)的信任度只能通過問卷調(diào)查的方式,詢問用戶是否信任推薦系統(tǒng)的推薦結(jié)果晋南。

提高推薦系統(tǒng)的信任度主要有兩種方法磷雇。

  1. 首先需要增加推薦系統(tǒng)的透明度(transparency )毛好,而增加推薦系統(tǒng)透明度的主要辦法是提供推薦解釋。只有讓用戶了解推薦系統(tǒng)的運行機制苛秕,讓用戶認同推薦系統(tǒng)的運行機制肌访,才會提高用戶對推薦系統(tǒng)的信任度。

  2. 其次是考慮用戶的社交網(wǎng)絡(luò)信息艇劫,利用用戶的好友信息給用戶做推薦吼驶,并且用好友進行推薦解釋。這是因為用戶對他們的好友一般都比較信任店煞,因此如果推薦的商品是好友購買過的蟹演,那么他們對推薦結(jié)果就會相對比較信任。

2.2.8 實時性

在很多網(wǎng)站中顷蟀,因為物品(新聞轨帜、微博等)具有很強的時效性,所以需要在物品還具有時效性時就將它們推薦給用戶衩椒。

比如蚌父,給用戶推薦昨天的新聞顯然不如給用戶推薦今天的新聞。

推薦系統(tǒng)的實時性包括兩個方面毛萌。

  1. 首先苟弛,推薦系統(tǒng)需要實時地更新推薦列表來滿足用戶新的行為變化。

    比如阁将,當一個用戶購買了iPhone膏秫,如果推薦系統(tǒng)能夠立即給他推薦相關(guān)配件,那么肯定比第二天再給用戶推薦相關(guān)配件更有價值做盅。

  2. 第二個方面是推薦系統(tǒng)需要能夠?qū)⑿录尤胂到y(tǒng)的物品推薦給用戶缤削。這主要考驗了推薦系統(tǒng)處理物品冷啟動的能力。關(guān)于如何將新加入系統(tǒng)的物品推薦給用戶吹榴。

2.2.9 健壯性

健壯性(即robust,魯棒性)指標衡量了一個推薦系統(tǒng)抗擊作弊的能力亭敢。

最著名的就是行為注入攻擊(profile injection attack)。眾所周知图筹,絕大部分推薦系統(tǒng)都是通過分析用戶的行為實現(xiàn)推薦算法的帅刀。

比如,亞馬遜有一種推薦叫做“購買商品A的用戶也經(jīng)常購買的其他商品”远剩。主要計算方法是統(tǒng)計購買商品A的用戶購買其他商品的次數(shù)扣溺。

那么,我們可以很簡單地攻擊這個算法瓜晤,讓自己的商品在這個推薦列表中獲得比較高的排名锥余,比如可以注冊很多賬號,用這些賬號同時購買A和自己的商品痢掠。

還有一種攻擊主要針對評分系統(tǒng)驱犹,比如豆瓣的電影評分嘲恍。這種攻擊很簡單,就是雇用一批人給自己的商品非常高的評分着绷,而評分行為是推薦系統(tǒng)依賴的重要用戶行為。

算法健壯性的評測主要利用模擬攻擊锌云。

在實際系統(tǒng)中荠医,提高系統(tǒng)的健壯性,除了選擇健壯性高的算法桑涎,還有以下方法:

  1. 設(shè)計推薦系統(tǒng)時盡量使用代價比較高的用戶行為彬向。比如,如果有用戶購買行為和用戶瀏覽行為攻冷,那么主要應(yīng)該使用用戶購買行為娃胆,因為購買需要付費,所以攻擊購買行為的代價遠遠大于攻擊瀏覽行為等曼。
  2. 在使用數(shù)據(jù)前里烦,進行攻擊檢測,從而對數(shù)據(jù)進行清理禁谦。

2.2.10 商業(yè)目標

網(wǎng)站評測推薦系統(tǒng)更加注重網(wǎng)站的商業(yè)目標是否達成胁黑,不同的網(wǎng)站具有不同的商業(yè)目標。

比如電子商務(wù)網(wǎng)站的目標可能是銷售額州泊,基于展示廣告盈利的網(wǎng)站其商業(yè)目標可能是廣告展示總數(shù)丧蘸,基于點擊廣告盈利的網(wǎng)站其商業(yè)目標可能是廣告點擊總數(shù)。

因此遥皂,設(shè)計推薦系統(tǒng)時需要考慮最終的商業(yè)目標力喷,而網(wǎng)站使用推薦系統(tǒng)的目的除了滿足用戶發(fā)現(xiàn)內(nèi)容的需求,也需要利用推薦系統(tǒng)加快實現(xiàn)商業(yè)上的指標演训。

2.3 評測維度

一個推薦算法弟孟,雖然整體性能不好,但可能在某種情況下性能比較好样悟,而增加評測維度的目的就是知道一個算法在什么情況下性能最好披蕉。

一般來說,評測維度分為如下3種:

  1. 用戶維度 主要包括用戶的人口統(tǒng)計學信息乌奇、活躍度以及是不是新用戶等没讲。
  2. 物品維度 包括物品的屬性信息、流行度礁苗、平均分以及是不是新加入的物品等爬凑。
  3. 時間維度 包括季節(jié),是工作日還是周末试伙,是白天還是晚上等嘁信。

3. 召回和排序

推薦系統(tǒng)要根據(jù)已有的用戶畫像和內(nèi)容畫像去推薦于样,涉及到兩個關(guān)鍵問題:召回和排序。

召回(match)”指從全量信息集合中觸發(fā)盡可能多的正確結(jié)果潘靖,并將結(jié)果返回給“排序”穿剖。

召回的方式有多種:協(xié)同過濾、主題模型卦溢、內(nèi)容召回和熱點召回等糊余,

而“排序(rank)“則是對所有召回的內(nèi)容進行打分排序,選出得分最高的幾個結(jié)果推薦給用戶单寂。

推薦系統(tǒng)的算法流程圖

召回策略的評估:

主要根據(jù)兩個評價指標:召回率和準確率贬芥。

下面是召回層與排序?qū)拥奶攸c

  1. 召回層: 待計算的候選集合大、計算速度快宣决、模型簡單蘸劈、特征較少,盡量讓用戶感興趣的物品在這個階段能夠被快速召回尊沸,即保證相關(guān)物品的召回率威沫;
  2. 排序?qū)樱?首要目標是得到精準的排序結(jié)果。需要處理的物品數(shù)量少洼专,可以利用較多的特征壹甥,使用比較復(fù)雜的模型。

設(shè)計召回層時壶熏,“計算速度”和“召回率”其實是矛盾的兩個指標句柠,為提高“計算速度”,需要使召回策略盡量簡單一些棒假;而為了提高“召回率”溯职,要求召回策略盡量選出排序模型所需要的候選集,這也就要求召回策略不能過于簡單帽哑。在權(quán)衡計算速度和召回率后谜酒,目前工業(yè)界主流的召回方法是采用多個簡單策略疊加的“多路召回策略”。

3.1 多路召回

指采用不同的策略妻枕、特征或簡單模型僻族,分別召回一部分候選集,然后把候選集混合在一起供后續(xù)排序模型使用屡谐,

其中述么,各種簡單策略保證候選集的快速召回,從不同角度設(shè)計的策略保證召回率接近理想的狀態(tài)愕掏,不至于損傷排序效果度秘。

在多路召回中,每個策略之間毫不相關(guān)饵撑,所以一般可以寫并發(fā)多線程同時進行剑梳,這樣可以更加高效唆貌。

多路召回

針對不同的任務(wù)就會有對于該業(yè)務(wù)真實場景下需要考慮的召回規(guī)則。例如視頻推薦垢乙,召回規(guī)則可以是“熱門視頻”锨咙、“導(dǎo)演召回”、“演員召回”追逮、“最近上映“酪刀、”流行趨勢“、”類型召回“等等羊壹。

  • 多路召回存在的問題:

對于每一路召回都會從商品集合中拉回K個商品蓖宦,這里的K是一個超參數(shù)齐婴,對于K的選擇一般需要通過離線評估加線上的A/B測試來確定合理的K值油猫。

除此之外,對于不同的任務(wù)具體策略的選擇也是人工基于經(jīng)驗的選擇柠偶,選擇的策略之間的信息是割裂的情妖,無法總和考慮不同策略對一個物品的影響。

3.2 Embedding召回

Embedding召回是一個綜合性強且計算速度也能滿足需求的召回方法诱担。

Embedding其實是一種思想毡证,主要目的是將稀疏的向量(如one-hot編碼)表示轉(zhuǎn)換成稠密的向量,

下圖直觀的顯示了one-hot編碼和Embedding表示的區(qū)別于聯(lián)系蔫仙,

one-hot編碼和Embedding

即Embedding相當于是對one-hot做了平滑料睛,而onehot相當于是對Embedding做了max pooling。

目前主流的Embedding技術(shù)主要可以分為三大類摇邦。

  1. text embedding
  2. image embedding
  3. graph embedding

在推薦系統(tǒng)領(lǐng)域恤煞,text embedding技術(shù)是目前使用最多的embedding技術(shù),

  • 對于文本特征可以直接使用該技術(shù)施籍,

  • 對于非文本的id類特征居扒,可以先將其轉(zhuǎn)化成id序列再使用text embedding的技術(shù)獲取id的embedding再做召回。

常見的text Embedding的技術(shù)有:

  1. 靜態(tài)向量:word2vec, fasttext, glove
  2. 動態(tài)向量:ELMO, GPT, BERT

對于image embedding其實主要是對于有圖或者視頻的特征丑慎,對于圖像與視頻的識別都有效果比較好的模型喜喂,大部分都是卷積模塊通過各種連接技巧搭建的高效模型,可以使用現(xiàn)有的預(yù)訓練模型提取圖像或者視頻的向量特征竿裂,然后用于召回玉吁。

對于社交網(wǎng)絡(luò)相關(guān)的推薦,進行推薦的用戶與用于之間或者商品之間天然的存在某種復(fù)雜的圖結(jié)構(gòu)的關(guān)系腻异,如何利用圖中節(jié)點與節(jié)點之間的關(guān)系對其進行向量化是非常關(guān)鍵的诈茧,在這種場景下基于序列的text embedding和基于卷積模型的image embedding都顯得力不從心,在這樣的背景下Graph Embedding逐漸在推薦系統(tǒng)中流行起來捂掰。

經(jīng)典的Graph Embedding模型有, Deep Walk, Node2Vec敢会,LINE以及比較新的阿里巴巴2018年公布的EGES graph Embedding模型曾沈。

參考鏈接;
《推薦系統(tǒng)實踐》
推薦策略中的“召回

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市鸥昏,隨后出現(xiàn)的幾起案子塞俱,更是在濱河造成了極大的恐慌,老刑警劉巖吏垮,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件障涯,死亡現(xiàn)場離奇詭異,居然都是意外死亡膳汪,警方通過查閱死者的電腦和手機唯蝶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來遗嗽,“玉大人粘我,你說我怎么就攤上這事”曰唬” “怎么了征字?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長娇豫。 經(jīng)常有香客問我匙姜,道長,這世上最難降的妖魔是什么冯痢? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任氮昧,我火速辦了婚禮,結(jié)果婚禮上浦楣,老公的妹妹穿的比我還像新娘袖肥。我一直安慰自己,他們只是感情好椒振,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布昭伸。 她就那樣靜靜地躺著,像睡著了一般澎迎。 火紅的嫁衣襯著肌膚如雪庐杨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天夹供,我揣著相機與錄音灵份,去河邊找鬼。 笑死哮洽,一個胖子當著我的面吹牛填渠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼氛什,長吁一口氣:“原來是場噩夢啊……” “哼莺葫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起枪眉,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤捺檬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后贸铜,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體堡纬,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年烤镐,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片棍鳖。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡炮叶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鹊杖,到底是詐尸還是另有隱情骂蓖,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布叮喳,位于F島的核電站馍悟,受9級特大地震影響锣咒,放射性物質(zhì)發(fā)生泄漏侵状。R本人自食惡果不足惜趣兄,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蹋凝。 院中可真熱鬧,春花似錦伐割、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽粱玲。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背法牲。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留悼瓮,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓腊满,卻偏偏與公主長得像,于是被迫代替她去往敵國和親培己。 傳聞我的和親對象是個殘疾皇子碳蛋,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348