卷积神经网络介绍
该方法基于卷积神经网络(CNN)模型。
传统神经网络的全连接模式不仅会导致神经元之间的连接数随层数增加指数型增长,而且还会出现梯度消失问题。而CNN的出现就能够解决上述问题。
卷积(Convolution)
卷积主要是通过一个过滤器(filter)在原矩阵上以一定的步长滑动,每次滑动取原矩阵的一部分,并与其做一种运算(如果是图片,那么可能是是统计区域内的“ 1 ”的个数;也有可能是让过滤器与局部矩阵做内积;总之做完运算后需要得到一个值),将运算结果依次保存下来。CNN处理图片的过程下图所示(记录局部区域内1的个数)。
池化(Pooling)
做完卷积后,我们需要对卷积的结果(Convolved Feature)进行池化,得到池化结果(Pooled Feature)。
池化的方法有很多种,比较常见的是最大池化,即在Convolved Feature中取一个局部矩阵中的最大值当作特征记录。如下图是一个步长为2的最大池化过程。
全连接(Fully connected)
也就是将所有Convolved Feature连接到一起。
Caser部分
符号表
符号解释:
embedding:
Embedding层对用户、物品序列进行密集型表示,用户的表示可以理解为用户的general preference
;
推荐过程
Caser模型包含三个部分:
- Embedding层对用户、物品序列进行密集型表示,用户的表示可以理解为用户的
general preference
; - 卷积层(CNN)学习用户短期(时间内)的序列特征;
- 全连接层将拼接的序列特征与用户偏好映射到用户在当前时间与每个物品交互的可能性
其示意图如下:
第一部分---构建嵌入矩阵:
这一步也就是在构建上述CNN卷积过程中的原矩阵,即嵌入矩阵。
第二部分---卷积
Caser方法采用的卷积运算是内积,即将原矩阵中局部矩阵的转置与滤波器依次进行内积,直到滤波器滑动到最后,就得到了卷积结果Convolved Feature。
内积的严格定义如下:
(未解决:激活函数的作用是什么)
最后我们得到的向量c,就是我们的卷积结果Convolved Feature。
第三部分---池化
这里由水平滤波器得到的向量需要进行最大池化,但是由垂直滤波器得到的向量只要转置即可。
第四部分---全连接
将所有池化后的向量与用户嵌入向量Pu进行全连接,如下图。
全连接完成后,我们就得到了对所有物品的预测偏好。