技术文章 | 深度学习在推荐领域的应用:Lookalike 算法

本文来源于阿里云-云栖社区,原文点击这里


本文主人公 英特 是一名传统的软件工程师,让我们与英特一起来研究如何实现自己的Lookalike算法,并尝试着在新浪微博上应用这一算法。

  当2012 年Facebook 在广告领域开始应用定制化受众(Facebook CustomAudiences)功能后,受众发现这个概念真正得到大规模应用。什么是受众发现?如果你的企业已经积累了一定的客户,无论这些客户是否关注你或者是否和你在Facebook 上有互动,你都能通过Facebook 的广告系统触达到。受众发现实现了什么功能?在没有这个系统之前,广告投放一般情况都是用兴趣标签去区分用户,再去给这部分用户发送广告,受众发现让你不用选择这些标签,包括用户基本信息、兴趣等。你需要做的只是上传一批你目前已有的用户或者你感兴趣的一批用户,剩下的工作就等着受众功能帮你完成了。

  像Facebook 这样通过一群已有的用户发现并扩展出其他用户的推荐算法就叫Lookalike,当然英特并不清楚Facebook 的算法细节,而各个公司实现Lookalike 的方式也各有不同。这里也包括腾讯在微信端的广告推荐上的应用、Google 在YouTube上推荐感兴趣视频等。下面让我们与英特一起结合前人的工作,实现自己的Lookalike算法,并尝试着在新浪微博上应用这一算法。

  调研

  首先要确定微博领域的数据,关于微博的数据可以采用下面这几个分类维度。

  • 用户基础数据:用户的年龄、性别、公司、邮箱、地点、公司等。
  • 关系图:根据人-人和人-微博的关注、评论、转发信息建立关系图。
  • 内容数据:用户的微博内容,包含文字、图片、视频。


  有了这些数据后,怎么做数据的整合分析?来看看现在应用最广的方式——协同过滤、或者叫关联推荐。协同过滤主要是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户可能感兴趣的信息,协同过滤的发展有以下三个阶段。


  第一阶段:基于用户的喜好去做推荐。用户A 和用户B 相似,用户B 购买了物品a、b、c,用户A 只购买了物品a,那就将物品b、c 推荐给用户A。这就是基于用户的协同过滤,其重点是如何找到相似的用户。因为只有准确地找到相似的用户才能给出正确的推荐。而找到相似用户的方法,一般是根据用户的基本属性贴标签分类,再高级点可以用上用户的行为数据。


  第二阶段:某些商品光从用户的属性标签找不到联系,而根据商品本身的内容联系倒是能发现很多有趣的推荐目标,它在某些场景中比基于相似用户的推荐原则更加有效。比如在购书或者电影类网站上,当你看一本书或电影时,推荐引擎会根据内容给你推荐相关的书籍或电影。


  第三阶段:如果只把内容推荐单独应用在社交网络上,准确率会比较低,因为社交网络的关键特性还是社交关系。如何将社交关系与用户属性一起融入整个推荐系统就是关键。另外一个问题就是仅仅用兴趣标签过于粗犷,人与人的兴趣差异不光光是兴趣标签决定的,往往和时间、环境等其他的影响息息相关,如何将人在社交网络的所有特征尽可能提取出来并且计算呢?在神经网络和深度学习算法出现后,提取特征任务就变得可以依靠机器完成了,人们只要把相应的数据准备好就可以了,其他数据都可以提取成向量形式,而社交关系作为一种图结构如何表示为深度学习可以接受的向量形式,而且这种结构还能有效还原原结构中位置信息?这就需要一种可靠的向量化社交关系的表示方法。基于这一思路,在2016 年的论文中出现了一个算法node2vec,使社交关系也可以很好地适应神经网络。这意味着深度学习在推荐领域应用的关键技术点已被解决。

  在实现算法前英特主要参考了以下三篇论文:


展开全文

你可能感兴趣的:(技术文章)