一、背景

工业界现有的推荐系统都需要从一个超大规模的候选集中拉取item进行打分排序。解决数据稀疏和指数级候选集分布的一种通常做法是从item的内容特征中学习出item的稠密表示。这里很自然地就想到了工业界大名鼎鼎且应用广泛的双塔神经网络结构,其中的一塔就是从丰富的item内容特征中学习到item的表示。

工业界目前训练双塔结构一般是通过随机mini-batch的方式来优化损失函数。这种训练方式存在的一个显著问题就是in-batch loss会因为随机采样偏差而导致模型效果不好,尤其是当样本分布出现明显倾斜的时候。我们提出了一种全新的算法,可以从流式数据中预估item的频率。通过理论分析和实验,新算法有能力在不知道候选集全部的词典情况下做出无偏差的估计并且可以自适应候选集分布的变化。在Youtube线上的实验也证明了该算法的有效性。

二、亮点

在大规模的推荐系统中,利用双塔模型对user-item对的交互关系进行建模,学习【用户,上下文】向量与【item】向量,针对大规模流数据,提出in-batch softmax损失函数与流数据频率估计方法(Streaming Frequency Estimation),可以更好的适应item的多种数据分布。

三、模型结构

3.1 模型框架

利用双塔模型构架推荐系统,Queries特征向量 {xi}i=1N\{x_i\}^N_{i=1}{xi}i=1N和item特征向量{yj}j=1M\{y_j\}^M_{j=1}{yj}j=1M ,目标是给定一个query,检索到一系列item子集用于后续排序推荐任务。模型结构如图所示:

3.2 In-batch loss function


直觉上,检索问题可以看作是一个多分类问题,给定query X,从M个item中得到y的概率可以利用softmax函数计算:

当M非常大时,我们通常可以利用负采样算法进行计算。然而对于流数据,我们考虑在同一个batch中采样负样本,batch-softmax函数为:

在每个batch中,由于存在幂律分布现象,即如果在每个batch中随机采样负样本,会使热门商品更容易被采样到,在损失函数中就“过度”惩罚了这些热门商品,因此考虑用频率对采样进行修正,即:

这里引入pjp_jpj的作用是:当pjp_jpj越小时,−log(pj)-log(p_j)log(pj)越大,sc(xi,yj)s^c(x_i,y_j)sc(xi,yj)就越大;反之,当pjp_jpj越大时,sc(xi,yj)s^c(x_i,y_j)sc(xi,yj)就越小。相当于降低了热门商品的得分,提高了冷门商品的得分。

3.3 Streaming Frequency Estimation

此方法用于估计在流数据中,每个batch下item出现的概率。

如果一个item每50步出现一次,那么该item出现的概率p=1/50=0.02。按照这样的想法,针对流数据,利用哈希序列来记录采样id(暂时不考虑hash collision的问题)。

定义两个大小为H的数组A,B,哈希函数h可以把每个item映射为[H]内的整数。

A[h(y)]表示item y上次被采样到的时刻
B[h(y)]表示每多少步item y可以被采样一次
先说结论,当第t步y被采样到时,利用迭代可更新A,B:

利用上述的In-batch loss function与Streaming Frequency Estimation可建立双塔模型:

为了解决hash collision的问题,可以建立多个数组Ai,BiA_i,B_iAi,Bi,最终在多个数组中取最大:

3.4 YouTube推荐

利用双塔模型训练,对YouTube的视频推荐,模型架构如下图所示:

训练标签:当点击了video并观看完整,则ri=1r_i=1ri=1 ,否则ri=0r_i=0ri=0
视频特征:视频 id,频道id等,特征转化为embedding,对于多值类别时,对embedding加权平均
用户特征:历史观看视频embedding等

参考资料

  1. Google工业风最新论文, Youtube提出双塔结构流式模型进行大规模推荐
  2. 【推荐系统经典论文(九)】谷歌双塔模型

