原理

根据用户画像推荐物品

用户画像

一堆多维数据来刻画一个人(年龄、职业、收入、行为。。。)

离线画像数据

变动频率不高,如年龄、职业、收入

实时画像数据

变动频率比较高,如行为

数据缺失问题

001 zhangsan 22 IT 15000
002 lisi          21 IT 16000
003 wangwu  22 IT
004 wangermazi 40 医生 35000

以上003号缺少收入数据,需使用数据不全方法

1、KMeans算法、DBScan算法 基于结果取交集
2、线性回归模型

001 zhangsan 22 IT 15000
002 lisi          21 IT 16000
003 wangwu  22     18000
004 wangermazi 40 医生 35000

以上003号缺少职业数据,需使用数据不全方法

LR RF 分类模型

用户画像总结

1、针对离线数据和实时数据制定不同的更新策略
2、针对数据缺失问题,使用补全数据方法

物品画像

以文章为例,提取关键词、主题、作者、发布时间、浏览量。。。,并选择合适的更新策略

原理总结

了解用户、了解物品,怎么基于用户来推荐物品呢?推荐流程是什么样的?

推荐流程

召回策略

1、行为召回:基于物品的协同过滤思想(大部分用户同时买了商品1和商品2,a用户买了商品1则推荐商品2)冷启动问题:新用户
2、基于内容的召回:基于你浏览的内容,或者根基你的历史订单,计算与这些商品相似的商品 召回出来 基于内容的协同过滤)信息茧房问题:推荐的内容都是同一个领域的,没有新花样,会导致用户的视野变窄
3、实时召回:(正在浏览商品...,流式计算实时召回与当前浏览的商品相似的商品)
4、热门召回:(将最近最热 最火的信息或者商品召回,不基于任何的用户画像)

1,2 T+1离线召回
3,4实时召回(具有偶然性)

选择哪一种召回策略?

多路召回->并集
四种召回策略全部采用

衡量推荐系统好坏的指标

1、CTR(click through rate)
点击率CTR=点击量/曝光量 
10/100=10%
(1)推荐内容:坦胸露乳,三俗 CTR
(2)信息茧房:军事迷->军事相关 CTR(小编的流失,新领域写文章,文章永远不会出现在用户推荐列表里面)(电商平台商品成为长尾商品)
长尾理论:长尾商品所占的市场份额>少数热门商品市场份额
一个好的推荐系统可以很好的解决长尾商品问题
2、UCTR
UCTR=有点击行为的用户/访问推荐结果总用户
100/10000=1%
3、覆盖度
推荐曝光量/信息总量
1w/10w
覆盖度低=》长尾商品问题 信息茧房
覆盖度高-〉三俗情况比较低
CTR   覆盖度 互相矛盾
如给军事迷推荐其他领域的文章,覆盖度高了,CTR低

推荐系统如何衡量好坏?

推荐系统准,可能有信息茧房问题
推荐系统不准,用户不喜欢看
那要如何衡量推荐系统的好坏了?

根据场景来衡量推荐系统

如电商网站,可以通过购买率来衡量推荐系统好坏

购买率=通过推荐列表购买商品的人数/总人数
亚马逊 32%京东 17% (问题出在数据质量上)

因为电商平台一味的追求购买率
优先提高CTR UCTR
覆盖度放到最后
追求吸引用户

Lambda架构

离线训练

构建推荐系统训练集

1、用户行为数据

(显示出用户的喜好 一段时间内,访问app并且还下载了,那么代表对这个app是喜欢的)

001 20:35:01 app1  0…
001 20:35:02 app2 0…
001 20:35:03 app1  1…
001 20:59:01  app3 1…

隐式用户反馈数据
1 喜欢 0 不喜欢

2、用户历史下载表

(用户画像数据)

001 app100 app200 app300

3、app商品词表

app1 v1.1   tencent …
app2 2.0   baidu
app3 v3.2  ali

one-hot编码 特征离散化

y轴 0 1 喜欢 不喜欢

x轴 特征离散化名称

基于物品画像构建的特征(3、app商品词表)

特征1特征2特征3特征4特征5特征6
version-1.1version-2.0version-3.2auther.tencnetauth.aliauth.baidu
1             0               0             1               0         0
0            1                0             0              0         1

基于用户画像构建的特征(1、用户行为数据 2、用户历史下载表)

特征1特征2特征3特征4特征5特征6
app1*app100  app1*app200  app1*app300app2*app100app2*app200app2*app300
1                  1                    1                    0                0                 0     
0                   0                  0                     1                1                  1

训练预测模型

LR逻辑回归
训练模型

model 存的是权重值

app1app100 10
app1
app200 100
version-1.1     10……

构建测试集

测试集
userID:001 app999 评分值
for(app:商城中所有的app-已经下载的app)
1、通过001 ID去用户的历史下载表中查询历史下载
2、将拿到的历史下载结果与当前的app100 形成关联特征app1*app100
3、通过appID号去app商品词表中获取app基本特征
4、直接讲构建好的测试集带入到model中,得出评分值(0-1)

Scroll to Top