本文主要是翻译了零样本学习在推荐冷启动中使用,在其中增加了部分个人说明,小编翻译论文仅为学习,如有侵权请联系小编删除博文,谢谢!
概要:
零样本学习与推荐冷启动在计算机视觉、推荐系统中是两大难题,一般说,这两个问题在不同社区研究中,是各自研究的。在这篇论文中,把零样本学习与冷启动作为同一个问题的两个扩展问题来看待。比如,他们都在试图对未知的分类进行预测,他们涉及两个领域,一个用于特征表示,一个用于描述的补充。然而目前还是没有从零样本学习角度去解决冷启动推荐的方法。本论文是第一次阐述了,推荐冷启动问题是一个零样本学习的问题并提出了一个自定义的零样本学习方法去处理冷启动问题。我们提出一个低秩线性自编码器((LLAE)它挑战三大难题,即:域迁移、虚假相关和计算效率。在这篇论文中,LLAE由两部分组成,一个是用低秩编码器将用户行为映射到用户属性。一个是解码器,从用户属性中重构用户行为。在零样本学习与冷启动的大量实验中验证了该方法是一个双赢的方法。与传统几种比较先进的方法对比,零样本学习能够显著提高冷启动的性能,同时冷启动也能够增强零样本学习。
介绍:
从一个海量库存的系统中,推荐系统基于用户当前上下文信息以及过去的行为给用户推荐可能喜欢的商品。如果一个用户的过去行为用不起来,或者他就是一个新用户。对于大多数的推荐系统,特别是那些基于协调过滤的主流推荐系统就傻眼了。所以大家提出了各种不同的方法来解决这个问题,这就是众所周知的冷启动推荐(CSR)问题。最近像类似的跨域信息、个人信息以及社交网络数据会被用来提升CSR问题。

图片1:冷启动与零样本学习说明。
现有冷启动方法,是利用用户偏好为新用户生成推荐,在冷启动推荐中,使用用户偏好,我们会有两个维度,一个是用户属性(用户偏好与用户信息),一个是用户行为(购买行为与过去的互动信息)。属性维度用户去描述用户的兴趣,行为维度用户表示用户在目标系统中的交互。因此冷启动推荐可以定义为为新用户进行推荐的问题,在这个问题中,用户行为信息是没有的,我们只有用户的部分属性信息。我们假设有相同兴趣(属性维度)的人,在消费上的行为是相似的,那么冷启动问题就可以分下面两个步骤去处理:
1:把用户行为属性映射到属性空间中,这样就能把新用户与老用户关联起来。
2:根据用户属性重构用户行为,这样我们就可以给新用户进行推荐了。
这是一个零样本学习的特例。
从图1中我们可以看出,零样本与冷启动推荐是一个相同概念的两个扩展,它们都包含两个空间:一个是特征的表示,一个是描述的补充。它们都试图利用可见与不可见的描述空间来预测特征空间中不可见的情况。首次提出使用零样本学习方法解决冷启动问题。
将冷启动定义为零样本学习问题,在本文中我们挑战了三个难题:
第一个是领域转移问题。不仅用户行为空间与属性空间是异构的,而且老用户与新用户的概率分布也是发散的。因此,我们必须保证用户行为是可以通过用户属性进行重构的。
第二个难题是在冷启动推荐中的用户行为与计算机视觉任务中的零样本学习是不同的,它非常的稀疏。在现实零售巨头比如亚马逊,他有上亿的用户与更加丰富的商品,对于一个特定的用户,在系统中只有很少的交互行为,与商品项之间的交互可能会更少。因此用户-商品的矩阵会非常的稀疏。
最后一个难题是效率问题,推荐系统是一个在线系统,用户来不及等待。
在技术上,我们提出一个新的零样本学习(ZSL)来解决冷启动(CRS)问题,名字叫低秩线性自动编码器(LLAE),这个是基于encoder-decoder模式。LLAE是由一个编码器组成,它将用户行为空间映射到了用户属性空间。同时他还有一个解码器,这个解码器通过用户的属性空间重构用户行为。重构部分保证可以从用户属性生成用户行为,这样就用户行为与用户属性之间的领域迁移问题就会被降低。由于效率问题我们把LLAE表示成线性模型。模型计算量与样本数无关,因此它可以用来处理大规模数据集。此外还部署了一个低秩约束来处理稀疏问题。低秩表示已经被证明从损坏的观测数据中揭示真实数据的问题是有效的。一个行为可能与多个属性相关联,关联的这些属性也有不同的权重,有些属性则非常简单。如果我们把所有属性都考虑进去了,可能会削弱主因素带来的影响,引入过度拟合,降低泛化能力。低秩约束由于其数学上的特性,能够找出主导因素,过滤掉噪点联系,换句话说,就是防止了那些虚假关联因素。低秩约束还可以从域适应的角度上来对齐域转移。总之,本文贡献如下:
1:首次把零样本学习与冷启动关联起来。
2:创新提出LLAE模型,效率高,能处理大规模数据。
3:大量数据实验证明了,找个方法有效性。
相关工作:
零样本学习:
传统的视觉识别算法的假设是,测试类的实例要包含在训练集中,所以可以通过训练样本识别其他测试实例。对于大规模数据集,为新对象或者稀有对象收集数据集是非常困难的事情,那么我们是否能像人类一样,用一些语义描述来识别未知物体。因此,零样本学习被提出,通常情况下,零样本学习算法学习了一个将视觉空间映射到语义空间的投影,或者反过来学。基于不同的投影策略提出了不同的模型。总的来说,现在零样本学习被分为三类:
1:学习从视觉空间到语义空间的映射函数。
2:学习从语义空间到视觉空间的映射函数。
3:学习由视觉域与语义域共享的潜在空间。
推荐冷启动:
在解决用户冷启动推荐问题中,我们重点研究利用用户属性,个人信息与社交网络数据等周边信息来解决冷启动问题的模型。这些模型大致可以分为三类:
1:基于相似性模型
2:基于矩阵分解模型
3:特征映射模型
矩阵分解模型通常通过下面这个优化目标将一个关系矩阵分解为两个潜在的表示,优化目标如下:

其中Ω是正则化,用来避免过度拟合。对于冷启动问题,可以通过周边信息学习到共享的U与V,然后用这俩去预测Y。简单的说Y可能是一个用户与商品的行为矩阵。U是用户潜在特征,V是商品潜在特征。

表格1:符号及相应的描述,其中n,d,k表示行为空间、属性空间的样本数和向量维数。r是矩阵的秩。
特征映射模型通常学习侧信息与潜在特征表示之间的特征映射。矩阵分解模型与特征映射模型之间的不同在于矩阵分解模型中共享的U是由Y与侧信息共同学习到的。而在特征映射模型中,需要学习一个额外的特征映射,通过共享的特征映射进一步学习不同的Us与Ut。
问题公式化:
标记说明:
在这篇论文中,我们使用黑体小写字母表示向量,用黑体大写字母表示矩阵,对于矩阵M,他的Frobenius norm被定义为: ,其中 是M矩阵的第i个奇异值。矩阵M的迹用tr(M)来表示。更详细符号看表1.
线性低秩去燥自动编码器:
给定一个输入数据矩阵X,假设我们可以学习到一个映射W,它能将矩阵X投影到一个潜在的空间S中。另外一个映射M,它能够从空间S中重构X。作为一个优化问题,我们的目标就是最小化重构误差。因此目标函数如下:

通常情况下,潜在空间都是用隐藏层来表示,考虑效率与可解释性,我们只在模型中部署一个隐藏层S,在这个文章中,S有明确的定义,在零样本学习ZSL中表示语义空间,在冷启动推荐CSR中表示用户侧信息。最近捆绑权重tied weights被引入到自编码器中,可以加快模型训练,减少模型参数。在这个文章中,假设将捆绑权重M = 。我们将公示2变为如下图:

详细图解:

该图是LLAE一个简单说明,首先我们学习一个低秩编码器,我们把用户行为映射到用户属性。然后利用新用户的属性重构用户行为。为了提高效率,编码器与解码器的参数权重是对称的这里就是利用了tied weights算法,注意:编码器可以保证热用户与冷用户在属性空间中能够比较,重构阶段基于用户属性重构用户行为。
我们知道,在真实推荐系统中我们面临的挑战是要处理高维的稀疏矩阵。因为有数百万商品、用户,对于一个用户只会与很少的商品发生交互。为了避免由于映射矩阵带来的伪相关,W矩阵应该是一个低秩的,所以我们得到下面公式:

其中rank(•)是矩阵秩的运算操作,其中, β > 0是一个惩罚参数,值得注意的是,W上的秩约束至少从两个方面来说对模型都是有益的。
1:过滤从行为空间到属性空间映射的虚假关联。
2:它能够凸显不同用户之间共享属性。
对于一个特定属性的例子,比如:篮球迷,这个属性是不同年龄用户共有的属性。那么在W上的低秩约束就能够识别出这些常见的属性。
在一些冷启动任务中,这两个空间可能不怎么相关,矩阵低秩约束能够忙住找出相对来说更加相关的部分。在重构阶段更加关键,因为如果没有重构约束的话,映射可能是不准确的。重构部分有效的解决了域转移的问题。尽管用户的行为可能会从温用户变成冷用户,但是对从属性到行为的更真实的重构中的特征是能够在温域与冷域中概括出来的。从而使学习到的功能不容易受到领域迁移而影响的。
对于W的低秩约束使得优化变得困难,因为低秩是众所周知的NP难度问题。作为一个替代的方法,迹范数 被广泛用于以前的工作中用于鼓励低秩性。尽管迹范数控制矩阵的单个值。但是单个值的变化不总是导致秩的变化。受近期工作启发,这里建议使用一个显示形式的低秩约束,如下:

其中 是W的第i个奇异值。d是W所有奇异值的数量。不同于迹范数, 明确解决了映射W矩阵的r-smallest奇异值的平方和最小化问题。由于 tr(•)是矩阵迹的计算方式。V是由它对应的 矩阵的(d-r)个最小奇异值的奇异向量组成。因此目标函数可以写成:

在最后,为了学习到更加健壮的隐藏层,这里通过引入噪点数据的输入训练了一个去燥的自动编码器。这里把输入的X中10%的值设置为0.得到一个带有噪点的样本 ,这个时候优化的最终目标如下:注意,带噪音的 是在约束项中的。

问题优化:
为了优化上面那个公式,我们把首先把他改写成如下形式:
就是把S带进公式里了。S就是编码后的属性空间。
但是上面带约束的公式优化起来比较困难,这里我放宽约束,可以把公式改成下面这样:

中间引入了一个 ,想象一下,如果里面两个相等,那么这个值就是0,就跟公式9是一样的。
其中λ > 0,这个是一个惩罚项参数,这样我们得到的公式10就是一个具有全局最优解的凸优化问题。下面我们就计算公式10关于W的导数,我们知道在导数等于0的时候取最优值,所以我们求得公式10关于W的导数后,另期值为0.得到公式如下:
这里我简单加一个步骤:

具体推导如下:

最终得到公式:
值得注意的是,W的优化涉及到V,这里优化选择交替更新方式,我们首先将V看成常数,计算关于W的导数。将值设置为0,就是公式11.然后我们根据公式 去更新V。最后做个简单的替换,如下:

那么公式11就可以被写成:
AW + WB = C, (公式13)
Sylvester2可以有效的解决上面公式,这个函数在matlab中只需要一行代码。
W = sylvester(A, B, C)
下面是一个计算的伪代码:

看,这个实现很简单。
复杂度分析:
该算法的计算量有两部分组成:
1:W的优化 2:更新V 这两个操作的复杂度都是 。如果直接计算 ,而不是V
,那么第二部分的计算将会被降低到 (r 远小于d, 其中d是W的秩)。在任何情况下,这个算法只与向量维度相关,与样本数量无关,所以可以用户大规模计算。

零样本分类:
给定训练数据X与语义表示的S,我们可以根据公式13学习到一个编码的W与一个解码的 。对于新的测试样本集Xnew,我们可以用W将他嵌入到语义空间Snew = WXnew。这样Xnew的标签就可以通过计算Snew与Sproto之间的距离得到。Sproto是语义空间中的原型(其实你简单的理解X就是图片提取的一堆特征那么Sproto就是之前的语义上的一堆描述与描述对应的lable)。

f是一个分类器,它可以返回Xnew的标签,dis是一个度量距离的方法。

推荐冷启动:
假设我们用X表示用户的行为,即:用户浏览、购买、分享行为,这个通常是一个用户-商品矩阵。S是用户属性,例如用户的偏好、个人信息和社交网络数据。我们可以根据公式13学习到一个编码的W与一个解码的 ,对于一个新用户,冷启动推荐的目标是学习到一个Xnew,这个Xnew是用户与商品之间的一个潜在关系,可以通过下面计算得到:

最后这个推荐问题被转化为一个多目标分类问题,具体的说,就是可以使用逻辑回归函数去预测商品被推荐的概率,从中推荐出TOP-K个商品出来。

李春生:负责搜索推荐,工程与算法,对搜索推荐有兴趣的,大家一起交流,相互学习!

推荐冷启动-From Zero-Shot Learning to Cold-Start Recommendation翻译与解析相关推荐

  1. 左右互搏:GAN在爱奇艺短视频推荐冷启动中的实践

    导语:由于推荐系统冷启动问题的存在,在视频推荐中为用户推荐新视频是一个极具挑战的问题,新视频推荐的效果直接影响推荐系统"新陈代谢"的稳定性和内容生态的健康发展.为了解决该问题,本文 ...

  2. (转)Paper list of Meta Learning/ Learning to Learn/ One Shot Learning/ Lifelong Learning

    Meta Learning/ Learning to Learn/ One Shot Learning/ Lifelong Learning 2018-08-03 19:16:56 本文转自:http ...

  3. 【实践】强化学习在招聘推荐冷启动优化中的应用实践

    今天给大家带来58同城高级算法工程师沈冰阳所做的分享<强化学习在招聘推荐冷启动优化中的应用实践.pdf>,关注招聘推荐.强化学习.冷启动.搜索及推荐的伙伴们别错过啦!(到小程序:省时查报告 ...

  4. 语音识别(ASR)论文优选:挑战ASR规模极限Scaling ASR Improves Zero and Few Shot Learning

    声明:平时看些文章做些笔记分享出来,文章中难免存在错误的地方,还望大家海涵.搜集一些资料,方便查阅学习:http://yqli.tech/page/speech.html.语音合成领域论文列表请访问h ...

  5. Zero shot learning

    Zero shot learning 主要考察的问题是如何建立语义和视觉特征的关系(视觉特征一般用预训练好的CNN提取特征,不再进行fine-tine) 为了预测从未在训练集上出现的目标种类,仿照人的 ...

  6. Zero Shot Learning for Code Education: Rubric Sampling with Deep Learning Inference理解

    Wu M, Mosse M, Goodman N, et al. Zero Shot Learning for Code Education: Rubric Sampling with Deep Le ...

  7. 元学习之《Matching Networks for One Shot Learning》代码解读

    元学习系列文章 optimization based meta-learning <Model-Agnostic Meta-Learning for Fast Adaptation of Dee ...

  8. 论文阅读-2 | Meta-Learning with Task-Adaptive Loss Function for Few Shot Learning

    论文目录 0 概述 0.1 论文题目 0.2 摘要 1 简介 2 相关的工作 3 提出的方法 3.1 前言 3.1.1 提出问题 3.1.2 模型无关元学习 Model-agnostic meta-l ...

  9. 论文笔记:Limited Data Rolling Bearing Fault Diagnosis With Few Shot Learning

    论文:基于少样本学习的小样本滚动轴承故障诊断 Limited Data Rolling Bearing Fault Diagnosis With Few Shot Learning **摘要:**这篇 ...

最新文章

  1. python orm peewee
  2. ARM的编程模式和7种模式
  3. commonJS — DOM操作(for DOM)
  4. mysql的util_JDBC连接mysql工具类Util供大家参考
  5. textcnn文本词向量_文本分类模型之TextCNN
  6. Tomcat配置多个Service,多个同名的应用运行在一个tomcat下
  7. android程序的建立,创建第一个Android程序 HelloWorld
  8. TF-IDF算法-golang实现
  9. ffmpeg中的sws_scale算法性能测试
  10. idea2020不显示光标所在位置的方法名
  11. 周志华最新论文 | 深度森林:探索深度神经网络以外的方法
  12. 网站加了CDN后,字体图标报错Access-Control-Allow-Origin
  13. AndroidStudio报错解决方案
  14. linux怎么踢普通用户,Linux系统管理员踢用户的方法
  15. 科技创新就要高浓度、高密度
  16. 中国移动为何要对手机上网流量封顶
  17. Leetcode 130. 被围绕的区域
  18. 最新python与SEO实战课程第2期项目实战(完整)
  19. MS51替换N76E003注意事项
  20. Geant4不完全学习指南2(根据exampleB1.cc 简单分析G4RunManager源代码)

热门文章

  1. 中国ai chip初创公司_这个AI事实检查初创公司正在做Facebook和Twitter不会做的事情
  2. Kafka消费者无法消费数据,解决
  3. 计算机视觉论文速递(四)Dynamic Sparse R-CNN:Sparse R-CNN升级版,使用ResNet50也能达到47.2AP
  4. 一幅趣味漫画,让你读懂Linux内核!
  5. 【学习笔记】使用魔数快速求立方根
  6. 错字修改 | 布署1个中文文文本拼蟹纠错模型
  7. Koa2框架生态实战
  8. 学习python制作扑克
  9. 如何打印csdn的博客,支持谷歌、火狐浏览器
  10. 自学Java随时放弃(十一 循环结构语句③)