Learning Disentangled Representations for Recommendation | NIPS 2019 论文解读

简介: 近年来随着深度学习的发展,推荐系统大量使用用户行为数据来构建用户/商品表征,并以此来构建召回、排序、重排等推荐系统中的标准模块。普通算法得到的用户商品表征本身,并不具备可解释性,而往往只能提供用户-商品之间的attention分作为商品粒度的用户兴趣。我们在这篇文章中,想仅通过用户行为,学习到本身就具备一定可解释性的解离化的用户商品表征,并试图利用这样的商品表征完成单语义可控的推荐任务。

点击下载论文

点击下载电子书

1. 背景

近年来随着深度学习的发展,推荐系统大量使用用户行为数据来构建用户/商品表征,并以此来构建召回、排序、重排等推荐系统中的标准模块。普通算法得到的用户商品表征本身,并不具备可解释性,而往往只能提供用户-商品之间的attention分作为商品粒度的用户兴趣。我们在这篇文章中,想仅通过用户行为,学习到本身就具备一定可解释性的解离化的用户商品表征,并试图利用这样的商品表征完成单语义可控的推荐任务。

2. 什么是解离化表征?

image.png
图表 1 截图取自[1]

学习解离化表征的原因和人类认知的Binding Problem (BP) [3]有关。如上图所示,当我们看到一副上面四张图片时,我们可以识别两种较为独立的语义元素,即颜色、形状和位置,这个过程对应Segregation Problem (BP1)。如果我们学到的表征向量中,不同的维度能够分别代表不同的语义,我们称这样的表征是Disentangled的,反之如果某一维对应多种语义,则称该表征是Entangled的;而我们通过这些识别独立的语义元素进而可以组合生成下面四张新的图片,这个过程对应Combination Problem (BP2)。这里假设我们有一个生成模型,能通过BP1学到图片的Disentangled的表征,我们通过调整表征中单个维度的值即可达到只改变某个语义而不影响其他语义的生成,例如把绿色的方块变成绿色的心形,颜色位置不变。除了和人认知过程比较切合,还可以提供可控制的生成之外,学习解离化的向量表征的鲁棒性更好,对测试数据的分布相比而言敏感度较低,同时也有较好的解释性。
用户-商品解离化表征:
在电商系统中,拥有大量的用户、商品标签以及庞大的用户行为数据,如果可以通过这些数据学习解离化的用户和商品表征,将对推荐可解释、认知推理、营销等工作产生非常积极的影响。
而我们此次的工作,是用户-商品解离化表征工作的一个开端,因此我们仅使用到用户行为数据,并不涉及任何商品属性以及用户特征。我们探索,从用户行为当中,能否得到一些认知相关的决策因素并以可解离的方式对商品和用户进行表示。
具体来说,我们关注这样的两个和认知相关的子任务:
a) 商品在人的认知空间中,他们是如何表征的,这样的表征是否具有可解释性,例如是否能找到的对应的某一维就能够代表一个独立的“语义”。类似的,人在这个空间下的表征,是否也具有这样的语义。联系解离化表征(Disentangled Representation Learning)在图像数据上的发展,我们探索其是否能从离散数据,特别是用户行为数据上学习到类似的结果。
b) 基于这样的表征,我们能否提出新型应用,并至少给出一种原型方案。

3. 我们的方法

image.png

针对电商平台上用户行为的特点,我们的模型采用了层次化的设计:它在推理一个用户的表征时将依次进行宏观解离化(macro disentanglement)和微观解离化(micro disentanglement)。

宏观解离化: 宏观解离化的启发一方面来自于用户在综合类电商场景下的兴趣确实较为分散,另一方面也来自于人类的传统认知难题Binding Problem。首先,用户兴趣通常是非常广泛的,一个用户的点击记录往往会涉及到多个独立的消费意图(比如点击不同大类下的商品)。而用户在执行不同意图时的偏好往往也是独立,比如喜欢深色的衣服并不意味着用户也喜欢深色的电器。哪怕是价格偏好也常存在不可迁移的情况,比如买高档口红、和买便宜好用的笔记本电脑这两者并不互斥。另外,宏观解离化也是微观解离化的必要前提(见下)。因此,我们的将用户的表征拆分成K个d维分量 ,用来表示用户执行K种不同的意图时的偏好(比如这K个分量可以对应K个商品大类)。同时,每个商品都有对应的one-hot向量 ,其中 表示商品i通常与第k种宏观的消费意图相关(或属于第k个商品大类)。另一方面,给定一个数据整体(一副图像、一组用户行为),binding problem在讲人是如何将整体分割成部分(图像中不同的物体,行为中不同的兴趣),并且从部分组合出新的数据。这方面的研究本身有难度,也比较有意思。