【推荐算法论文阅读】Sampling-Bias-Corrected Neural Modeling for Large Corpus Item Recommendations相关推荐

  1. 【推荐算法论文阅读】LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation

    这篇文章是基于NGCF提出的改进,NGCF相关的工作参考[推荐算法论文阅读]Neural Graph Collaborative Filtering 一.背景 通过严格的对照实验(在相同的数据集和评估 ...

  2. 长尾推荐算法论文阅读笔记合集(papers / literatures for long tail recommendation)

    写在前面: (1)我将长尾推荐系统相关论文做了一个整理,主要包括:论文题目.发表的会议/期刊(出处).发表时间.被引量(主要是google scholar),有的论文将对其内容进行简单介绍.最后提供这 ...

  3. 【推荐算法论文阅读】BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Trans

    一.背景 之前基于RNN的推荐模型都是按照从左到右单向建模的,单向结构限制了用户行为序列中隐藏表示的能力--它们通常假定一个严格有序的序列,而这并不总是实用的. 本文提出了 bert4rec,应用de ...

  4. 造球粒径检测算法论文阅读笔记

    造球粒径检测算法论文阅读笔记 1.图像感兴趣区域的划分 2.生球区图像高斯滤波 3.生球区域与阴影区域的分割 4.对生球区域的分类标记(区分上下层球) 1.图像感兴趣区域的划分 依据光照的不同,将图像 ...

  5. 推荐算法论文:Deep Neural Networks for YouTube Recommendations

    吹牛逼 按照经典的信息检索方式讲推荐系统划分为两部分 深度候选生成模型 深度排序模型 1. 介绍 youtube推荐系统面临的三个问题 规模:当前的推荐算法可以很好的解决数据量较小的问题,但是针对Yo ...

  6. 论文阅读:Multi-view Convolutional Neural Networks for 3D Shape Recognition

    Preface 今天阅读一篇ICCV2015的论文:<Multi-view Convolutional Neural Networks for 3D Shape Recognition>, ...

  7. 论文阅读:Tube Convolutional Neural Network (T-CNN) for Action Detection in Videos

    Tube Convolutional Neural Network (T-CNN) for Action Detection in Videos 文章目录 Tube Convolutional Neu ...

  8. 【推荐算法论文】ItemCF原文

    论文背景 22 January 2003 谷歌学术被引用次数:6769(截至2020年12月2日) 期刊:IEEE Internet Computing DOI: 10.1109/MIC.2003.1 ...

  9. keras cnn注意力机制_2019 SSA-CNN(自注意力机制)目标检测算法论文阅读笔记

    背景 <SSA-CNN Semantic Self-Attention CNN for Pedestrian Detection>是2019 的工作,其作者来自于南洋理工.这篇文章主要是做 ...

最新文章

  1. 系统遇到并发瓶颈时的优化方向
  2. 【MM模块】Invoice with Variances 差异
  3. 【渝粤题库】陕西师范大学720001 分子生物学
  4. python struct pack一个数组_Python中struct.pack的一个疑问
  5. 传播时延、发送时延、处理时延和排队时延各自的物理意义是什么?
  6. 解决SVN提交和更新代码冲突?
  7. Ajax实现页面加载等待
  8. Access 利用模版实现条码打印功能
  9. javashop多用户商城系统源码
  10. Shell设置环境变量
  11. 阿里巴巴矢量图标引入方法
  12. 安装pytorch详细教程
  13. 修改UEditor编辑器上传图片大小限制
  14. 智力推理:三个孩子的年龄分别是多少?
  15. A记录、CNAME、MX记录、NS记录的区别和联系
  16. 浅析分布式数据库同步技术理论
  17. ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  18. 单极性归零NRZ码、双极性非归零NRZ码、2ASK、2FSK、2PSK、2DPSK及MATLAB仿真
  19. 使用shizuku+小黑屋实现对MIUI系统应用的冻结
  20. tikz包 安装_TikZ: LaTeX绘图包

热门文章

  1. ScriptManager的使用方法
  2. 布尔代数(基本概念,运算规则,符号/数字代表的含义)
  3. Safari明明安装了flash还是提示安装
  4. CAD教程:CAD软件中如何进行CAD图层管理?
  5. java语音验证码_Java代码示例_Java语音验证接口 | 微米-中国领先的短信彩信接口平台服务商...
  6. 物联网核心技术,和专业技能分析
  7. python调用脚本后退出但是保持脚本运行_Python脚本后台运行的几种方式
  8. Android 语言环境设置Locale的设置
  9. 2023 彩虹易支付 OneTheme v1.0 用户美化主题模板
  10. gis插入的文本怎么搞成两行_怎么样制作标书?Word排版技巧大全,让标书制作更简单...