参考京东-刘思喆
京东推荐产品及架构
通用模型的应用
离线CTR预测实例
实验与监控
京东推荐产品
- 80+推荐产品,包括移动端和web端
- 20+推荐服务,支撑EDM、广告、微信端等
遍布用户网络的各个环节
推荐系统的价值
挖掘用户潜在购买需求
- 缩短用户到商品的距离
- 用户需求不明确时提供参考
- 满足用户的好奇心
推荐产品实例
不同位置的推荐产品定位不同
单品页:购买了意图
过滤页提高客单价
购物车页:购物决策
无结果页:减少跳出率
订单完成页:交叉销售
关注推荐:提高转化
我的京东推荐:提高忠诚度
首页猜你喜欢:吸引用户
京东推荐系统架构
data datawarehouse mercury frontend diviner recommender kaflka key_value store stats hdfs hadoop R Vowpal Wabbit Spark MPI buffalo
京东推荐算法优化方向
以数据分析为工具,提升数据的质量和覆盖度,增强对业务的理解(25%)
测试不同算法在不同数据源的效果,提高召回模型的质量,增加结果辨识度(50%)
以用户反馈为依据,融合不同模型、不同维度数据源,对推荐结果重新排序(15%)
增加数据的更新频率(5%)
其他(5%)
推荐系统效果全景图
京东对推荐数据的理解
用户行为
浏览
点击(普通点击、搜索点击)
加入购物车(或关注)
购买(订单、用户)
评分基于内容
标题
扩展属性
评论
描述
……
用户刻画和实时兴趣- 用户刻画
- 实时兴趣
分类
品牌
扩展属性
修饰词
性别
购买力
典型推荐系统技术
按照数据的分类:协同过滤、内容过滤、社会化过滤
按照模型的分类:基于近邻的模型、矩阵分解模型、图模型
协同矩阵I
用户和商品的共矩阵
对于商品(item)向量至少有10+的距离计算公式计算商品间的距离,一般有:
Jacard距离
(修正)cosine距离
Manhattan距离
Chebychev距离
欧(闵)式距离
Pearson相关系数
Spearman相关系数
Kendall相关系数
协同矩阵II
以及不太常见的:
simrank
Mahalanobis距离
基于条件概率的interest
Log Likelihood ratio
Mutual information
支持类模型
离线推荐CTR预测模型
用户购买力模型
周期购买商品识别模型(商品识别+购买周期)
“不良”商品识别模型
基于图书内容的LDA模型
用户行为加权组合的SVD、SVD++
关于冷启动
对于“瓜子”我们应该推荐什么
产品词关系全景图
周期类商品(部分)
作弊和反作弊
用户行为的复杂
过度SEO
直接作弊
策略
异常行为降权
异常用户直接过滤
点击流规则过滤
离线CTR预测
关联推荐的情况下,根据给定主商品推出的推荐商品,在用户浏览后被点击的概率
可以理解为条件概率P(Y=1|X)
为什么要预测推荐商品的CTR?
调整推荐商品的排序,推断潜在模式
多模型融合的方式
发现影响推荐商品点击率的重要因素
构建商品的特征
对商品的形容
品牌词、中心词、修饰词;类目属性、扩展属性
基于用户行为的在商品上的反映:
销量、Pagerank、评论数、好评度、浏览深度
商品标签(如时间标签、低于标签、性别标签等)
对于商品标签(以时间差异构建的时间feature为例):
假设9:00——19:00位白天,19:00——9:00为夜间,则在两个时间段内的用户购买则构成了该商品的时间标签,该商品标签的一般性定义为
商品的组合属性
基于单一属性组合产生的属性,有以下三种
相同类属性的组合:如时序上的销量(趋势系数)、销量的方差
不同类属性的组合:如商品的展示和点击组合(如CTR)、点击和购买的组合(如CVR)
推荐主商品和推荐品属性的组合。比如品牌词是否一致,价格的比值是否在一定范围内
推荐主商品和推荐品类三级类目关系需要使用两两配对的feature表征形式
采样策略
1VS0
部分三级类组合系数展示
实验与监控
实验配置平台
配置实时生效
任意百分比流量切换
可使用random 、partition by user 等策略分流
支持版本回溯
有权限管理体系
实验对比平台
监控和报警
周期监控
按照一周为周期的推荐位指标监控,包括PV、Click、OrderLine
推荐位实验级别的逐日监控
分品类的点击率监控(周单位)
实时监控
重点推荐位覆盖以及准确率监控
分钟级别
一旦异常邮件预警
离线效果测评
Figure:推荐曝光和全站商品点击的累计对比图:对比所有试验,能够较好的弱化商品曝光的马太效应的试验,从经验上看,它的线上效果也最优。
线上效果跟踪:模型效率
一些感受
推荐系统是完整的工程的实现,算法+工程,二者缺一不可
用户行为和业务的主要连接是数据
数据的理解高于算法的理解,简单模型配以优质有效数据有更加的效果
算法优化是逐步迭代的过程,更多需要的是灵感