模型原理
引入
本文是论文Metadata Embeddings for User and Item Cold-start Recommendations的阅读笔记.
本片论文是用来进行推荐任务的LightFM包对应的原理. 对应的代码地址为lightfm, 论文地址为arXiv. 对应包使用的说明文档地址为Welcome to LightFM’s documentation!.
通常使用Matrix factorization(矩阵向量化)这类模型来做推荐任务, 会将所有的user
和item
根据他们之间的相互联系, 计算出分别的向量. 即每个user
或item
都会对应一个向量, 这个向量可以是通过主题模型, 矩阵分解, embedding, 或梯度迭代计算得到的.
但这种方法有个无法解决的问题, 即冷启动问题. 因为新的user
或item
没有相关联的信息, 无法计算得到对应的代表向量.
使用Content-based(CB)模型能够解决这个问题. CB模型将item
通过其对应的metadata进行表示, 对于user
也是相同的操作, 只是两者的metadata的内容不同. 这里的metadata可以看做属性, 对于单个user
和item
, 都对应着多个不同的属性. 这些属性是提前知道的, 不需要等到有交互操作时才产生. 然后通过一定的逻辑, 将这些属性综合起来, 得到一个user
或item
对应的向量.
但一般的CB模型, 将不同的user
独立开来, 忽视了user
之间的联系, 这就导致了CB模型在有关联数据的情况下, 表现比MF模型差很多, 因此对应的冷启动结果也会较差.
模型原理
LightFM模型是一种混合了上面两种思想的content-collaborative模型. 具体来说:
LightFM是一种MF模型. 这是因为它使用了协同过滤矩阵, 与协同过滤模型一样, 最终得到
user
和item
对应的向量的这种思想, 整体上与MF模型是一致的.LightFM是一种CB模型, 因为它是基于content-collaborative的.
user
和item
对应的向量不是直接计算得到的, 而是通过对应的metadata组合得到的.
具体来说相对于普通的协同过滤模型中的user
和item
交互关系, LightFM中的交互关系不是两者直接的, 而是content-collaborative, 这里的content指的就是metadata. user
对应一个metadata集合, item
对应另一个metadata集合, 交互关系就发生在metadata层面.
举例来说, 假设user
A具有三种属性, item
B具有三种属性, 所以交互是这两组属性之间发生的, MF也是在这个层面上进行的, 得到的是每个metadata对应的向量, 这里指的是user
以及item
的metadata.
然后, 对于user
, 其对应的向量是这个user
包含的所有metadata
对应的向量的加和平均.
通过这种方法, 综合了content-based和collaborative recommender两种角度, 也解决了冷启动的问题.
LightFM模型也可以完全等价于普通的MF模型. 如果每个user
都只对应一个metadata
, 而且不同的user
对应的metadata
没有重复, 就可以理解为user
的metadata中包含的就是每个user的指示属性, 等价于one-hot. 因此就没有后面的metadata组合的步骤, 得到的向量直接就是user
或item
对应的向量.
模型定义
使用数学符号正式地定义模型.
为user
集合, 为item
集合. 为user
的特征集合, 即user
的metadata集合, 一个user
可以有多个metadata(特征). 是item
的特征集合.
每个user
都可能与多个items
发成交互关系, 这种关系可能是正面的, 也可能是负面的(对于评分评级系统来说, 关系是比较复杂的, 行为关系就只是二值关系). 所有user-item
交互对记为. 这个集合是正面交互集合和负面交互集合的并集.
user
和item
在这里都是假定完全可以被他们的metadata所描述的. 对于每个user
, 它所包含的所有的metadata集合记为, 同理, 对于每个item
, 它所包含的所有的metadata集合记为.
对于user
和item
对应的每个metadata(特征), 分别用等长的(维的)embedding向量和来表示. 对应的每个metadata(特征)还有一个偏置, .
因此, user
对应的向量为其包含的所有metadata对应embedding向量的和:
item
对应的向量为:
user
对应的偏置也是对应之和:
item
对应的偏置为:
模型对user
和item
的预测值为两个embedding向量的点积再加上对应的偏置:
这里的函数在评分系统同一般使用identity function即, 在二值数据中使用sigmoid函数.
在最优化求解步骤中, 极大似然函数:
使用
LightFM中提供了4种损失函数, 上面的损失函数只是默认指定的logistic
损失函数. 另外还有BPR
, WARP
, k-OS WARP
等损失函数. 再配合adagrad
或adadelta
两种learning rate调整策略进行训练.
最后更新于