独家 | 一文读懂LinkedIn个性化推荐模型及建模原理-阿里云开发者社区

开发者社区> 技术小能手> 正文

独家 | 一文读懂LinkedIn个性化推荐模型及建模原理

简介:
+关注继续查看

推荐系统是一种自动化的计算机应用程序,它可以根据不同的内容对用户进行匹配。这种系统的应用很普遍,并且已经成为我们日常生活中不可缺少的一部分。常见的例子像亚马逊给用户推荐产品,雅虎给访问网站的用户推荐内容,Netflix给用户推荐电影,LinkedIn给用户推荐工作等等。考虑到用户偏好存在明显的差异性,提供个性化推荐就成为这种系统成功的关键。

为了实现这个目标,通过机器学习模型从收集的反馈信息中估计用户偏好至关重要。这些模型是基于用户历史交互信息中获取的大量高频数据而构建的。本质上它们都是统计模型,需要克服序列决策过程、高维数据的交互建模,开发可伸缩的统计方法等诸多困难。在这个领域,新方法论的诞生需要各方面的紧密合作,包括计算机科学家、机器学习专家、统计学家、优化专家、系统专家、以及领域专家。这是大数据行业最令人兴奋的应用之一。

aa8f639b097bda1b182cb75f99c3f86cff9d3b91

LinkedIn的许多产品都应用了推荐系统,这些系统的核心组件是一个灵活的机器学习库,叫Photon-ML,这是提升我们的生产力、敏捷性以及开发人员幸福感的关键。目前我们已经开源了Photon-ML使用的大部分算法。 在本文中,我们将重点关注个性化推荐模型,并解释建模原理以及如何通过Photon–ML来实现,使其惠及数亿用户。

Photon-ML的个性化模型构建

LinkedIn通过应用Photon-ML,显著提升了许多产品的用户参与度和业务指标。下面举例说明如何使用广义可加混合效应模型(GAME)进行个性化的工作推荐。在我们的在线对照实验中,该模型为求职者提供了比平时高出20%~40%的工作申请机会。

作为全球最大的职业社交网络,LinkedIn为其5亿多的用户提供了一个独特的价值定位,为他们的职业发展提供了各种各样的机会。我们提供的最重要的产品之一是“求职主页”,它是那些想要申请一份好工作的用户的服务中心。

7b82e14f77b27d507ebaf45aed2d6fcb9b391591

图1 LinkedIn求职主页的快照

图1页面的一个主要功能模块是“您可能感兴趣的工作”,这个页面会根据用户的公开资料和历史活动记录向他们推荐相关的工作简介。如果用户对推荐的工作感兴趣,他/她可以点击进入工作详情页面,进一步了解这个工作的职位、描述、职责、要求的技能和任职资格。工作详情页面也会提供“申请”按钮,可以让用户通过LinkedIn或者公司的招聘网站一键申请到这个工作。LinkedIn业务成功的关键指标之一就是工作申请的点击总量(即“申请”按钮的点击次数)。

我们模型的目标是准确预测一个用户申请系统推荐工作的概率。直观地来说,该模型由三个组件/子模型组成:

  • 一个全局模型,用来捕获用户申请工作的常规行为;
  • 一个特定用户模型,其参数(从数据中学习获得)针对特定用户,以捕获其偏离常规行为的个人行为;
  • 一个特定职业模型,其参数(从数据中学习获得)针对特定职业,以捕获其偏离常规工作的独特行为。

与很多推荐系统应用程序一样,我们在大量的用户或者职业数据中观察到许多差异性。在求职网站上既有新用户加入(因此几乎没有相关数据),也有那些拥有很强求职意向并在过去多次申请工作的用户。同样的,对比不同类型的工作,既有受欢迎的,也有比较冷门的。对于拥有很多工作申请数据的用户,我们希望应用特定用户模型来计算,另一方面,如果用户没有很多历史数据,我们会选择全局模型来捕获用户常规行为。

接下来让我们深入研究一下这个广义可加混合效应模型(GAME)是如何基于上述情况实现个性化推荐的。

首先,用 ymjt 表示用户m在上下文t的条件下是否申请工作j的二进制结果,其中上下文内容通常包括工作时间和位置。我们用qm表示用户m的特征向量,其中包括从用户公开的资料中得到的特征信息,例如用户的工作岗位、工作职能、教育背景、所属行业等。我们用sj表示工作j的特征向量,其中包括工作的特征信息,例如职位名称、所需技能和工作经验等。

然后用xmjt表示三维变量(m, j, t)的整体特征向量,包括qm和sj特征的主要影响,qm和sj的外积用来表示用户、工作特征以及上下文的特征。其中xmjt不包含用户ID和项目ID,这些ID将会受到与常规特性不同的处理方法。利用逻辑回归法预测用户m申请工作j的可能性的GAME模型如下:

27f43707bc5fa507c37a2edea5b4f1f26308371d

其中

9074c1c7902359cc6079020b85b713520cd5c3f6

是关联函数,b是全局系数向量(在统计学文献中也叫固定效应系数),αm和βj是特定于用户m和工作j的系数向量,也叫随机效应系数,用来表示用户m在不同项目上的偏好和工作j对不同用户的吸引力。对于一个在过去申请很多职位的用户,我们能够准确地估计他/她的个人系数向量αm并提供个性化的预测。另一方面,如果用户m过去没有申请记录,αm的后验平均值将会接近0,针对用户m的模型将会退回到全局固定效应x'mjtb,同样的道理也适用于工作系数向量βj。

Photon-ML:构建个性化推荐模型的可伸缩平台

为了在 Hadoop集群上使用大量数据对模型进行训练,我们在Apache Spark上层开发了Photon-ML。设计可伸缩算法的一个主要挑战是要从数据中学习海量的模型参数(例如数百亿),如果我们简单地利用标准机器学习方法来训练模型(比如 Spark 提供的 MLlib),那么更新大量参数带来的网络通信成本太高,在实际计算中不可行。其中大量参数主要来自于特定用户模型和特定职业模型,因此,使算法具有可伸缩性的关键是避免在上述模型中向集群传送或广播大量参数。

我们使用并行块坐标下降法(PBCD)来解决大规模的模型训练问题,在这个方法中,通过迭代法训练全局模型、特定用户模型以及特定职位模型最终达到收敛的状态。其中使用标准分布式梯度下降法对全局模型进行训练,对于特定用户模型和特定职业模型,我们设计了一个模型参数更新方案,这样上述模型中的参数不需要通过集群里的机器进行通信。但是,每个训练示例的部分评分是通过机器之间的通信完成的,这样大大降低了通信成本。同时PBCD也可以很容易地应用到拥有不同类型子模型的模型中。

结论和展望未来

在本文中,我们简要介绍了怎样使用 Photon-ML来实现个性化推荐,由于篇幅限制,很多有趣的优化和实施细节都被省略了,在此强烈推荐读者去查看Photon-ML开源源码。在LinkedIn, 我们致力于构建最先进的推荐系统,并且也为 Photon-ML制订了令人兴奋的计划,在不久的将来,我们计划在 Photon-ML中增加更多的建模功能,包括树状模型和不同的深度学习算法来构建非线性和更深层次的表示结构。


原文发布时间为:2017-12-17

本文作者:Yiming Deepak

本文来自云栖社区合作伙伴“数据派THU”,了解相关信息可以关注“数据派THU”微信公众号

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10060 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
12070 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
9157 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13874 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
4654 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
4498 0
+关注
技术小能手
云栖运营小编~
7208
文章
9
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载