嵌入式系统程序开发过程(嵌入方法在推荐系统中的应用)
嵌入式系统程序开发过程(嵌入方法在推荐系统中的应用)我们知道自编码器是深度学习中一类非常重要的表示学习技术,通过自编码器,可以获得输入向量的低维表示,这个表示其实就是一种嵌入,我们可以利用这种嵌入来进行推荐。关于利用自编码器技术做推荐的文章有很多,参考文献25利用自编辑器联合矩阵分解将附加信息整合到推荐模型中在部分推荐公开数据集上获得了不错的效果。参考文献15、26也是利用自编码器来做嵌入进行推荐的例子。建议读者可以学习一下参考文献15,是雅虎给出的一个基于自编码器做推荐的案例,并且应用到了雅虎新闻的推荐中,取得了很好的效果,该文的方法也很新颖,值得学习了解。 最近几年深度学习驱动的人工智能第三次浪潮对计算机视觉、语音识别、自然语言处理领域有极大的推动作用,在部分机器学习任务(如图像分类、机器阅读理解精确匹配等)上的表现超越了人类的水平。同样深度学习在推荐上也有大量应用,并且在工业界取得了不错的效果。 利用深度学习嵌入进行推荐是深度学习推荐
图1:基于HIN推荐的架构
图嵌入通过将图中节点变换为节点序列再利用Word2Vec思路做嵌入,本质就是Word2Vec的思路。只是不同的图嵌入方法将图中节点变换为节点序列的实现方案不一样。
- 利用深度神经网络嵌入
最近几年深度学习驱动的人工智能第三次浪潮对计算机视觉、语音识别、自然语言处理领域有极大的推动作用,在部分机器学习任务(如图像分类、机器阅读理解精确匹配等)上的表现超越了人类的水平。同样深度学习在推荐上也有大量应用,并且在工业界取得了不错的效果。
利用深度学习嵌入进行推荐是深度学习推荐系统中的一类重要方法,其实Word2Vec嵌入也是一个神经网络模型,只不过是浅层神经网络。这里我们简单介绍一下,关于深度学习推荐系统作者会单独写一篇文章详细介绍。
我们知道自编码器是深度学习中一类非常重要的表示学习技术,通过自编码器,可以获得输入向量的低维表示,这个表示其实就是一种嵌入,我们可以利用这种嵌入来进行推荐。关于利用自编码器技术做推荐的文章有很多,参考文献25利用自编辑器联合矩阵分解将附加信息整合到推荐模型中在部分推荐公开数据集上获得了不错的效果。参考文献15、26也是利用自编码器来做嵌入进行推荐的例子。建议读者可以学习一下参考文献15,是雅虎给出的一个基于自编码器做推荐的案例,并且应用到了雅虎新闻的推荐中,取得了很好的效果,该文的方法也很新颖,值得学习了解。
另外,YouTube的一篇非常出名的奠基性的深度学习文章(见参考文献24),这篇文章中将推荐问题看成一个分类问题(类别的数量等于视频个数),基于用户过去观看记录预测用户下一个要观看的视频的类别。文章利用深度学习来进行嵌入,将用户和标的物嵌入同一个低维空间,通过softmax激活函数来预测用户用户在时间点t观看视频i的的概率问题。具体预测概率公式见下图:
其中u、v分别是用户和视频的嵌入向量。U是用户集,C是上下文。该方法也是通过一个(深度学习)模型来一次性学习出用户和视频的嵌入向量。感兴趣的读者可以参考阅读,我在下一篇文章《深度学习推荐算法》中会详细讲解该文章算法原理和核心思想。
上一节讲解了4类用于推荐系统的嵌入方法,基于这4类方法,我们在本节介绍几个有代表性的嵌入方法在推荐系统中的应用案例,让大家可以更好地了解嵌入方法怎么做推荐。这几个案例都是在真实的工业级场景得到验证的方法,值得大家学习和借鉴。
1.利用矩阵分解嵌入做推荐
通过第三节1的矩阵分解的介绍,当我们获得了用户和标的物嵌入后,我们计算出用户u的嵌入向量与每个标的物嵌入向量的内积
,再按照内积的值从大到小降序排列,剔除掉用户已经操作过的标的物,将topN推荐给用户。读者可以参考我以前写的《矩阵分解推荐算法》这篇文章进行深入了解。
2.利用item2vec获得标的物的嵌入做推荐
微软在2016年基于Word2Vec提出了item2vec(参考文献14),基于用户的操作行为,通过将标的物嵌入到低维空间的方式来计算标的物之间的相似度,进行关联推荐。下面对该方法进行简单介绍。
我们可以将用户操作过的所有标的物看成词序列,这里每个标的物就相当于一个词,只是这里用户操作过的标的物是一个集合,不是一个有序序列。虽然用户操作标的物是有时间顺序的,但是标的物之间不像词序列是有上下文关系的(一般不存在一个用户看了电影A之后才能看电影B,但是在句子中,词的搭配是有序关系的),因此这里当成集合会更合适。所以,我们需要对Word2Vec的目标函数进行适当修改,最终我们可以将item2vec的目标函数定义为
这里不存在固定的窗口大小了,窗口的大小就是用户操作过的标的物集合的大小。而其他部分跟Word2Vec的优化目标函数一模一样。
最终用向量
来表示标的物的嵌入,用cosine余弦相似度来计算两个标的物的相似度。也可以用