期望最大化(洪亮劼的专栏) 分享技术、管理、团队和业界的思考

WWW 2017文章精读(四)

我们在这里对WWW 2017文章Modeling Consumer Preferences and Price Sensitivities from Large-Scale Grocery Shopping Transaction Logs进行一个简单的分析解读。

全文PDF

这篇文章的作者群来自加州大学圣地亚哥分校(University of California at San Diego)和微软研究院。最后一个作者Julian McAuley在加州大学圣地亚哥分校长期从事推荐系统以及用户模型的研究工作。建议对推荐系统有研究的朋友经常看看他又有什么新的研究成果这篇文章的特色在于希望把推荐系统的用户喜好建模和经济学里的对于价格的研究结合起来。作者们认为,在推荐系统领域,对于用户喜好建模已经是比较成熟的研究领域了,而对于价格,特别是价格的敏感度(Sensitivity)的研究还并不是很多。于是这篇文章就是要弥补这么一个研究缺失(Gap)。

作者们首先提出了一个分三阶段(Three Stage)的概率模型,用来刻画用户选择购买商品时候的选择过程。具体来说,这篇文章把用户的行为分为了这么三个阶段:

  • 类别选择(Category Purchase),也就是说,用户首先选择要购买哪个类别的商品。
  • 产品选择(Product Choice),这里面就是在已经选定了一个类别以后,用户如何在这个类别里面选择商品。
  • 数量购买(Purchase Quantity),选择要购买多少商品。

有了这三个阶段以后,用户的购买需求就成为了这三种概率的联合分布。

为了对这三种行为有效建模,作者们首先提出了一个所谓的Feature-Based Matrix Factorization(FMF)的框架。总的说来,这是之前的LinkedIn提出的所谓的Generalized Linear Mixed Model(GLMix)变种。读者可以仔细参考原论文看看FMF的细节。这个FMF结合了全局特征(Global Features),物品特征,用户特征,以及用户和物品的隐含特征(Latent Features)。可以说是一个比较完善的框架体系。

有了FMF这个工具,我们再回到刚才的三个阶段的建模。作者们的思路就是用FMF的不同表达形式为三个阶段进行分别的建模。具体说来,类别选择的部分,采用了FMF的Logistic表达形式,也就是对每个类别进行简单的“是”还是“不是”的购买选择。产品选择的部分则采用了Multinomial Regression的形式,也就是在所有同类商品里面进行选择。第三部分数量购买则采用了Poisson Regression的形式。然而核心这三部分采用的是同样的一套思路。因为这三个部分的独立性,使得模型的学习可以把这三部分分来,有利于能够并行化。在整体的模型学习上,作者们还加上了AUC Optimization的“作料”。

接下来,作者们介绍了这篇文章的一个重点,那就是把价格因素引入到了整体框架中。其实思路还是很简单,就是直接把价格(在模型中用了Log Transformation)当做一个Feature,进行参数学习。这样做的好处还有直接可以计算所谓的价格敏感度,也就是购买一个东西的可能性的变化和价格变化的比值。这个数量可以用来描述价格的变化敏感度,可以让我们对价格做进一步的分析。

作者们在一个非公开的西雅图的商店数据集上,和公开的Dunnhumby数据集上做了实验。实验结果是三个阶段的模型都有不错的表现。并且作者们还利用价格敏感度进行了数据的进一步分析。这里就不复述了。

这篇文章值得对推荐系统有研究的学者和实践者精读。