我们利用深度转码器(deep auto-encoder)对属性进行转码,转化为属性的嵌入矩阵。我们可以把这个过程类比为数据的压缩与解压,所以在这个过程中会产生编码与解码的数据损失,所以在进行转码时的主要目标就是让数据损失最小。
于是我们精心设计了: (点击图标跳转)
当然我们也可以利用上述相同的深度转码器对用户进行转码,将用户的购买行为转化为嵌入矩阵进行降维处理。至此,我们将属性网络与用户购买信息全部转化了便于机器进行深度学习的矩阵。
当我们得到了用户矩阵(Zu^T)与物品的属性矩阵(hi^k)时,一个很自然的想法就是将这两个矩阵进行结合,这样的话我们就可以得到用户的注意力矩阵(我个人更喜欢把这个矩阵成为用户偏好矩阵,该矩阵反应了用户对于不同属性的偏好程度)
具体方法是将上述的用户矩阵与属性矩阵进行点乘,然后进行softmax处理(可以类比为标准化处理)。点乘是一个最简单的注意力机制,通过简单的点乘就可以将上述两个矩阵进行关联。
在得到上述的用户偏好矩阵(Au,i^k)之后,我们就可以对各种商品在用户中的形象进行打分了。在这个打分中运用的方法也是将用户的偏好矩阵与本身产品的嵌入矩阵进行点乘,假如用户对于某种属性存在偏好,那样在用户偏好矩阵的值就会大,而具有该种属性的物品的该值也就会大,这样就可以得到用户对于某种产品在某项属性上的打分。我们把这个得分成为基于属性的用户物品评分(简称用户物品评分,hu,i)。
正反馈损失与负反馈损失
总损失的比例调整
对于用户转码的损失?
热启动推荐:
当对用户曾经购买过的商品进行推荐时,我们会综合考虑用户对于所有属性的偏好,具体的操作方法就是将该物品与所有其他物品的用户物品评分进行对比,对比的方法是考察两种物品之间的距离,距离越小说明两种物品的差别小,那么用户购买的可能性就最大。最终推荐的物品就是在所有属性上与先前购买商品差别最小的。
冷启动推荐:
当对用户从未购买的商品进行推荐时,我们将新的商品先通过深度解码器加入属性网络之中,并且将该商品与所有购买过的商品进行比较。但是与上述不同的是,我们在这次对所有的属性中选取最接近的属性进行比较,这样可以认为我们推荐的商品在某个属性上与以前购买过的商品最为接近。