写点什么

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:381750

评论

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

算力网络智能选路新向导

鲸品堂

算力 电信运营商 算力网络 企业号 3 月 PK 榜

软件测试/测试开发 | 电商业务的性能测试(一): 必备基础知识

测试人

软件测试 自动化测试 测试开发

问:你是如何进行react状态管理方案选择的?

beifeng1996

前端 React

校招前端二面经典react面试题及答案

beifeng1996

前端 React

一文带你深度探析:软硬科技协同创新正当时

加入高科技仿生人

人工智能 科技 科技创新 ChatGPT

企业数字化转型的核心——工作流

力软低代码开发平台

常见的ftp文件传输工具有哪些?推荐最佳ftp文件传输工具

镭速

vue为什么v-for的优先级比v-if的高?

bb_xiaxia1998

Vue 前端

2023我的前端面试小结

loveX001

JavaScript 前端

什么大模型?我是时尚产业“大模王”!

白洞计划

AI AI制衣

精心整理SpringBoot学习笔记,从Web入门到系统架构

Java你猿哥

Java 面试 面经 校招 春招 java

从智能合约到机器学习:NFT 与 AI 技术的结合

NFT Research

大数据 AI NFT

架构训练营模块七作业

gigifrog

架构训练营

滴滴前端一面常考vue面试题(持续更新中)

bb_xiaxia1998

Vue 前端

美团面试全流程详解:一面 + 二面

Java你猿哥

ssm Java 面试 面经 java

flutter系列之:创建一个内嵌的navigation

程序那些事

flutter 架构 大前端 程序那些事

一场HttpClient调用未关闭流引发的问题

石臻臻的杂货铺

HttpClient

80%的前端开发都答不上来的js异步面试题

loveX001

JavaScript 前端

​在行 | AI赋能,为行业发展创造全新可能

用友BIP

为什么00后都不知道什么是报销?

用友BIP

差旅报销

好家伙!阿里最新版高并发系统设计涵盖了“三高”所有骚操作

Java你猿哥

java面试 面经 春招 java 八股文

4万字,阿里云《大型体育赛事云上实战精选》电子书发布!

阿里云CloudImagine

云计算 视频云

加速数据要素价值释放,用友打造高性能时序数据库

用友BIP

数据分析

问:React的useState和setState到底是同步还是异步呢?

beifeng1996

React

字节前端二面react面试题(边面边更)

beifeng1996

前端 React

出道即封神的ChatGPT,现在怎么样了?

引迈信息

人工智能 低代码 ChatGPT

两会共议北斗发展,华大北斗芯片领衔

江湖老铁

chatgpt 集成飞书实践指南

车江毅

聊天机器人 飞书 java ChatGPT

Visual ChatGPT:跟聊天机器人一起绘画

Zilliz

计算机视觉 ChatGPT

接近8000字的Spring/Spring常用注解总结!安排!

Java你猿哥

spring Spring Boot ssm java

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