聊聊常见的推荐系统演化过程

推荐算法需要考虑的因素,除了数据、特征以及模型之外,还需要考虑业务理解。数据要保证准确性、时效性,特征同样要保证准确性以及时效性,特征这块尤其要注意离在线一致性,为了保证离在线一致性,一般可以线上推理时对特征进行埋点,离线训练模型时,从该埋点获取特征,这种方式还可以避免特征穿越等问题。

模型层面,需要考虑复杂度和时效性,尤其是rt,线上一般rt要求很高,直接上大模型,很有可能不满足rt要求,此时可以采用teacher-student范式,线上推理利用student模型。此外,模型中非常重要的一点是优化目标,优化目标需要紧贴业务目标,否则偏离了目标,即使效果有提升,很有可能会不稳定。

关于实时特征这块,可以借助Flume、Kafka以及Flink等工具来实现。特征监控层面需要监控特征覆盖率、波动情况、异常值检测等。

对于初版模型,可以采用比较简单的LR线性模型,这种算法可以获得各因子的权重,这种模型相对于人工规则,点击率以及转化率等一般会有小幅提升。

相对线性模型,非线性模型,比如GBDT、FM等,在特征交叉表达方面提升比较明显。比如XGBoost用于点击率预估。

再升一级,即可升级到深度学习,业界比较流行的模型为Wide&Deep、DeepFM等深度学习模型。

Wide&Deep是Google发表的论文,对于Deep部分,一般包含稠密性特征,以及稀疏特征embedding之后的结果,对于wide部分,可以将LightGBM、XGBoost、GBDT等树模型的叶子节点通过One-Hot或者embedding编码之后加入到模型中。这种形式,在线预测很有可能达不到rt要求。在业务低峰期可以使用这类模型,业务高峰期需要进行降级,比如使用简单快捷的线性模型。

对于DeepFM,可以采用DNN提取高阶特征组合,FM可以提取二阶特征,这种模型可以自动提取特征,是一个端到端的模型。

推荐系统架构一般包含以下几个部分

1 数据源:主要源于埋点日志;

2 计算层:通常包含Spark、Hadoop、Flink、Flume、Kakfa、HBase等

3 特征层:一般包含用户特征、商品特征、上下文特征、交叉组合特征等;

4 模型层:这一层主要包含了封装好的模型;

5 数据服务层:通常包含实时数据(上下文数据、商品数据)、画像服务(比如年龄、性别等)、特征服务(事先计算好的特征)等;

6 输出层:模型输出给到业务方

在线学习主要解决以下问题

离线效果比较好,在线效果不好。

一般情况下,这种现象是因为数据分布变化比较快。在线学习可以基于实时数据和用户反馈实时更新模型,这样可以实时捕捉用户的最新行为。

在线学习具有以下几个特性

1 可以动态的不断学习,根据新样本,学习新的模式,每训练一个样本都会更新模型

2 数据只需要处理一遍,样本学完后可以即时舍弃

3 处理的数据集可以超级大,甚至无限大,可以节约存储成本

在线学习比较常用的算法为FTRL,这种算法可以得到稀疏解,收敛也比较快,可以并行处理,进而对大规模训练的支持比较好,工程实现不复杂。这种模型是谷歌提出的,rt特性比较好。

在线学习一般需要以下技术来支撑,MySQL、Kafka、storm、spark streaming、redis、flink等。

几个可以参考的点

1 GBDT模型产出叶子节点进行编码,原始特征分桶或者离散后加入模型

2 实时样本的取舍,对模型效果带来干扰的离群样本进行丢弃;

3 定时更新模型的参数,线上服务不太可能实时获取模型参数,可以基于特定的时间间隔定时获取模型参数,这样可以保证抖动基本是无感知的。此外,定时更新有利于保证模型的稳定性 。

4 关于正负样本分布不均衡,可以借助缓存,定时采样来保证正负样本比基本稳定

5 归一化,用于提升模型的收敛速度

6 各个流程的数据可视化实时监控,不仅方便模型调优,而且方便排查bad case。


              我是分割线


您可能感兴趣

模型蒸馏在收益管理中的应用(如何进行可解释个性化定价)

密歇根州立大学联合京东提出深度强化学习算法DeepPage用于分页推荐

诺亚方舟实验室提出数值特征自动离散框架AutoDis用于CTR预估

乔治亚理工提出基于GAN的强化学习算法用于推荐系统

民宿平台airbnb是如何动态定价的

密歇根州立大学联合领英提出基于AutoML的Embedding框架AutoDim

密歇根州立大学联合字节提出AutoEmb用于流式推荐

深度学习在CTR预估中的应用

伊利诺伊大学联合中科院提出动态图协同过滤算法DGCF(已开源)

加州大学提出对偶注意力RNN用于时间序列预估

宾大微软联合提出深层强化学习框架用于新闻推荐

中科大等提出深度注意力网络DAM用于捆绑推荐

浙大中科院微软等提出分层注意力网络SHAN用于序列推荐系统

加州大学提出时间间隔自注意力模型用于序列推荐(已开源)

普渡大学提出轻量级特征交互算法deeplight大幅加速ctr预估在线服务(已开源)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值