前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【推荐系统】推荐系统中的图网络模型

【推荐系统】推荐系统中的图网络模型

作者头像
zenRRan
发布2019-12-11 16:15:34
1.7K0
发布2019-12-11 16:15:34
举报

整理:极验

作者:Roxana Pamfil

在互联网时代,推荐系统无处不在。不仅可以向用户推荐实体商品,还可以推荐电影、歌曲、新闻报道、酒店旅行等,为用户提供量身定制的选择。这些系统中有许多都涉及了协同过滤——根据其他相似用户的偏好向用户推荐 item。推荐系统的背后还用到了包括矩阵分解、邻域方法以及各种混合方法。

对用户和 item 之间的交互进行建模一种很直观的方法是使用二部图。在下面的示例中,用户与之前购买的商品建立了关联。通过在这样的网络中进行边预测,可以解决两个重要的业务问题:

1、Recommendations ——我们应该给用户推荐哪些新商品?

2、Targeting ——对于特定的商品,在促销活动中我们应该关联哪些用户?

网络和社区结构

网络是系统的抽象表示,其中称为节点的对象通常以成对的方式通过边相互交互。图网络在很多领域中用于解决实际问题,例如检测 Twitter 上的恶意机器账户,发现电网中的漏洞以及预测蛋白质性质来进行新药物的研发。很多网络的共同特征是它们具有模块化结构,这意味着节点可以集群为关系紧密的簇,称为社区。在购物网络中,社区会显示具有相似偏好的客户群以及他们购买最多的商品。

推荐方法

从直觉上讲,尚未购买的客户社区中的商品是潜在的建议。同样,在针对给定商品的促销活动中,要定位的最佳客户是该商品社区中的用户。让我们关注第二种情况,并详细描述该过程。

网络的构建

根据交易数据构建网络需要定义一组唯一的客户,一组商品以及购买的时间段。 客户和商品之间的边表示在指定时间段内发生了相应的购买。由于其中一些购买量比其他购买量大,因此需要增加权重。权重的选择包括商品数量(此用户购买了多少香蕉?)和一种归一化的方式 item penetration(这个用户购买的商品中香蕉所占的比例)。

社区检测

该过程的下一步是使用社区检测算法,将客户和商品划分为社区。有很多方法可以做到这一点,但是我们决定采用一种流行的方法,即 modularity maximisation。该方法通过最大化模块度 Q 来获得最优的网络社区划分。这是一个 NP 难问题,因此研究人员开发了各种启发式算法(例如 Louvain 算法),以找到兼顾准确性和速度的良好解决方案。(而且,当网络拥有五亿条边时,速度非常重要!)

社区检测是一个优化问题

随机块模型

现在,我们拥有一个网络,其中每个客户和商品都属于一个社区。下一步是估计一组描述不同块中节点如何相互连接的边倾向参数θrs。更准确地说,在我们的客户-商品网络中,观察到的 r 区客户连接到 s 区商品的概率与 θrs 成正比。因为社区具有较大的内部边密度,这些概率中的最大概率对应于 r = s

三个社区的参数

购买概率

现在,我们有了数据的统计网络模型,该模型可以计算任何用户和产品之间存在边的概率。对于社区 r 中的用户 c 和社区 s 中的产品 p,此概率为:

上式有三个重要的因素:

1、特定社区的购买概率 θrs ,即社区 r 中的顾客在社区 s 购买产品的概率。

2、用户节点 c 的度,它等于该节点的边数。因此,该模型将更大的概率分配给购买更多独特产品的用户。

3、商品节点 p 的度。该模型将更大的概率分配给受欢迎的商品。

比例因子是一个常数,可确保最终结果具有明确的概率。

计算购买概率

用户排名

最后,将上一步中的购买概率从最大到最小排序,得出客户对目标商品意向的排名。然后,可以向排名靠前的客户发送优惠券并将新用户介绍给品牌。

验证

为了测试该方法与更简单的 Targeting 方法的比较,我们分析了一个促销活动的数据,在该活动中,向10万名客户邮寄了酸奶促销优惠。选择这些用户的依据是,他们之前有参与过促销活动,或者购买竞争对手产品的可能性。我们使用上述的网络模型,根据 100,000 名用户对促销酸奶的意向进行排名。如果排名较高的客户要比排名较低的客户兑换更多的优惠券,则相应的排名具有预测力,这表明相同的方法对于识别将来的广告系列的相关客户可能很有用。我们使用基于类别支出的排名作为比较的基准。

因此,我们有两种根据客户对促销酸奶的意向进行排名的方法,并使用收益表比较这些排名。在收益图表中,可以绘制出积极反应的百分比(在本例中为兑换的优惠券的百分比)与人口规模的函数关系。如果排名较高的客户中有更多积极的响应,则排名是可预测的,并且该排名对应于图表中对角线上方的曲线。

结果表明,该网络模型胜过 spend rank,并且通常更适合于识别可能兑换优惠券的客户。尤其有趣的是,在与品牌互动较少的低消费客户中,效果差距更为明显。这表明我们可以根据客户与社区中客户之间的相似性,而不仅仅是他们过去的购买记录,来了解客户对商品的意向。

总结

二部图是购买数据的自然表示。一项重要任务是预测新的边,可以将其引入推荐系统和针对性的促销活动。在计算性能方面,社区检测是我们描述的过程中最耗时的部分。

该 network 方法的主要优势在于它不受监督。它不需要生成用户或商品特征(这可能很耗时),也不需要标签数据进行训练。另一个优点是,网络在稀疏设置下可以很好地工作。例如,如果客户只购买了一种或两种产品,则受监督的方法可能会因缺乏足够的训练数据而苦苦挣扎。相反,将此类用户分配给社区并计算相应的边概率不会带来任何问题。最后,网络模型可以相对容易地扩展到更复杂的场景,这些场景包括例如时间信息,节点元数据或有关产品层次结构的信息。

原文链接:

https://medium.com/dunnhumby-data-science-engineering/network-models-for-recommender-systems-7f0d6d210ccf

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习自然语言处理 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档