2019-06-20
推荐系统论文阅读(一)利用用户和物品的分层结构
论文
Exploring Hierarchical Structures for Recommender Systems
背景
补全"用户——物品"的评分矩阵(如下图所示), 从而能够凭借评分矩阵进行物品的推荐.
图一基础模型
加权的非负矩阵分解weighted nonnegative matrix factorization (WNMF), 公式如下图所示(W是一个指示矩阵, 元素为0表示缺失值, 元素为1表示未缺失):
图二动机
商品(或者用户)存在自身的层次结构, 相同层次结构的商品(或者用户)共享相似的特征. 如果将先验的层次信息加入到模型中将会提高预测精度.例如: 音乐可以分为 古典音乐, 爵士音乐, 乡土音乐等等, 爵士音乐又可以分为经典的爵士音乐等等, 如下图所示(可以看出本文的层次结构主要是指一种树形的分层结构):
图三难点
如何将结构信息建模, 主要分为 在显示的情况下(告诉你分类信息), 在隐式的情况下.(结构信息未知).
本文提出的模型
The Proposed IHSR
隐式情况下, 建模层次结构, 公式如下:
图四核心思想: 深度的矩阵分解, 将原先的物品矩阵(用户矩阵)进一步向下分解, 相当于将物品不断地归类.模型的概述如下图所示:
图五例如:
将原先 dm 维的V矩阵分解为 d m1维的V2矩阵和 m1m的V1矩阵, 表示将原先的m个物品归类为m1类, 每个类用d维向量表示, V1矩阵则表示着m个样本与m1个类别之间的映射关系, 可以看成表示哪些样本属于哪些类别.
The Proposed HSR
首先定义Q矩阵:
图六如上图所示, 如果已知物品(或者用户)的类别先验信息, 那么对于v1~v8八个物品, 就可以不断地将物品进行归类. 最下面一层是最初的叶子节点表示着这八件物品, 接下来可以归类成为上一层的4个类别, 最终归类成为最上层的2个类别.
定义Q2矩阵为 4x2 的矩阵:
图七Q2矩阵表示着第一层与第二层之间的关系(从上往下看). 第(1, 1)的元素为1, 表示第一个子类属于第一个父类; (2, 1)元素为1, 表示第二个子类属于第一个父类; (3, 2)元素为1, 表示第三个子类属于第二个父类; (4, 2)元素为1, 表示第四个子类属于第二个父类. 可以看出Q矩阵是一种子类与父类关系的表示矩阵, 因此可以通过一系列Q矩阵表示各个层次的关系.
接着, 显式情况下建模, 公式如下:
相较于IHSR模型, HSR模型多了两个正则化项, 核心思想是: 父类别捕捉更广泛的特征, 子类别捕捉细粒度的特征, 所以父类别的特征表示与子类别特征表示的均值应该是近似的.
例如
式1代表着父类的特征表示
式2代表着子类的特征表示,.
首先对Q矩阵进行归一化操作, 那么 式2与Q矩阵相乘就相当于将子类映射成为父类, 并对每个类别取了均值.
注意项
因为层次结构是固定的, 比如一类物品可以不断地分成3类, 而另一类物品只能分成两个类别, 那么就如下处理, 即加上一个虚拟的类别(结点):
图八预训练
下图是本文模型的伪代码, 可以看出(第2, 4, 6步), 本文模型需要进行预训练, 最终进行求解. 感觉像是深度神经网络中的预训练过程。。。
实验
本文做了很多可视化实验, 值得学习. 主要分为IHSR和HSR模型的效果, 模型的参数灵敏度分析等等.
思考
看了一些矩阵分解的模型, 第一次看到这种深度矩阵分解的模型, 感觉很新鲜, 同时用在了推荐系统上, 有着很好的解释性. 同时感觉深度这个思想在很多方面都有着相应的发展, 深度神经网络的兴起也带动了其他模型的发展. 不过, 本文的模型只是捕捉树形结构的分层信息, 应该存在改进空间.