50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

评论

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

一文简述:低代码是什么?低代码开发平台的分类、功能与构成

优秀

低代码 低代码开发平台 低代码平台

欢迎新朋友,通义灵码 AI IDE 来了 | 附 QA 答疑

阿里云云效

ide 通义千问 通义灵码

活动招募:如何构建一个学习型开发者社区?来 Dev.Together 2025 线下交流!丨 6 月 13 日,北京

声网

Web前端入门:JavaScript 各种对象定义与对象取值方法

不在线第一只蜗牛

JavaScript 前端 Web

Taro on Harmony C-API 版本正式开源

京东科技开发者

欢迎新朋友,通义灵码 AI IDE 来了 | 附 QA 答疑

阿里巴巴云原生

ide 通义灵码

报名|清华大学大数据产业论坛——航空航天专场

Apache IoTDB

做「长期主义者」的技术人们

京东科技开发者

备战金九银十,Java面试题总结,苦战30天拿下高薪Java岗!

程序员高级码农

Java 程序员 java面试

大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece

武子康

大数据 hadoop mapreduce hive

Linux下版本控制器(SVN) -服务器端环境搭建步骤

刘大猫

人工智能 svn 算法 tortoiseSVN 版本控制器

如何在 DataGrip 中 连接 Databend

Databend

Python打包

安信无限

Python 打包工具

5个case实测Fellou 2.0!做视频/网页/游戏/爬数据丝滑搞定!

阿星AI工作室

AI 智能体 大模型 agent AI产品

开源夜莺V8.Beta11发版,支持CK告警、事件Pipeline等

巴辉特

监控告警 运维监控 开源监控 开源夜莺

狄耐克与鸿蒙生态深度战略合作 并启动“百城万户鸿蒙社区家庭战略”

新消费日报

1688寻原通API接口攻略

tbapi

1688寻原通 1688寻原通API 1688寻原通系统

React-native之Flexbox

溪抱鱼

React native FlexBox

11Labs 发布对话式 AI 2.0,集成话轮转换和知识库,多语言多角色多模态;通义公布空间音频生成模型 OmniAudio

声网

别再用 MySQL Workbench 了,快试试 SQLark!

严少安

MySQL 达梦数据 SQLark

鸿蒙仓颉语言开发实战教程:商城登录页

幽蓝计划

鸿蒙仓颉

使用 Amazon Q Developer CLI 快速搭建各种场景的 Flink 数据同步管道

亚马逊云科技 (Amazon Web Services)

在鸿蒙开发中实现自定义进度条

幽蓝计划

接口重试的7种常用方案!

量贩潮汐·WholesaleTide

php 服务器

产品更新丨谷云科技ETLCloud 3.9.3 版本发布

谷云科技RestCloud

API 组件 ETL 数据集成工具

微店商品详情API接口指南

tbapi

微店商品API接口 微店API 微店详情接口

数字江西里的通信蝶变

脑极体

AI

解剖DeepSeek四把刀,一场深到源码,大到行业,细到人心的手术盛宴

京东科技开发者

Spring AI Alibaba + Nacos 动态 MCP Server 代理方案

阿里巴巴云原生

阿里云 微服务 云原生 Spring AI Alibaba

TextIn OCR Frontend前端开源组件库发布!

合合技术团队

人工智能 算法 #大数据

心怀热爱,共绽光芒——鲲鹏昇腾开发者大会 2025 印象记

猫头虎

鲲鹏 昇腾 昇腾AI 鲲鹏云 昇腾CNN

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