NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示

NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示本文是达摩院的研究人员借助VAE系解纠缠方法,对用户在推荐系统场景下的深层认知进行建模的探索


本文是达摩院的研究人员借助VAE系解纠缠方法,对用户在推荐系统场景下的深层认知进行建模的探索。本文涉及不少VAE系解纠缠的前置知识,在这篇文章会对解纠缠做一个简单介绍。还推荐读一下我的另一篇文章,对无监督解纠缠有一个更数学的了解:

https://zhuanlan.zhihu.com/p/

论文原文链接:

https://arxiv.org/pdf/1910.14238.pdf

解纠缠表示(Disentangled Representations)

现有的解纠缠方法主要是基于VAE的,具体是希望在VAE的中间层学到一个解纠缠的潜编码,即Disentangled Representations。所谓解纠缠,就是说将原始的数据,例如图像,映射到一个潜在的高维向量空间,希望空间中的潜编码的维度之间是彼此独立的。当我们从这个潜在向量空间采样出潜编码,并通过decoder得到新的数据时,潜编码的每一维控制所得到的数据的不同内容,且彼此不影响。例如,对于人脸数据,我可能得到的解纠缠表示有10维,第一维控制肤色,第二维控制头发的长度,第三维控制眼睛的大小,如果我调整第一维,保留所有其他维度,就可以生成同一个人脸不同肤色的图像,这就是VAE系解纠缠表示学习的目标。

和图像数据不同,推荐系统中用到的用户行为数据是稀疏的,而且属于时间序列数据,如何学习这样的的用户行为数据来做个性化推荐,是本文的主要贡献。

摘要

用户决策过程受一些深层的潜在因素影响,这些潜在因素之间的复杂交互驱动了用户的行为。这些因素纠缠在一起,高级别的因素掌控着用户的意向(例如相比买一台新的评判电脑,更倾向于买手机),低级别的因素刻画了用户执行一个意向时的偏好(例如更想买高刷屏的手机)。如果能够学习出解纠缠的表示,把这些纠缠在一起的潜在因素解离开来,就可以带来更好的鲁棒性,可解释性,和可控性。然而,学习这样的解纠缠表示很具有挑战性,依旧被现有的研究所忽视。本文提出了MACRo-mIcro Disentangled Variational Auto-Encoder (MacridVAE)来学习用户行为的解纠缠表示。

文本提出的方法可以通过推理和用户意向相关联的高级概念,实现宏观的解纠缠,并同时捕获用户对不同概念的偏好。使用一个源自于VAE的信息论解释的micro-distanglement正则项,使得表示中的每一维都单独反应一个独立的低级因素(例如手机的颜色或者是否有NFC)。实证的结果显示,本方法可以带来基于baseline的显著性能提升。作者展示了学习到的表示的可解释性和可控性,而这,有可能会带来一种新的推荐模式:即,可以由用户来微调这些表示,从而带来更加个性化的推荐。

介绍

基于用户的行为来学习能够反应用户偏好的表示,是推荐系统相关研究的中心问题。尽管已经取得了显著的成功,现有的基于用户行为的表示学习方法,例如基于深度模型的方法,都忽略了用户决策背后起决定性作用的潜在因素之间的复杂交互。潜在因素保持着混杂的状态,使得推荐模型不够鲁棒,且可解释性很低。

解纠缠表示学习的目的是学习出解纠缠的表示,这种表示可以从观测数据中把有意义的潜在因素解离出来。解纠缠表示更鲁棒,因为当数据有限,解纠缠的表示对于少量数据所呈现的虚假的相关性会不敏感;同时,解纠缠表示的可解释性也在推荐相关的任务中可以得到应用,例如transparent advertising(透明化广告),客户关系管理,和可解释性推荐。并且解纠缠表示的可控性,有潜力带来一种全新的推荐范式,由用户掌管更多细节。然而,现有的解纠缠表示学习主要是来自于CV领域。

用户行为数据是离散的关系数据,和已经得到很多研究的图像数据不同,这里有两个主要挑战:首先,潜在宏观控制因素,与潜在微观控制因素是并存的(用户意图与执行意图时的偏好),这要求我们在执行解纠缠时也能够分不同的级别去执行。其次,用户行为数据也即user-item交互数据,是离散并且稀疏的,而我们要学习的表示是连续的。这意味着高维的表示空间中,大部分点是不和任何用户行为相关联的。这就会带来一个问题:当我们想要研究表示的某一维的意义时,我们可能固定其他维度,调整这一维的数据来看看带来的变化,但很可能什么也对应不上。

