作者:Philip S.Yu,听到大佬本人做的一个比较宽泛的综述,讲的蛮好的,遂记录以激励本菜鸡。
文章目录
Background
推荐系统在选择方面有着非常广泛的应用
- 电子商务购物
- 社交网络交友
- 医疗
- 问答系统
- 在线招聘
- …
个性化推荐
在大数据时代,根据每个人的individual information来做个性化推荐。
主要技术如下
- Collaborative filtering:那些和他相似的顾客喜欢什么,为他推荐什么
- Content based:考虑商品的相似性做推荐
存在问题
- 冷启动:对于新注册的用户和新的商品,如何为用户做推荐?如何把新商品推荐给需要的人?
- 表示方法(representation of users/items):高维表示过于稀疏,低维表示可能丢失重要信息。如何找到一个合适的能捕获交互关系的表示方法
机会
- 大量的数据信息可以帮助我们发现用户和商品间的关系,但异质性数据和不同种类的关系会复杂化表示学习
- 先进技术的出现:深度学习学习低维表达,广度学习(broad learning)融合不同种类数据
广度学习的流程:
- 确定并获取有用的数据源
- 设计模型从异质性数据中融合信息
- 根据模型需求挖掘数据
Multi-Source Fusion
Product Recommendation
Structure (relation) information
传统的协同过滤
User-item之间形成了一个二部图,只有用户和产品之间的连接,用户与用户之间/产品与产品之间没有连线。
因此我们需要其他的连线/结点来解决冷启动问题,提高推荐质量
Social network/Knowledge base
橘黄色就是协同过滤里的二部图;绿色加入知识图谱(找到电影之间的关系);蓝色加入社交网络(找朋友);紫色加入用户画像(寻找不同用户间的相似用户)
加入许多其他元路径后,推荐效果显著提升
2.用深度学习的方法来更好的学习embedding
3.考虑地更加细致,表示学习学到的feature可能有不同的aspect(比如喜欢某个品牌的裤子、某个风格的裙子),我们可以通过更加细致的划分学得更好。
Cross Domain Sources
1.把不同网站上的信息资料整合到一起,比如amazon是一个电商平台,它只有用户的购买、点击等交互记录,如果可以把Facebook的交友信息也添加进来,就可以获得更多的信息用于推荐。
如何对应两个网站中的信息?
2.也可以找两个相似的网站,如电影网站IMBD和豆瓣,其目标用户不同,例如通过电影上映时间差,收集IMBD上的观众对该电影的评分,对应到豆瓣的相似用户,来预测他们对该电影的评分。可以很好地解决冷启动问题
同一个电影它的embedding是相同的
2.考虑两种不同的物品,如书和CD,利用用户对书的评价预测他对CD的评价。
因为user是相同的,所以是利用user的representation
Context Information
Basket/Session Information
上文是在讲推荐类似的商品给用户,比如看完一本书,推荐另一本;看完一部电影,推荐另一部。但有些推荐场景并不适用,比如去到超市买好多东西, 我们可以把它看作是朝一个篮子里面放什么东西,买东西的过程中,篮子里面已经有许多东西了,下一个可能被放入的是什么?或者篮子是空的,根据以往的篮子,要买的是什么。本质上就是在捕捉产品之间的关系。
首先我们要确定intent
从前我们只需要看user与item之间的关系,现在多了basket
从basket里面确定intent,从intent里面找要买的东西
利用深度学习的方法构建框架
效果有显著的提升
Text Information
Product Review
我们做推荐其实是在寻找相似的user去推荐给他们对方喜欢的item,如果两个user同时给一个item评分为4,为此把这两个user认为是相似的,其实是不合理的,因为他们给出相同分数的原因可能完全不同,user A可能因为产品质量好所以评分为4,user B可能因为产品十分美观所以评分为4。因此我们引入用户的review,找到其真实的偏好原因。
随着深度学习NLP等技术的发展,文本分析成为了可能
1.可以从用户/商品的角度来看待review,对用户和商品进行一个特性刻画
2.把双方的评价作为输入得到embedding,然后找到相关性做推荐
3.把这种想法与之前的模型做一个融合
效果显著提升
Product Description
1.商品的描述也可以作为是一种text information,由商家提供
以一个samsung的吸尘器的描述为例,它的内容包含了很多方面的内容,比如规格、技术、电池等,但用户只关注其中的1~2点来发表评价,并不会全都涉及。
2.结合review和description
对于用户使用用户喜欢item的title来描述,对于商品使用他收到的reviews来描述
Temporal pattern
引入时间序列,之前买过的商品影响着下一件购买的物品
引入知识图谱等资讯
2.引入其他用户,因为协同过滤是在找相似的用户,可以帮助推荐,因此可以考虑其他用户的时间序列
在考虑他人影响的情况下,加入时间序列的影响
该文章为“Gated Spectral Units:Modeling Co-evolving Patterns For SequentialRecommendation”,ACM SIGIR 2019,并没有特别听懂当时讲的思路,感兴趣的朋友可以自行查阅。
Friend Recommendation
把不同的社交网络连接在一起,做朋友推荐。类似产品推荐里面的cross domain
不同社交网络中用户ID可能不同,而且其所实现的功能也有所差异
如何把成熟的社交网络转换到一个新系统中做好友推荐,把下面这四种信息融合到一起
如何融合这些不同的异质信息?找一个schema表示不同类别的节点之间的关系,然后找到人与人之间的关系,推荐他们做朋友
如果u1和u2同时follow u3,或者u3同时follow u1和u2,那么表示u1与u2相似
或者u1和u2喜欢发类似的文字/在相同的地址打卡/…他们也有相似性在里面。
跨社交网络来做,相同的用户在不同的平台其representation都应该是相似的。
Summary
1.推荐的两个适用场景
2.为了更有效的推荐,加入一些可用信息如知识图谱、reviews等,不仅要挖掘的深、也要挖的广
3.可解释性与公平。可解释性非常好理解,就是指你为什么要推荐这个商品给用户。公平是指比如在职场推荐中,不能把某一类人遗漏掉。