知乎首页推荐系统

栏目: 数据库 · 发布时间: 6年前

内容简介:架构部分主要是针对业务的发展把召回、排序等模块进行了可配置化和选型梳理算法部分基本上参考youtube2016和alibaba2018的思路对系统进行了重构,包括召回和排序,也结合自己的业务做了一些优化,值得参考。

前记

架构部分主要是针对业务的发展把召回、 排序 等模块进行了可配置化和选型梳理

算法部分基本上参考youtube2016和alibaba2018的思路对系统进行了重构,包括召回和排序,也结合自己的业务做了一些优化,值得参考。

系统架构

  • 高并发场景从 python 到golang,利用抽象工厂模式来实现可插拔
  • 解决支持多队列混排和支持多路召回
  • 具体的召回方式主要是ES + Redis + ANN 的模式进行构建。ES 主要支持相对复杂的召回逻辑,比如基于多种 topic 的混合召回;Redis 主要用于支持热门召回,以及规模相对较小的 CF 召回等;ANN 主要支持 embedding 召回。
  • 离线任务和模型的管理问问题
    • 离线任务的代码统一到一处管理
    • 离线任务管理平台,将所有任务以通用包的形式进行管理
    • 任务结果的监控体系
  • 特征穿越问题
    • 在线代替了离线,通过在线落特征日志,而不是 Raw Data,并统一了特征日志 Proto,如此就可以统一特征解析脚本。
  • StatsD + Grafana + InfluxDB 的监控系统,因为召回已经用配置的方式,那么剩下的召回源的比例关系,还有特征分布,ranking 得分分布都可以很方便的获取,而不用一个一个开发

召回

  • 多路召回:用户画像、内容标签、内容源信息、关注关系队列、搜索关键词队列、用户兴趣召回感兴趣的内容,根据搜索关键词进行相关推荐
  • DNN召回1.0
    • 用户 128 维的 Embedding 表示
    • 冷启动:看到内容用户的 Embedding 是什么以及点击这些内容用户的 Embedding 是什么,我们可以利用这份数据把这些新产生内容的 Embedding 计算出来更新到 Embedding 库里面去
  • 准确度 DNN 比起 ALS 来讲提升了10倍的量级
  • DNN召回2.0
    • 原始数据比如长度有多少,有没有图片,经过三层的网络之后会生成 Feed Embedding,可以直接得到 Content Embedding,解决新内容的召回机制问题
    • 1)User Representation Network 引入 FM Pooling 层,学习用户高频消费行为的交叉特征,会让 Top100 的精确度提高 8%,2)我们把展示未点击的数据作为特征引入到 User Representation Network 里面,其中会用到历史搜索和历史阅读数据。3)展示了但是跳过的内容会在采样的时候加大权重,把它成为负例的概率变得更大,让用户的行为来指导采样。

排序

  • GBDT -> DNN -> ATTENTION+LSTM , 强化学习
  • 引入 FM 层作为这些类别之间的 Sparse Input 之间的交叉,AUC 提升了 0.2%,CTR提升了 1%。引入 CNN 及 LSTM 分别作为文本Encoder/Last Action Encoder,单用户使用时长提高 50 秒。
  • 引入 Attention 机制作为用户 Embedding 和 Candidate Embedding 之间的交叉权重,单用户使用时长增加了 40 秒左右
  • 多目标:我们使用了 CTR 预估模型预训练网络,利用 Parameter Hard Sharing,点击和点赞这两层共享之前的权重,会有一个独立的隐藏层 model task 自己的目标,这样能降低前向/反向传播中的计算量。
  • 将连续值预测转化成离散值预测:阅读时长的分布,这个分布与正态分布比较类似。所以我们使用了 z-value 来对阅读市场进行离散化,离散化之后会把阅读时长分为五等——没点击、点击了阅读时长低、点击了阅读时长中等、点击了阅读时长偏高、点击了阅读时长非常高
  • 修改了 Softmax 函数:如果预测出的档数和实际用户阅读时长档数差太多,我们加一个比较大的修改函数,让这种样本的 loss 加大

模型训练问题和业务问题

  • 样本组织:线上进行实时打点避免穿越;正负样本进行不同采样率的实验
  • 特征工程:分布范围比较大的特征,有一万个赞也有几万个赞的,做 CTR 预估的过程中赞量的影响会变得非常不平均,所以通常会进行特征的归一化和 boxing,分成不同的段输入
  • 模型评估:做了一个 DCG Gain 收益的指标,比AUC具有更高的参考意义
  • 多样性问题:一个内容出现几次之后你没有点击,之后都不会推荐相似的内容
  • 信息茧房:针对老用户及兴趣比较均匀的用户,适当减少兴趣探测力度,在探测过程中也会尽量使用 Tag 之间的关联信息增强探测效率

总结

  • ES也许在我们目前的场景中能发挥用处,而不用人工来进行索引拆解
  • DNN来进行召回和排序看起来已经是业界非常通用的方法了,而且ESSM和DIN、DIEN这些ali的方法看起来工业届也是用起来比较合适的
  • 特征工程其实有很多统计的工作
  • 配置化不仅策略上线方便,监控也方便

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

An Introduction to Genetic Algorithms

An Introduction to Genetic Algorithms

Melanie Mitchell / MIT Press / 1998-2-6 / USD 45.00

Genetic algorithms have been used in science and engineering as adaptive algorithms for solving practical problems and as computational models of natural evolutionary systems. This brief, accessible i......一起来看看 《An Introduction to Genetic Algorithms》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具