本文提出了MacridVAE,分别显式的建模了宏观与微观因素,在两个不同的级别执行解纠缠。文本提出的方法可以通过推理和用户意向相关联的高级概念,实现宏观的解纠缠,并同时捕获用户对不同概念的偏好。使用一个源自于VAE的信息论解释的micro-distanglement正则项,使得表示中的每一维都单独反应一个独立的低级因素(例如手机的颜色或者是否有NFC)。研究所学习到的表示的可解释性时,本文提出使用一个beam-search策略来寻找平滑路径,以此解决表示空间的稠密与观测数据的稀疏之间的矛盾。

问题定义

问题定义: 用户行为数据 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 包含N个用户与M个物品之间的交互信息。用 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 来表示第u个用户与第i个物品发生过交互,否则这一项为0。简单起见,用 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 表示被用户u交互过的物品集合。我们的目标是学习所有用户的表示 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 实现宏观与微观的解纠缠。

宏观解纠缠: 用户可能有多样的兴趣,并且和属于不同高级别概念(这里的高级别概念可以是产品类别,如美妆,数码,学习)的物品发生过交互。实现宏观解纠缠,就是要学习用户u的分解的表示 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,即,假设有K个高级概念,且 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 捕获了用户对第k个概念的偏好。此外,我们为物品也推理出一个one-hot向量集合: NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,其中 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 。如果物品i属于概念k,那么 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,对于 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 此项为0。我们联合且无监督的推理 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 与 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 。

微观解纠缠: 微观解纠缠在于解离出用户对一个物品更细粒度的偏好。例如,当第k个概念代表服装时,我们希望 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 的不同维度能够捕获用户对尺寸,颜色等更细粒度概念的偏好。

模型框架

首先,我们提出一个能够鼓励宏观解纠缠的生成模型。对于用户u,我们的生成模型假设观测数据是从下列分布生成的:

NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示

这里假设 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 与 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 是独立的,即 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 。这里注意 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 是one-hot的,因为我们假设第i个物品只属于一个概念。这里 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 是一个在M个物品上的类别分布,其中 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 类似于一个规范化项: NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,这里 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 是一个前层的神经网络,输入 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 维向量 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,输出的是用户u在给定偏好k下对物品i感兴趣的程度。这里采用sampled softmax[1]去估计 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,当M很大时,这种方法只需要采样一小部分样本即可。

宏观解纠缠 我们假设上述用户表示 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 足以用来预测用户如何与物品交互,并且进一步假设使用第k个元素 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 足够预测来自第k个概念的物品。这种设计显式的鼓励 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 去只捕获第k个概念的偏好,只要推理出的概念分配矩阵 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 (因为如果物品i属于概念k,那么 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,对于 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 此项为0,所以叫概念分配矩阵)是有意义的。换句话说,宏观接纠缠不是通过VAE系常纠缠常见的方法实现的,而是通过用户表示的构造方式来实现的。我们后面会详细的探讨 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 的执行细节。另外, NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 需要小心的设计来防止mode collapose,即,几乎所有的物品都被分配到单个概念上的情况。

变分推理 我们跟随VAE的范式,并且通过最大化下界 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 来优化 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,其中 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 是通过下式来限制的:

NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示

这里引入一个变分分布 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,这个变分分布的执行也会鼓励宏观解纠缠。两个期望: NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 和 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,都非常难解,因此使用Gumbel-Softmax trick和高斯重参数化技巧来解。一旦训练过程完成了,我们把 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 的mode作为 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 使用,把 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 的mode作为用户 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 的表示。

微观解纠缠 一个自然的鼓励微观解纠缠的策略是鼓励维度之间的统计独立性,即,强制 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,即每一维都描述一个独立的因素。这里 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 。为了鼓励这种独立性,上面所写的下界中的KL散度项可以化为下面这种形式:

NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示

这种分解其实和FactorVAE,Beta-TCVAE的思想差不多。只要选择满足 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 条件的先验,惩罚上式最后的一个KL散度就可以鼓励维度之间趋于独立,此时上式的最后的KL散度又可称作total correlation。另一方面,前面那一项是 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 和 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 在 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 。惩罚互信息 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 等价于应用信息瓶颈准则[2],鼓励 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 去尽可能多的忽略输入中的噪音,只注意主要信息。然后依照 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 -VAE,并通过一个因子 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 强化这两个正则化项,然后就有了下列训练目标:

NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示

模型的实现细节

文中使用了K个概念的表示 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,与M个物品的表示 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,和M个上下文表示 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 。

  • NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 的建模

文章先假设了一种直接的做法: NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,认为这种方法会造成过度参数化,并且采样效率低。本文对C的分布的建模方法为:

NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示

这里 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 来让续弦相似度函数更加陡峭。

  • 防止mode collapse

