Beacon学习周记1(2022暑期项目)

2022.7.22

学习总结

本周学习了Beacon论文,也在和学长的交流中学习到了新知识,现将学习成果总结如下。

先附上Beacon的Github repository链接。点开README.md的标题中的链接可以转到Beacon论文。Beacon是2019年国际人工智能联合会议成果之一。

Beacon的特点:

  • 有两种主流推荐方法:个性化推荐和物品关联推荐,Beacon属于后者
  • Beacon不是基于单个物品的,而是对购物篮(包含多个商品)做推荐,即根据以往购物篮序列,推荐下一购物篮
  • 不同于以往的下一购物篮推荐方法,Beacon不仅考虑过往购物篮序列,还考虑每一购物篮内商品的相关联系

Beacon做些什么:

  1. 两大输入:历史购物篮序列和相关矩阵

购物篮序列用二进制向量表示,1表示有0表示无,如图所示:

二进制向量表示

原始数据是一个|V|维方阵F,其中V是商品集。Fij记录着商品i与商品j出现在同一个篮子里的次数。显然根据定义F有对称性

但是F有两大问题:差异大和稀疏性大。

解决方式是,对于差异大的问题,使用归一化进行处理。

设有一个|V|维方阵度矩阵D,对角线统计着各个商品与其他商品共同出现在同一篮子内的次数总和。例如下图物品i是一个度为三的商品。

一个度为三的商品

传统做归一化的方法是: $ C=D^{-1}F $ 但是这样得到的C失去了对称性这个很好的特性,为此采用如下公式做归一化: $ C=D^{-\frac{1}{2}}FD^{-\frac{1}{2}} $ 归一化后若还存在稀疏性大的问题可以用高阶矩阵法改善:

高阶矩阵法

  1. Correlation-Sensitive Basket Encoder

zt

式中Xt是前文所述篮子的二进制向量表示。从式中可看出,Zt不仅考虑了给每个物品设置的权重ω,也考虑了篮内物品相关性C。

弱相关是起反作用的噪声,需要剔除。根据改进后的下式:

改进后的zt

相关性减去η后小于η的元素就会小于0,用单侧抑制的激活函数ReLU作用,就剔除了小于η的噪声。

单侧抑制的激活函数ReLU作用

Zt经权重、偏置作用后,再次使用激活函数ReLU得到bt。

  1. Basket Sequence Encoder

如下式:

ht

神经网络的结构如下:

神经网络的结构

据此,每一个神经元的输入都是对应的bt和前一个神经元的输出ht-1,这就是RNN的基本特点。tanh是个激活函数。

  1. Correlation-Sensitive Score Predictor

经交流,很多机器学习模型最后如下步骤:

s

y

前一步与权重矩阵相乘并作用激活函数,后一步做篮内相关性和篮间序列相关性的平衡,防止前者对后者的碾压。

  1. 学习策略

不断将训练集前n-1个元素产生的的结果与最后1个元素比较。

Beacon的效果

  • 三大数据集:TaFeng、Delicious、Foursquare
  • 两大指标:F1@K和HLU
  • 与主流经典的各个下一购物篮推荐方法比较,Beacon均最优
  • 项目重要性和项目相关性对Beacon都很重要,共同促成了它的成功
  • 平衡因子α在0.2-0.6间较好
  • 依据在Delicious上的测试结果,Beacon克服了POP的仅依赖流行度、MC的相关性较为有限的缺点

难题与解决思路

一些论文中的术语如LSTM、Hadamard、RNN、拉普拉斯矩阵、element-wise(对应元素相乘)等都是通过维基、必应、知乎了解到的。

论文中的公式看不懂则是通过与学长交流解决的。

心得收获

要培养阅读论文的能力,尤其是英文论文的能力。要培养阅读公式、剖析公式含义的能力。

另外要发掘相关知识,并重点对其进行了解,如RNN、LSTM、GRU。

下周计划

阅读代码,与论文对应,部分弄清模型在做些什么,并对本周未解决问题做研究。