一:绪论

在word2vec诞生以后,embedding的思想迅速从自然语言处理领域扩大到各个领域,推荐系统也不例外,既然word2vec可以对词序列中的词进行embedding,那么也可以对用户购买序列中的一个商品也应该存在相应的embedding方法,与 Word2Vec 对应,这种方法被称为 Item2Vec,代表论文是微软研究人员在 2016 年发表《Item2Vec: Neural Item Embedding for Collaborative Filtering》。论文把 Word2vec 的 Skip-gram with Negative Sampling (SGNS)的算法思路迁移到基于物品的协同过滤 (Item-Based CF) 上,以物品的共现性作为自然语言中的上下文关系,构建神经网络学习出物品在隐空间的向量表示。

二:item2vec训练样本的生成方式

在item2vec中,样本的生成方式有两种:
1,基于时序
认为item之间存在存在强时序关系,即前面的item对后面的item的产生有很大影响,那么我们就可以把一段时间内产生的item序列看成是一个句子,序列中的item看成是一个词,这样对item序列的训练过程就与word2vec训练过程无异了,可以直接参照word2vec的方法进行embedding训练。基于时序的示例比如视频网站的用户观看的视频序列,音乐网站用户听的歌曲序列。
2,基于集合
认为 item 之间存在非常弱的时序关系,或者因为某种原因,我们无法获得 item 的序列。那么这种情况只能放弃考虑 item 间的时空信息,转而使用 item 集合来取代序列。
通常我们把用户的行为序列视为一个集合(当然还有其他集合构造方式),我们假定一个静态的环境,在这个环境中,共现在同一个集合的 item 就可以认为它们是相似的,然后视为正样本,不管它们是以什么样的顺序产生的,如果某两个 item 频繁共现,二者的 Embedding 则可能也很相似。很明显,这种利用集合共现性构建样本的方式与 Word2Vec 的输入样本还是不一样的,因此无法直接应用 Word2Vec 的算法,这就需要对 Word2Vec 的过程进行调整。另外还需要注意的是,上面的这种的假设是有局限性的,不一定适用于其它场景。

基于集合的示例比如电商网站订单中的商品集合。
论文中讨论的样本构建方法是第二种,作者还提出了两种相应的调整方式
1,把 Word2Vec 的上下文窗口 (window size) 由定长的修改为变长的,窗口长度就是集合长度。其实也就是对整个 item 结合中的 item 进行两两组合构成正样本,此方法需要修改网络结构。
2,不修改网络结构,而在训练神经网络时对物品集合做 shuffle 操作,变相地起到忽略序列带来对影响。
论文指出两种方法的实验效果基本一致。

三:目标函数

Item2Vec 的论文使用的是第一种调整方法,即给定一个 iterm 集合,SGNS 的目标函数可以改为:

其中,K 是集合长度,因为摒弃了序列中 item 的时空关系,在原来的目标函数基础上,其实已经不存在时间窗口的概念了,或者说窗口长度就是集合长度,取而代之的是 item 集合中两两之间的条件概率。
在论文中,作者把中心词词向量ui 作为第 i 个 item 的最终的向量表示,同时两个 item 的相似度是通过余弦相似度进行计算的。作者还指出,最终的词向量也可以选用上下文词向量 vi,甚至可以是 ui 和 vi 的向量和 ui+vi 或 ui 和 vi 的连接 [uTivTi]T 来表示,后两种表示方式有时候能够产生更好的向量化表示。

论文中将 Word2Vecs 模型从自然语言序列迁移到物品集合,丢失了时间和空间的序列信息,导致无法对用户行为程度建模(喜欢和购买是不同程度的行为,可以建模体现用户对不同 item 的喜欢程度高低)。好处是可以忽略用户-物品关系,即便获得的订单不包含用户信息,也可以生成物品集合。而论文的结论证明,在一些场景下序列信息的丢失是可忍受的。

最终论文的实验表明,使用 Item2Vec 对协同过滤中的 item 计算相应的向量化表示,在 item 的相似度计算上比起 SVD 方法要更加优越,也就是说 Item2Vec 方法得到的 item 的向量化表示能够很好地提取 item 间的相似度特征。从应用上说,Embedding 也非常便于用于相似 item 主动检索,Item2vec 甚至能够应用到错误标签的检测和纠正上,所以 Item2vec 具有很好的使用价值,这也使得 Embedding 在很多深度学习推荐系统模型中几乎成了 “标配”。

四:item2vec与MF的关系:

1,联系:
如果从embedding的角度来看矩阵分解模型,用户隐向量和物品隐向量就是一种用户embedding和物品embedding向量。用户embedding向量更多通过行为历史中的物品embedding平均或者聚类得到。利用用户向量和物品向量的相似性,可以直接在推荐系统的召回层快速得到候选集,或者在排序层直接用于最终推荐列表的排序
2,区别:
(1)传统的mf通常生成的是user-item矩阵,而item通过滑动窗口样本生成的方式构造的则更像是item-item矩阵。
(2)二者得到隐向量的方式也不同,mf利用均方误差损失,使预测得分和已有得分之间的误差最小, 而item则是利用空间信息并借助了极大似然估计的思想,使用对数损失函数,使得上下文关系或者共现关系构造出的正样本item-pair出现的概率最大。
(3)itrm2vec训练时引入了负样本,而mf没有使用。
总结:对于二者在推荐效果上的差异,一个经验是传统 MF 推荐会让热门内容经常性排在前面,而 Item2vec 能更好的学到中频内容的相似性。Iterm2Vec 加上较短的时间窗口,相似推荐会比 MF 好很多。

