神经网络实现推荐系统

2019-08-08  本文已影响0人  hwang_zhic

目录:
1.1 推荐系统以及神经网络在推荐上的使用简介
1.2 推荐召回文献
1.3 推荐排序文献
1.4 总结

1. 推荐系统

1.1 简介

推荐系统的功能是帮助用户主动的找到满足偏好的个性化物品并推荐给用户。在本质上可以当做一个个性化的搜索引擎,输入的数据为用户行为信息、偏好信息等,返回的结果为最符合查询条件的物品列表。数学化的表示:

物品列表 = f(用户偏好 ) ——————————————————公式(1)

大多的推荐系统将以上的计算过程分为两个部分:

因此,推荐系统需要完成两步计算:候选集生成和排序,这两阶段的估计函数分别表示为 g(x) 和 h(x) ,即有:

f = g(h(x)) ———————————————————————公式(2)

不管这个函数是什么样的,总会有一个神经网络能够对任何可能的输入 x 网络可以得到对应的值 f(x) (或者某个足够准确的近似)


1.2 推荐召回

Google利用DNN来做YouTube的视频推荐其模型图如下图所示。通过对用户观看的视频,搜索的关键字做embedding,然后在串联上用户的side、information等信息,作为DNN的输入,利用一个多层的DNN学习出用户的隐向量,然后在其上面加上一层softmax学习出Item的隐向量,进而即可为用户做Top-N的推荐。

原文链接:Deep Neural Networks for YouTube Recommendations(Google 2016)


1.3 推荐排序

Google Wide&Deep模型的主要思路正如其名,把单输入层的Wide部分和经过多层感知机的Deep部分连接起来,一起输入最终的输出层。其中Wide部分的主要作用是让模型具有记忆性(Memorization),单层的Wide部分善于处理大量稀疏的id类特征,便于让模型直接“记住”用户的大量历史信息;Deep部分的主要作用是让模型具有“泛化性”(Generalization),利用DNN表达能力强的特点,挖掘藏在特征后面的数据模式。最终利用LR输出层将Wide部分和Deep部分组合起来,形成统一的模型。Wide&Deep对之后模型的影响在于——大量深度学习模型采用了两部分甚至多部分组合的形式,利用不同网络结构挖掘不同的信息后进行组合,充分利用和结合了不同网络结构的特点。

preview

原文链接:Wide & Deep Learning for Recommender Systems (Google 2016)

1.4 总结

关于实现,我觉得以上的两个推荐系统的灵魂(召回和排序)短时间内都较难实现,且无法针对上次的SA数据进行实验。

目前的计划有两个:

这两个都有现成的代码,跑的数据都是 Movielen 数据集。虽然不是SA数据,但SA数据是根据 Movielen 处理来得,我觉得没什么问题。

有问题的是


参考文献

更多推荐召回算法之深度召回模型参考:https://zhuanlan.zhihu.com/p/63343894
更多深度学习推荐系统论文参考:https://www.zhihu.com/question/20830906
Spotlight 简要说明:https://zhuanlan.zhihu.com/p/69778150
Spotlight 源码示例:https://github.com/maciejkula/spotlight
NCF 源码解析:https://www.cnblogs.com/wzyj/p/8974782.html
NCF 源码:https://gitee.com/hwang_zc/Neural-Collaborative-Filtering

上一篇下一篇

猜你喜欢

热点阅读