《Learning to warm up cold Item Embeddings for Cold-start Recommendation with Meta Scaling and Shifting Networks》论文阅读
《Learning to warm up cold Item Embeddings for Cold-start Recommendation with Meta Scaling and Shifting Networks》论文阅读
(i)问题背景:
工业界的推荐系统/广告系统现在都会用embedding技术生成物品/用户的向量。通俗点讲就是build一个向量嵌入层,把带有原始特征的输入向量转换成一个低维度的dense向量表示。推荐系统的模型一般有向量嵌入层和深度模型层两部分组成,向量嵌入层的输出或作为深度学习模型的输入。因此embedding过程的好坏会影响后面深度学习模型的学习和预测效果。物品的ID的向量表示称为ID embedding。每个物品都有一个独特的ID,因此ID embedding也是物品独一无二的向量表示。所以学习到一个好的ID embedding对于提升整个系统的效果是非常关键的。
但是embedding技术是海量数据驱动的模型,数据量越大,学习到的向量表示效果才越好。并且学ID embedding的时候还会遇到冷启动的问题,冷启动的意思就是说一个新的物品进来,系统里没有关于它的历史信息,对它了解很少,因此是个比较新的未知数据。并且它和环境交互的数据也很少,在冷启动的情况下,现有的embedding技术要表示这种类型的物品ID embedding效果就会不好(这个时候学到的embedding叫Cold ID embedding),所以要想办法解决这个问题。
分析问题:
Cold ID embedding面临的问题 |
解决的方案 |
在deep model和cold ID embedding 之间存在一个gap。这里gap的意思接近于bias。和“二八定律”有点类似,少量的热门物品因为点击关注率很高,往往占据了整个训练数据集的大部分数据样本。因此模型学习embedding 向量的时候,会对热门物品的学习效果好,能学到很多热门物品的知识,但冷启动的物品因为缺乏足够量的data,训练出来的向量就会效果不好。 |
1.提出MWUF(Meta Warm Up Framework)网络去warm up cold ID embedding,其实本质上就是做个映射,把cold start embedding 映射到warm up空间里. MWUF框架包含一种公共初始化ID embedding以及两个meta networks。对于任何新来的物品,我们使用现有的物品embedding的均值来作为初始化。另外,Meta Scaling Network使用物品的特征作为输入,生成一个定制化的拉伸函数将冷启动ID embedding转化为warmer embedding。 |
Cold ID embedding 会被噪音的interaction数据影响。Cold ID embedding本来就缺乏足够的数据量来训练和学习,如果这个时候用户有一些错误的点击,即使是很小的噪声,也会对整个embedding的学习造成很严重的影响,bias会比较大。 |
Meta Shifting Network使用全局的交互过的用户作为输入,来生成一个偏移函数,来加强物品表示。 |
(ii)具体的算法流程和思路:
1.MWUF架构主要做的两点工作
第一个改变了初始化ID embedding的方法,原来对于新物品,都是采用随机初始化(randomly initialize),现在改为由MWUF初始化ID embedding。其实这个方法的本质就是采用元学习(meta learning)的思想,通过公共初始化ID embedding来生成common initial ID embedding。元学习的思想和迁移学习有点类似,就是通过把模型对已知任务的训练学到的经验和知识能在新任务上应用。在本文里面,就是通过对所有现有已知物品学习到的通识(common knowledge)应用于新物品的ID embedding初始化。啊再说的low一点,它就是把现有所有物品学到的ID embedding做个算数平均值作为新物品的初始化ID embedding。其实吹了这么多····· 什么元学习,高大上,冷启动,warm up,common knowledge,就是把随机赋值变成算个算数平均数再赋值而已··
第二个就是训练了两个meta network(Meta Shifting Network , Meta Scaling)并且加入了拉伸函数(Scaling Function)。本质上就是训练了一个映射函数,然后把Cold ID embedding 映射成一个新的 ID embedding,他把这个叫做warmer embedding,咋一看很高大上,其实就是训练了一个映射函数罢了··,相当于再加了一层预处理或者说数学变换。
2.模型框架
话不多说,上图:
整体框架如上所示,深度模型的输入包含4个部分,物品ID embedding,物品其他特征embedding,用户ID embedding,用户其他特征embedding:
Common Initial Embeddings: 提出了一种公共初始化embedding,使用现有的所有物品的ID embedding均值作为新加入的物品的初始化embedding。
Meta Scaling Network:希望将冷启动物品ID embedding转换到一个更好的特征空间,能更好地拟合深度模型。对于每一个物品,冷启动ID embedding和warm ID embedding之间存在一定的联系,认为相似的物品,这个联系也应该相似,因此Meta Scaling Network以物品的其他特征做为输入,输出一个拉伸函数:
Meta Shifting Network: 所有交互过的用户均值可以有效的减轻异常用户的影响,因此Meta Shifting Network以交互过的用户的均值表示作为输入,输出一个偏移函数
3.算法流程:
这里假设是一个推荐系统的二分类问题,比如CTR预估。每个样本包括一个user,一个item和一个对应的label(0或者1).
第i个物品的Item ID embedding 就是。各种item的feature做embedding 就是。同理可得第j个用户的User ID embedding为。各种user的feature做embedding为 。y是模型预测的结果。θ是整个模型网络的参数集合。损失函数采用对数损失的形式,为:
Φ 为embedding层的参数集合。
Overall Procedure:
整个算法流程分两步走,第一步先用已有的数据进行线上训练,学习整个模型的参数集合和。第二步固定参数和迭代采样训练两个meta network。生成Shift function和Scaling Function来解决gap和噪音的问题。
其实整个模型主要就是解决冷启动里面gap的问题,之后可能会魔改我们现有的model,引入本文的idea,看能不能改善线上模型的gap问题。如果之后确实用到,会接下来会把相关的coding部分也贴出来。
《Learning to warm up cold Item Embeddings for Cold-start Recommendation with Meta Scaling and Shifting Networks》论文阅读的更多相关文章
- 《Deep Learning of Graph Matching》论文阅读
1. 论文概述 论文首次将深度学习同图匹配(Graph matching)结合,设计了end-to-end网络去学习图匹配过程. 1.1 网络学习的目标(输出) 是两个图(Graph)之间的相似度矩阵 ...
- Deep Learning of Graph Matching 阅读笔记
Deep Learning of Graph Matching 阅读笔记 CVPR2018的一篇文章,主要提出了一种利用深度神经网络实现端到端图匹配(Graph Matching)的方法. 该篇文章理 ...
- Deep Reinforcement Learning for Dialogue Generation 论文阅读
本文来自李纪为博士的论文 Deep Reinforcement Learning for Dialogue Generation. 1,概述 当前在闲聊机器人中的主要技术框架都是seq2seq模型.但 ...
- Deep Learning 33:读论文“Densely Connected Convolutional Networks”-------DenseNet 简单理解
一.读前说明 1.论文"Densely Connected Convolutional Networks"是现在为止效果最好的CNN架构,比Resnet还好,有必要学习一下它为什么 ...
- Deep Learning 26:读论文“Maxout Networks”——ICML 2013
论文Maxout Networks实际上非常简单,只是发现一种新的激活函数(叫maxout)而已,跟relu有点类似,relu使用的max(x,0)是对每个通道的特征图的每一个单元执行的与0比较最大化 ...
- Discriminative Learning of Deep Convolutional Feature Point Descriptors 论文阅读笔记
介绍 该文提出一种基于深度学习的特征描述方法,并且对尺度变化.图像旋转.透射变换.非刚性变形.光照变化等具有很好的鲁棒性.该算法的整体思想并不复杂,使用孪生网络从图块中提取特征信息(得到一个128维的 ...
- Sequence to Sequence Learning with Neural Networks论文阅读
论文下载 作者(三位Google大佬)一开始提出DNN的缺点,DNN不能用于将序列映射到序列.此论文以机器翻译为例,核心模型是长短期记忆神经网络(LSTM),首先通过一个多层的LSTM将输入的语言序列 ...
- Deep Learning 24:读论文“Batch-normalized Maxout Network in Network”——mnist错误率为0.24%
读本篇论文“Batch-normalized Maxout Network in Network”的原因在它的mnist错误率为0.24%,世界排名第4.并且代码是用matlab写的,本人还没装caf ...
- Deep Learning 25:读论文“Network in Network”——ICLR 2014
论文Network in network (ICLR 2014)是对传统CNN的改进,传统的CNN就交替的卷积层和池化层的叠加,其中卷积层就是把上一层的输出与卷积核(即滤波器)卷积,是线性变换,然后再 ...
- Deep Learning 28:读论文“Multi Column Deep Neural Network for Traffic Sign Classification”-------MCDNN 简单理解
读这篇论文“ Multi Column Deep Neural Network for Traffic Sign Classification”是为了更加理解,论文“Multi-column Deep ...
随机推荐
- 【python】Leetcode每日一题-旋转链表
[python]Leetcode每日一题-旋转链表 [题目描述] 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置. 示例1: 输入:head = [1,2,3,4,5] ...
- 文件描述符fd
java 后台运行程序命令 nohup java -jar babyshark-0.0.1-SNAPSHOT.jar > log.file 2>&1 & 命令解释:后台启动 ...
- 【实用小技巧】spring springmvc集成shiro时报 No bean named 'shiroFilter' available
查了网上的,很多情况,不同的解决办法,总归一点就是配置文件加载的问题. 先看下配置文件中的配置 web.xml中的主要配置(这是修改后不在报错的:仅仅修改了一个位置:[classpath:spring ...
- Jmeter软件安装之Mac
Jmeter软件安装之Mac 一.环境准备 安装JDK 下载Jmeter 二.下载Jmeter 下载地址: http://jmeter.apache.org/download_jmeter.cgi,下 ...
- Mybatis学习之自定义持久层框架(五) 自定义持久层框架:封装CRUD操作
前言 上一篇文章我们完成了生产sqlSession的工作,与数据库的连接和创建会话的工作都已完成,今天我们可以来决定会话的内容了. 封装CRUD操作 首先我们需要创建一个SqlSession接口类,在 ...
- Govern Service 基于 Redis 的服务治理平台
Govern Service 基于 Redis 的服务治理平台(服务注册/发现 & 配置中心) Govern Service 是一个轻量级.低成本的服务注册.服务发现. 配置服务 SDK,通过 ...
- QFNU-11.08training
7-1 阅览室 题目: 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为不超过10 ...
- 【近取 key】技术规格说明书
项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 技术规格说明书 我在这个课程的目标是 进一步提升工程化开发能力,积累团队协作经验,熟悉全栈开发流程 ...
- Alpha事后分析
设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件的功能主要是让一些基于表单识别的项目(如微软智能表单识别项目)减少在数据生成方面上浪费的 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十二)——istio+dapr构建多运行时服务网格
多运行时是一个非常新的概念.在 2020 年,Bilgin Ibryam 提出了 Multi-Runtime(多运行时)的理念,对基于 Sidecar 模式的各种产品形态进行了实践总结和理论升华.那到 ...