五:item2vec方法的特点和局限性

特点:万物皆可embedding
局限性:只能利用序列型数据,在处理互联网背景下大量的网络化数据时不够用。

item2vec--word2vec在推荐领域的使用相关推荐

  1. 深度学习在推荐领域的应用

    深度学习在推荐领域的应用 2017-05-31 20:50youtube/微博/社交 作者: 吴岸城,菱歌科技首席算法科学家,致力于深度学习在文本.图像.预测推荐领域的应用.曾在中兴通讯.亚信(中国) ...

  2. 深度学习在推荐领域的应用:Lookalike 算法

    本文主人公 英特 是一名传统的软件工程师,让我们与英特一起来研究如何实现自己的Lookalike算法,并尝试着在新浪微博上应用这一算法. 当2012 年Facebook 在广告领域开始应用定制化受众( ...

  3. SENet双塔模型:在推荐领域召回粗排的应用及其它

    前言 目前,双塔结构在推荐领域里已经是个常规方法了,在召回和粗排环节的模型选型中,被广泛采用.其实,不仅仅是在推荐领域,在其它领域,双塔结构也已经被越来越多得用起来了.比如,在当代搜索引擎的召回环节, ...

  4. 深度学习在搜索和推荐领域的应用

    /* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/ author: 张俊林 深度学习在搜索和推荐领域的应用 (想更系统地学习深度学习知识?请参考:深度学习枕边书) 大纲: •深度 ...

  5. 动态网络表征学习在推荐领域的创新与实践

    导读:在现实生活中,用户对于一件事物的关注度即关系图往往是会随着时间而改变的.按照静态图的建模方法将不能显示地建模用户在时序上的兴趣变化.动态网络表征学习不仅能学习到当前网络的结构信息,而且也能学习到 ...

  6. BERT4Rec:当NLP王者BERT进军推荐领域

    作者 | 知乎博主@青枫拂岸 整理 | NewBeeNLP CIKM2019上,阿里发表了<BERT4Rec: Sequential Recommendation with Bidirectio ...

  7. BST:Transformer在推荐领域的应用

    作者 | 知乎博主@青枫拂岸 整理 | NewBeeNLP 阿里的搜索团队在2019 DLP-KDD上发表的<Behavior Sequence Transformer for E-commer ...

  8. 【NLP+图神经网络+推荐领域】2020年最新综述性文章推荐

    学习永无止境.本期橙子邀请到淘系技术部算法同学分别就「NLP领域」.「图神经网络」.「推荐领域」三个技术模块,结合行业技术发展与研究,重新整理历史经典综述文献与最新文献,去其糟粕,取其精华,最终沉淀出 ...

  9. 搜狗深度学习技术在广告推荐领域的应用

    内容来源:2017年4月17日,搜狗移动搜索广告策略研究组负责人舒鹏在七牛云和QCon联合主办的深度学习论坛"深度学习最新进展与实践"上进行<搜狗深度学习技术在广告推荐领域的 ...

  10. gensim从word2vec到song2vec 在推荐领域的应用

    """ 从word2vec到song2vec 说起来word2vec,其实就是把词映射成一定维度的稠密向量,同时保持住词和词之间的关联性,主要体现在(欧式)距离的远近上. ...

最新文章

  1. Amazon SNS和Amazon SQS有什么区别?
  2. 想要早睡的最好的办法就是
  3. Zuul路由的strip-prefix与order
  4. canvas--初级
  5. GPT-3诞生,Finetune也不再必要了!NLP领域又一核弹!
  6. Facebook 开源 3D 深度学习函数库 PyTorch3D,也可用于二维场景
  7. 细谈最近上线的Vue2.0项目(一)
  8. 西瓜书+实战+吴恩达机器学习(二二)概率图模型之马尔可夫随机场
  9. java重复造轮子系列篇------发送邮件sendEmail
  10. 接口Request传参的常用注解
  11. myeclipse创建web-project没有WebRoot文件夹
  12. 2014高考英语听力,男约女终于成功了
  13. 创建一个DAPP的全流程
  14. 一文搭建Vuepress博客/文档系统:搭建,导出,SEO,自动编译和部署,域名,HTTPS,备案等
  15. ###好好好好好########呼叫中心FAQ
  16. ftp下载的文件为空文件
  17. 微信小程序发布详细步骤
  18. 阿里云主机免费申请级网站配置
  19. dr.fone for android,Wondershare Dr.Fone for Android
  20. 域名解析、映射以及添加SSL证书

热门文章

  1. 空空老师向青海地震捐款~~把我感动毁了
  2. FX3学习笔记2-cs-make[1]: [post-build] Error 2 (ignored)
  3. python 日历热力图_pyecharts日历热力图
  4. 世界杯2022赛程表
  5. linux用户motd,linux需要装?那就和我一起来配置一个动态的MOTD登陆效果吧
  6. 数学定理【转自百度百科】
  7. 学习python-day01-13---转自Python分布式爬虫打造搜索引擎Scrapy精讲
  8. QT根据屏幕分辨率调整控件
  9. AI论文下载-AAAI ACCV AISTATS COLT CVPR ECCV ICCV ICLR ICML IJCAI JMLR NeurIPS WACV等
  10. shapely包导入问题