整理:极验
作者: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