微观解离化: 我们希望能把用户在执行某个意图时的偏好进一步地分解到更细的粒度。比如,设第k个意图对应服饰,我们希望用户在这个意图下的偏好向量 的各个维度能够对应不同的商品属性,比如某一维和颜色相关,另一维和尺寸相关,等等。这里我们看到,宏观解离是微观解离的前提:不同大类的商品属性集合是很不同的,用户表征向量的某一个维度如果已经被用于刻画用户对手机电量的偏好了,那么这一维对服饰等商品就是没有任何意义的——在预测用户是否会点击某个服饰时、在通过用户行为学习某个服饰的表征时,我们都应当忽略这些只和手机相关的维度。

3.1. 从用户行为学习解离化表征

我们的模型架构总览如下:

image.png

我们的模型是一个深度生成模型,它假设数据的生成过程是这样的:

image.png

image.png

image.png

image.png

image.png

3.2. 用户可控制的交互式推荐

解离化表征在带来一定的可解释性的同时,也带来了一定的可控制性。这种可控制性有望给推荐系统引入一种全新的用户体验。比如说,既然表征的各个维度关联的是不同的商品属性,那么我们完全可以把用户的表征向量提供给用户,允许用户自行固定绝大部分维度(比如对应的是衣服的风格、价格、尺寸等)、然后单独调整某个维度的取值(比如颜色对应的维度),系统再根据这个反馈调整推荐结果。这将帮助用户更加精准地表达自己想要的、并检索得到自己想要的。
我们从某个商品或用户的表征出发,在固定住其它维度后,我们逐步地改变表征第j维的取值。然后我们利用论文中提供的一种类似beam search的小技巧,检索出了表征第j维大不一样、但其它维度都很一致的一批商品。

4.离线数据上的定量实验

4.1. 定量评测解离化程度

我们在小规模数据集上定量测量了解离化程度(及其与推荐性能之间的关系)。我们初步发现:(1)解离化程度较高与推荐性能好这两者之间有较强的相关性;(2)我们引入宏观解离化后,确实大大改善了微观解离化;(3)我们的方法无论是解离化程度还是推荐性能,都优于基线方法。

image.png

4.2. Top-N推荐任务上的性能

我们接着测量了我们的方法在几个离线数据集(包括一个淘宝的数据集AliShop-7C)上的Top-N推荐表现。可以看出来我们的方法优于基线方法,尤其是在小规模或稀疏的数据集上。因为top-n推荐不是我们做这个问题的初衷,所以能做出这样的效果我们认为已经是令人满意的了。

image.png

4.3 用户可控制的交互式推荐

我们在淘宝数据集上进行了单语义控制的case study。以下是我们在调控某个维度后检索得到的两批商品,可以看出这个被调控的维度和背包的颜色这一属性比较相关:

image.png

image.png

以下是我们在另一个维度上检索得到的两批商品,可以看出这个维度和背包的大小这一属性比较相关:
image.png

image.png

当然,并不是所有的维度都有人类可以理解的语义。而且,正如文献[2]所指出的,在无监督的情况下,训练出可解释的模型仍然是需要运气的——在加了beta-VAE的约束后,获得可解释模型的概率相比普通VAE大大提高,但仍然避免不了“反复训练多个模型,然后挑出最好的模型”这一陷阱。因此,我们和文献[2]一样,建议未来的研究者们多多关注(弱/半)监督方法,引入标签信息。

5. 结语

随着现代电商推荐系统的技术发展,学术界和工业界在预估点击率,预测下一个点击商品这些单任务上的提高越发困难,而这样的提高所带来的离线数据上的增量效益也难以准确的对应在线上的指标。我们认为围绕人的认知行为和过程,来探索新的推荐形态的可能性也是一个有前景的方向。未来我们将结合标签、图谱等数据进行更进一步的探索。

