2019-06-20

2019-06-21  本文已影响0人  sk邵楷

 推荐系统论文阅读(一)利用用户和物品的分层结构

论文

Exploring Hierarchical Structures for Recommender Systems

背景

补全"用户——物品"的评分矩阵(如下图所示), 从而能够凭借评分矩阵进行物品的推荐.

   图一

基础模型

加权的非负矩阵分解weighted nonnegative matrix factorization (WNMF), 公式如下图所示(W是一个指示矩阵, 元素为0表示缺失值, 元素为1表示未缺失):

图二

动机

商品(或者用户)存在自身的层次结构, 相同层次结构的商品(或者用户)共享相似的特征. 如果将先验的层次信息加入到模型中将会提高预测精度.例如: 音乐可以分为 古典音乐, 爵士音乐, 乡土音乐等等, 爵士音乐又可以分为经典的爵士音乐等等, 如下图所示(可以看出本文的层次结构主要是指一种树形的分层结构):

图三

难点

如何将结构信息建模, 主要分为 在显示的情况下(告诉你分类信息), 在隐式的情况下.(结构信息未知).

本文提出的模型

The Proposed IHSR

隐式情况下, 建模层次结构, 公式如下:

图四

核心思想: 深度的矩阵分解, 将原先的物品矩阵(用户矩阵)进一步向下分解, 相当于将物品不断地归类.模型的概述如下图所示:

图五

例如: 

将原先 d\times m 维的V矩阵分解为 d\times  m1维的V2矩阵和 m1\times m的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模型的效果, 模型的参数灵敏度分析等等.

思考

看了一些矩阵分解的模型, 第一次看到这种深度矩阵分解的模型, 感觉很新鲜, 同时用在了推荐系统上, 有着很好的解释性. 同时感觉深度这个思想在很多方面都有着相应的发展, 深度神经网络的兴起也带动了其他模型的发展. 不过, 本文的模型只是捕捉树形结构的分层信息, 应该存在改进空间.

上一篇下一篇

猜你喜欢

热点阅读