Paper:Price-aware Recommendation with Graph Convolutional Networks
Link:https://arxiv.org/pdf/2003.03975v1.pdf
一篇发表在ICDE2020的非常好的文章哦~
在之前的我所阅读的推荐系统文章中,除了2018年的RecSys中一篇从生产者角度出发的文章外,印象中没有过多的与推荐场景关联的实际/现实因素。大多数研究都更关注用户特征和用户与物品之间的交互,以计算点击率之类的相关评估结果。但是在电商领域,像“价格”这种真实的、甚至有些起决定性的因素,却很少出现在科研文章中,这也许与公开数据集中常常没有这一特征有关。当然了,也许是我读的还不够多。
但是价格,是多么重要的特征啊!就算我们通过很好的模型能够给用户推荐她确实喜欢的物品,她也确实点击了这些推荐的物品。一旦商品详情中价格不符合她的心理预期,她就会遗憾地关掉网页。那么即使点击率有所提高了,转化率依旧不会提高。
今天我们来分享一篇重点描述了“价格因素”在推荐系统中应用的文章。
文章中提到价格在推荐系统中应用的难度有以下两点:
- 1)用户的价格意识未知。用户对商品价格的偏好和敏感度未知,这仅隐含地反映在用户购买的商品中。也就是说,我们只能通过用户是否购买了来判断该商品的价格是否合适。用户很少明确声明其对商品价格的偏好和敏感性。因此,要构建数据驱动的方法,我们必须从用户的购买历史中推断出用户对商品价格的个性化意识。更具挑战性的是,我们需要考虑相似用户历史中反映的CF效应,以提高推理的准确性。
- 2)商品类别对用户的价格意识影响很大。商品价格如何影响用户的意图很大程度上取决于商品的价格。产品类别,也就是用户对商品价格的感知和承受能力在各个类别之间可能会发生显着变化。例如一个女人可能不愿意花1000块钱买一块手表,但是可能愿意花1500块钱买一条新裙子。而男人则可能正好相反。因此,重要的是要考虑商品类别信息,以准确推断用户的价格偏好。
因此,作者开发了一种有效的方法来预测用户的购买意愿,并重点关注推荐系统中的价格因素,命名为PUP模型。
对于第一个难点,借鉴了图卷积网络(GCN),对用户物品和物品价格之间的传递关系进行建模。关键思想是通过物品作为桥梁传播价格对用户的影响,从而使学习到的用户表示具有价格意识。
对于第二个难题,我们将项目类别进一步整合到传播进度中,并对可能的成对交互进行建模,以预测用户与项目之间的交互。
进一步的分析表明,对价格意识进行建模对于预测用户对未开发类别的商品的偏好特别有用。
PUP模型
模型图如下图所示。
PUP模型的整体设计组件如下:统一的异质图,一个图卷积编码器(graph convolutional encoder)和一个基于成对交互的解码器。构建的统一异构图由四种类型的节点组成,其中用户节点连接到商品节点,商品节点连接到价格节点和类别节点。
文中强调,这项工作的重点是利用商品价格来提高推荐的准确性。由于用户的价格意识与产品类别密切相关,所以在设计价格意识推荐系统时,必须将类别考虑在内。
1. 统一的异构图 (Unified heterogeneous graph)
为了显式地建模用户行为和商品属性,我们离散了价格变量,并建立了包含四种类型节点的异构图。为了解决未声明的价格意识问题,我们明确地在图上引入价格作为价格节点,而不是项目节点的输入特征。针对类别依赖影响的难度,我们进一步在图中添加类别节点。
对于价格感知的产品推荐任务,我们同时拥有用户与产品的交互数据和产品的价格属性,明确地捕捉用户的价格感知是一项挑战,因为用户与价格没有直接关系。换句话说,用户与价格的关系是建立在用户对商品和商品对价格的传递关系之上的。这样,商品就起到了连接用户和价格的桥梁作用。
为了解决将复杂关系转化为统一模型的难题,我们将价格变量离散化,并构建由四种类型的节点用户、项目、价格和类别组成的异构图。
在图卷积网络中,常用的是使用word2vec提取的某些高级特征向量,如单词嵌入,作为节点的输入特征。同样的,将价格和类别信息编码到用户节点和产品节点的输入特征中似乎是合理的,这使得二分图设计更加简洁。
然而,在本文的工作中,我们明确地将两个重要的属性(价格和类别)作为实体节点,以一种更有表现力的方式捕获依赖于类别的价格感知。
通过分配不同的节点,价格和类别被直接和明确地捕获,上述两个价格感知产品推荐的困难得到了缓解。具体地说,未声明的价格感知被转化为异构图上的高阶邻居邻近,这可以被图卷积网络很好地捕获。通过将产品节点连接到价格节点和类别节点,可以减轻依赖于类别的影响问题。
2. 图卷积编码器 (Graph convolutional encoder)
为了同时捕获协同过滤(CF)效应和价格感知,我们利用图卷积网络作为编码器来学习用户、商品、价格和类别的语义表示。通过在异构图上传播嵌入信息,将价格敏感信息聚合到用户节点来获取用户的价格敏感性。
传统的Latent factor model (LFM)仅建模用户和物品的表示,本文中作者尝试学习同一潜在空间中四种类型实体的表示。主要的动机是在图上执行消息传递可以为多个任务(如节点分类和链接预测)生成语义性和鲁棒性的节点表示。其中有一类特殊的算法称为图神经网络,它达到了网络表示学习领域的最新水平。我们采用了一个编码模块,包括一个将独热输入转换为低维向量的嵌入层(Embedding layer),一个捕获CF效应和价格感知的嵌入传播层(Embedding propagation layer ),以及一个建模邻居相似度的邻居聚合层(Neighbor aggregation layer)。
- Embedding Layer:由于价格属性和类别属性被拿出来作为节点,因此ID是节点剩下的唯一特征。因此,我们引入一个嵌入层来压缩onehot ID编码到一个密集的实值向量。
3. 基于成对儿交互的解码器 (Pairwise-interaction based decoder)
由于异构图中包含四种节点,这些节点被分解为一个共享的潜在空间,受因子分解机的启发,我们采用了基于交互的两两解码器来估计交互概率。
我们采用两分支设计来估计用户-物品的交互,重点是将价格纳入推荐。全局分支以用户的整体购买力为重点,在大范围内模拟价格效应。而类别分支集中在一个“局部”级别上,在这个级别上,类别因素会影响用户对价格的敏感性。对于每个分支,我们采用基于成对交互的解码器来估计交互概率,并将两个预测分数合并为最终结果。
在一个统一的异构图中,我们将用户、商品、类别和价格表示为四种类型的节点,因此对不同类型节点的学习表示共享相同的潜在空间。因子分解机分解了共享潜在空间中的所有特征,并通过取每对特征向量的内积来估计相互作用,受此启发,我们采用了FM模式的解码器。形式上,使用与上一节编码器相同的符号,用户u与c类商品i的估计购买概率和价格p可以表示为:
在这项工作中,作者强调了将价格纳入推荐的重要性。
为了解决价格整合的两个难点,即未声明价格意识和类别依赖影响,我们提出了一种基于gcn的方法PUP,并采用了一个专门设计来分离价格意识的全局和局部影响的双分支结构。我们在真实数据集上进行了大量的实验,证明我们提出的PUP可以提高现有方法的推荐性能。通过获取价格意识,可以进一步了解如何缓解冷启动问题。虽然我们的模型是专门为建模价格敏感性而设计的,但是我们提出的模型在特征工程方面具有很大的普遍性,其他特征可以很容易地集成到我们提出的方法中。
随着越来越多的研究从服务提供者的角度聚焦于价格因素,如何将价格意识推荐扩展到价值意识推荐是一个有趣而重要的研究课题。此外,对价格动态建模也是一个很有前途的方向。