写点什么

Google 工业风最新论文, Youtube 提出双塔结构流式模型进行大规模推荐

  • 2020-03-19
  • 本文字数:1305 字

    阅读完需:约 4 分钟

Google工业风最新论文, Youtube提出双塔结构流式模型进行大规模推荐

本文主要介绍 Google 在 RecSys 2019 上的最新论文,提出了双塔结构流式模型应用于 Youtube 进行大规模推荐



介绍


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


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


模型架构


我们考虑一种通用的推荐问题设定:给定一系列 query 和候选集,目标就是在给定 query 的情况下返回最相关的一个候选子集。针对这里的 query 和候选集中的 item,都可以用各自的特征向量来进行表示。在个性化推荐场景中,则是用户 user 和会话的上下文 context 构成这里的 query 侧


都知道 Youtube 的推荐架构主要分为两个阶段:召回和排序。而本文则主要聚焦于新增一路如下图所示的双塔召回。query 侧的塔是由大量的用户观看历史形成的 user features 以及共同的 seed features 构成,候选集侧的塔则是由视频特征构成。训练样本的 Label 则是由用户的点击和播放时长加权得到。



序列式训练


Youtube 的训练数据按天依次产生,训练数据以 streaming 的方式喂给分布式训练集群。这样模型就可以自动学习并适应最新数据分布的变化。训练算法如下图所示,当收到一个 batch 的训练样本时,首先针对候选集的 item 进行采样概率预测,然后根据预测的采样概率构建损失函数,最后迭代训练即可。



流式频率预估的算法如下图所示。由于候选集 item 的词典不是固定的,时刻都会有新的 item 产生。因此这里针对 item 使用 hash 函数做了一个映射。针对一个指定的候选 item y,A 表示 y 被采样最近一次步骤,B 则表示 y 的预估频率。一旦候选 item y 在迭代步骤 t 中出现,即可以按照下面迭代公式更新 B。



索引和模型预估


如下图所示,索引 pipe 分为三个阶段:候选集生成,embedding 预测和 embedding 索引。


上述序列式训练生成的双塔模型会定期地保存成为 SavedModel 并与线上的预测模型保持同步。对于索引库里的所有候选 item,可以使用双塔模型的候选集侧的塔生成 item 的 embedding;然后再通过基于树或者量化 hash 的方式来建立索引。



实验


为了评估所提出算法框架的有效性,我们进行了在 item 频率预估上的仿真实验、Wikipedia 上的检索实验以及 Youtube 上的实验。这里我们主要关注于在 Youtube 线上的实验。


模型结构采用上面介绍的结构,针对共同的输入特征,相应的 Embedding 在 query 和 item 的两个塔之间是共享的。双塔均使用三层 DNN 网络 1024 x 512 x 128。



本文转载自知乎专栏:深度推荐系统。


原文链接:https://zhuanlan.zhihu.com/p/88255834


2020-03-19 21:381780

评论

发布
暂无评论
发现更多内容

IoT系列,树莓派监控开关状态

IT蜗壳-Tango

IT蜗壳 IT蜗壳教学 5月日更

通证经济— 激励机制、社会生产、后资本主义

CECBC

模块五作业

c

架构实战营

百度爱番番与Servicemesh不得不说的故事

百度Geek说

智慧光伏能源-园区光伏发电能源管控可视化

一只数据鲸鱼

数据可视化 智慧园区 智慧能源 能源管理 光伏发电

One-on-One Meeting

escray

学习 5月日更 朱赟的技术管理课

架构之:软件架构漫谈

程序那些事

架构 系统架构 软件设计 程序那些事

dex优化对Arouter查找路径的影响

vivo互联网技术

android mongodb

Logstash-数据流引擎

进击的梦清

大数据 Linux 运维 后端 Logstash

自制文件系统 —— 1 什么文件系统

奇伢云存储

Linux 文件系统 Go 语言

在 Python 中解析和修改 XML,你会么?

华为云开发者联盟

Python xml 字符串 Python XML 解析器

99% 的同学写不出好代码,都是因为这个问题!

程序员鱼皮

Java c++ Python 自学编程 经验分享

人生算法:愿景,设计人生导航系统

石云升

读书笔记 愿景 5月日更

大数据采集和常见问题

数据社

大数据 数据采集 5月日更

iOS基础原理题目汇总

程序员 面试 iOS 知识体系

网络攻防学习笔记 Day31

穿过生命散发芬芳

5月日更 网络攻防

【Flutter 专题】116 图解 PhysicalModel & PhysicalShape 裁切小组件

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

5分钟速读之Rust权威指南(十三)

wzx

rust

深入剖析 MySQL 自增锁

leonsh

MySQL 数据库

唵嘛呢叭咪吽|靠谱点评

无量靠谱

react源码解析2.react的设计理念

全栈潇晨

React React Hooks react源码

文本分析基本流程

Qien Z.

文本分析 5月日更

6000 字 |Redis 分布式锁|从青铜到钻石的演进方案

悟空聊架构

redis 缓存 分布式锁 redis分布式锁 6月日更

HTTP协议

IT视界

网络协议 HTTP 网络通信协议

ModelArts的雪中送炭,让我拿下CCF BDCI华为Severless工作负载预测亚军

华为云开发者联盟

modelarts 工作负载 大赛 severless lstm架构

Dubbo 服务治理

青年IT男

dubbo

不愧是Alibaba技术官,Kafka的精髓全写这本“限量笔记”里,服了

Java 大数据 架构 面试

《面试官:谈谈你对索引的认知》之B-树

架构精进之路

MySQL 索引结构 6月日更

从外包到拿下阿里offer,这2年5个月13天到底发生了什么?

Java 程序员 架构 面试

不含敌意的坚决|靠谱点评

无量靠谱

聊一聊我最近使用的uniCloud是个什么玩意

麦洛

uniapp unicloud

Google工业风最新论文, Youtube提出双塔结构流式模型进行大规模推荐_语言 & 开发_深度传送门_InfoQ精选文章