文中认为,上面这一步选择余弦相似度,而非深度学习中常见的内积相似度,可以防止mode collapse。当使用内积时,很可能大部分的物品都被分配给单个概念 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,从而使得 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 很大。而余弦相似度的归一化就避免了这种情况。

  • 解码器

给出用户表示 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 和概念分配矩阵 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,解码器预测M个物品中,哪一个更可能被用户点击,即,求 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 。假设:

NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 是一个对M个物品的类别分布,其中:

NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示

这种设计意味着,如果 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 是微观解纠缠(维度之间彼此独立)的表示,那么NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 也是微观解纠缠的表示,因为二者的维度是对齐的。

  • 先验与编码器

先验 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 要是因子分解的形式,这样才能够实现微观解纠缠,因子分解的形式即: NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 。这里,就让 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 。编码器 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示是给定用户行为数据 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,来计算用户的表示NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 。编码器维持一个额外的上下文表示 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 而不是重用来自解码器的物品表示 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 。假设 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,其中每个 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 都是对角协方差矩阵的多元高斯 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,其中均值和标准差都是神经网络( NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 )的输出经过重参数化得到的:

NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示

均值被正则化是为了和余弦相似度保持一致,学习到的表示被正则化过,这里 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 应该设一个很小的值,文中认为是0.1左右。

用户控制的推荐

既然有了用户和物品的解纠缠表示,我们最终想达到的目的是,让用户能够修改这些解纠缠的表示,来细粒度的对推荐结果进行调整。

定义 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 为要微调的表示,可以通过一个物品表示或者用户表示的一个组成部分来初始化 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 。任务是通过略微调整 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 的第j维,得到 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,然后检索表示和 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 接近的物品。这个任务并不简单,因为当我们略微的修改 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 得到 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,通常不会有物品的表示和 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 完全相同,尤其是这里我们想要这个过程尽可能平滑,并朝着一个方向变化,从而让用户可以理解所发生的的变化。

文中对这一任务提出了一种方法。首先为 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 探索出一个合适的范围 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,如何探索出这个范围呢?首先假定概念 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 是和 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 最接近的原型概念。调整 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,看 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 何时不再是和 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 最接近的原型概念,就得到了一个范围 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,这里可以通过二分搜索实现。然后把这个范围分成B个子区间,分割时,要确保每个子区间都包含大概相同的数量的来自概念 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 物品。最后,我们从这B个区间取出B个物品 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 ,对应的表示即为 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 .

物品通过最大化下式来选取:

NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示

第一项求的是第t个物品的表示(除了j维),和初始物品表示(除了第j维)的相似度,即,约束物品和初始物品相似。第二项求的是前后两个相邻区间物品表示(除了第j维)的相似度,即,约束相邻区间的物品相似,从而使得推荐结果更加平滑。这个最大化问题可以通过beam search来序列化的求解[3]

实验结果

对比的baseline是MultVAE和 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 MultVAE,除了用了一些常规数据集之外,还用了AliShop-7C数据集,且代码与数据集都公开了。

对比的方法中,NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示和 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 很像,但是前者的超参数 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 是远小于1的,因此并不能解纠缠,因此,文中做的和 NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示 解纠缠性能对比的实验也就没什么意义了。

这里关注两部分实验,一是NDCG和召回率指标实验,二是可视化实验。

NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示

常规性能对比部分,作者控制每种方法学习的表示的维度一致。相比于baseline本文所提出的方法有明显优势,尤其是在稀疏数据。

NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示

这幅图是通过t-SNE可视化方法得到的,2c展示了推理出的物品表示的类别分布,2d为真实物品的类别分布,二者比较类似,注意图2c的结果在推理过程中是没有用到类别标签数据的。2e用来展示内积相似度的缺点,本文使用了余弦相似度。

NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示

这幅图直观的展示了对解纠缠表示维度做修改时,物品的变化。以图a为例,调整包的尺寸维度时,包的款式和颜色都没怎么变化,说明了方法的有效性(但其实图片尺寸和真实尺寸肯定是不一样的,其实没什么用,不过是作为论文结果展示起来比较方便)。另外也可以看到,修改食物的解纠缠表示的某一维度时,食物的变化趋势是我们无法理解的,这里就说明,无监督的解纠缠会带来人类无法理解的概念,还是要半监督或者监督的解纠缠才更有意义,本文把这当作未来工作。

参考

  1. 理解sampled softmax:

    https://www.zhihu.com/question//answer/

  2. 理解信息学瓶颈:

    https://zhuanlan.zhihu.com/p/

  3. 理解beam search:

    https://zhuanlan.zhihu.com/p/

喜欢的话点个在看吧????

今天的文章
NIPS2019|个性化推荐的另一种思路: 学习用户行为的解纠缠表示分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/60733.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注