6. 参考文献

[1] Beta-VAE: Learning Basic Visual Concepts with a Constrained Variational Framework. Higgins et al., ICLR 2017.
[2] Challenging Common Assumptions in the Unsupervised Learning of Disentangled Representations. Locatello et al., ICML 2019.
[3] The Binding Problem. https://en.wikipedia.org/wiki/Binding_problem
[4] On using Very Large Target Vocabulary for Neural Machine Translation. Jean et al.., ACL 2015.
[5] Categorical Reparameterization with Gumbel-Softmax. Jang et al., ICLR 2017.
[6] Learning Disentangled Representations for Recommendation. Ma & Zhou et al., NeurIPS 2019.

相关文章
|
自然语言处理 算法 数据挖掘
自蒸馏:一种简单高效的优化方式
背景知识蒸馏(knowledge distillation)指的是将预训练好的教师模型的知识通过蒸馏的方式迁移至学生模型,一般来说,教师模型会比学生模型网络容量更大,模型结构更复杂。对于学生而言,主要增益信息来自于更强的模型产出的带有更多可信信息的soft_label。例如下右图中,两个“2”对应的hard_label都是一样的,即0-9分类中,仅“2”类别对应概率为1.0,而soft_label
自蒸馏:一种简单高效的优化方式
|
机器学习/深度学习 数据采集 传感器
机器学习开发流程和用到的数据介绍
机器学习开发流程和用到的数据介绍
|
机器学习/深度学习 虚拟化 数据中心
NVIDIA T4和A10:不同应用场景下的GPU加速器选择
在数据中心和云计算领域,GPU加速器扮演着至关重要的角色。NVIDIA T4和A10是两款适用于不同应用场景的GPU加速器。本文将比较它们的性能和适用场景,帮助读者更好地选择适合自己需求的GPU实例。
6413 0
|
7月前
|
机器学习/深度学习 人工智能 自动驾驶
今日热门论文推荐:MM-Eureka、FedRand、EasyControl、FEA-Bench
由Skolkovo科技学院等机构提出的这项研究,聚焦于人工智能文本检测(ATD)的可解释性提升。利用Sparse Autoencoders(SAE)从Gemma-2-2b模型中提取特征,该工作揭示了现代大语言模型(LLM)与人类文本的差异,尤其是在信息密集领域,展现了独特的写作风格,为ATD提供了新的见解和方法。
98 14
|
11月前
|
分布式计算 DataWorks 数据处理
"DataWorks高级技巧揭秘:手把手教你如何在PyODPS节点中将模型一键写入OSS,实现数据处理的完美闭环!"
【10月更文挑战第23天】DataWorks是企业级的云数据开发管理平台,支持强大的数据处理和分析功能。通过PyODPS节点,用户可以编写Python代码执行ODPS任务。本文介绍了如何在DataWorks中训练模型并将其保存到OSS的详细步骤和示例代码,包括初始化ODPS和OSS服务、读取数据、训练模型、保存模型到OSS等关键步骤。
560 3
|
资源调度 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python UDF(User-Defined Function)来引用第三方模块
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
12月前
|
NoSQL Go Redis
关于kratos proto 生成pb.go的一些报错,问题
关于kratos proto 生成pb.go的一些报错,问题
|
12月前
|
机器学习/深度学习 自然语言处理 并行计算
多头注意力机制介绍
【10月更文挑战第4天】
|
存储 机器学习/深度学习 缓存
【数据挖掘】XGBoost面试题:与GBDT的区别?为什么使用泰勒二阶展开?为什么可以并行训练?为什么快?防止过拟合的方法?如何处理缺失值?
XGBoost与GBDT的区别、XGBoost使用泰勒二阶展开的原因、并行训练的原理、速度优势、防止过拟合的策略以及处理缺失值的方法,突出了XGBoost在提升模型性能和训练效率方面的一系列优化。
721 1
|
SQL 数据挖掘
SQLBolt,一个练习SQL的宝藏网站
SQLBolt,一个练习SQL的宝藏网站
246 0