为了实现这个目标,通过机器学习模型从收集的反馈信息中估计用户偏好至关重要。这些模型是基于用户历史交互信息中获取的大量高频数据而构建的。本质上它们都是统计模型,需要克服序列决策过程、高维数据的交互建模,开发可伸缩的统计方法等诸多困难。在这个领域,新方法论的诞生需要各方面的紧密合作,包括计算机科学家、机器学习专家、统计学家、优化专家、系统专家、以及领域专家。这是大数据行业最令人兴奋的应用之一。
LinkedIn的许多产品都应用了推荐系统,这些系统的核心组件是一个灵活的机器学习库,叫Photon-ML,这是提升我们的生产力、敏捷性以及开发人员幸福感的关键。目前我们已经开源了Photon-ML使用的大部分算法。 在本文中,我们将重点关注个性化推荐模型,并解释建模原理以及如何通过Photon–ML来实现,使其惠及数亿用户。
Photon-ML的个性化模型构建
LinkedIn通过应用Photon-ML,显著提升了许多产品的用户参与度和业务指标。下面举例说明如何使用广义可加混合效应模型(GAME)进行个性化的工作推荐。在我们的在线对照实验中,该模型为求职者提供了比平时高出20%~40%的工作申请机会。
作为全球最大的职业社交网络,LinkedIn为其5亿多的用户提供了一个独特的价值定位,为他们的职业发展提供了各种各样的机会。我们提供的最重要的产品之一是“求职主页”,它是那些想要申请一份好工作的用户的服务中心。
图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模型如下:
其中
是关联函数,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也可以很容易地应用到拥有不同类型子模型的模型中。
相关推荐
例如,LinkedIn Feed通过个性化推荐为用户展示相关内容,确保他们能够看到与自己职业发展相关的信息。Jobs You May Be Interested In (JYMBII)功能利用预测模型来推荐可能感兴趣的职位,从而帮助用户找到理想的工作...
2. **国内外研究现状**:国内外已有一些成熟的招聘网站如LinkedIn、智联招聘和前程无忧等,但这些系统可能在个性化推荐、用户体验或特定行业的定制化方面存在不足。开发新的网上招聘系统,旨在提供更高效、更个性化...
5. 市场细分:通过聚类分析等方法,将消费者划分为具有相似特性的群体,便于制定个性化的市场策略。 6. 预测模型:学习使用机器学习算法,如决策树、随机森林或神经网络,构建预测模型,以预见消费者的购买行为或...
此外,通过与业务系统的深度整合,腾讯的数据湖还能够为用户提供更加个性化的数据服务和支持。 ### 总结 腾讯在数据湖元数据治理方面的实践充分体现了其在大数据领域的领先地位。通过采用先进的技术和方法论,腾讯...
外加热强制循环蒸发器装配图(CAD).rar
数控车床纵向进给系统设计.zip
j
爬虫 bangumi名称和评论数
基于SpringBoot的垃圾分类回收系统,系统包含两种角色:管理员、用户主要功能如下。 【用户功能】 首页:浏览垃圾分类回收系统信息。 个人中心:管理个人信息,查看历史记录和订单状态。 运输管理:查看运输信息,垃圾回收的时间和地点。 公告管理:阅读系统发布的相关通知和公告。 垃圾回收管理:查看垃圾回收的信息,回收类型和进度。 垃圾出库申请管理:提交和查看垃圾出库申请的状态。 【管理员功能】 首页:查看垃圾分类回收系统。 个人中心:管理个人信息。 管理员管理:审核和管理注册管理员用户的信息。 用户管理:审核和管理注册用户的信息。 运输管理:监管和管理系统中的运输信息。 公告管理:发布、编辑和删除系统的通知和公告。 垃圾回收管理:监管和管理垃圾回收的信息。 垃圾出库申请管理:审批和管理用户提交的垃圾出库申请。 基础数据管理:管理系统的基础数据,运输类型、公告类型和垃圾回收类型。 二、项目技术 编程语言:Java 数据库:MySQL 项目管理工具:Maven 前端技术:Vue 后端技术:SpringBoot 三、运行环境 操作系统:Windows、macOS都可以 JDK版本:JDK1.8以上都可以 开发工具:IDEA、Ecplise、Myecplise都可以 数据库: MySQL5.7以上都可以 Maven:任意版本都可以
内容概要:本文档是台湾大学计算机科学与信息工程系2021年秋季学期《算法设计与分析》课程的第一次作业(Homework#1)。作业包含四道编程题和三道手写题,旨在考察学生对算法设计和分析的理解与应用能力。编程题涉及汉诺塔、数组计算、矩形点对、糖果分配等问题;手写题涵盖渐近符号证明、递归方程求解、幽灵腿游戏优化、不公平的卢卡斯问题等。文档详细描述了每个问题的具体要求、输入输出格式、测试用例以及评分标准。此外,还提供了编程技巧和注意事项,如避免延迟提交、正确引用资料、处理大输入文件等。 适合人群:具备一定编程基础的本科生或研究生,特别是修读过或正在修读算法设计与分析相关课程的学生。 使用场景及目标:①帮助学生巩固课堂所学的算法理论知识;②通过实际编程练习提高解决复杂问题的能力;③为后续更深入的学习和研究打下坚实的基础。 其他说明:此作业强调团队合作和个人独立思考相结合的重要性,鼓励学生在讨论后用自己的语言表达解决方案,并注明参考资料。对于编程题,特别提醒学生注意输入文件可能较大,建议采取适当的优化措施以确保程序运行效率。
基于SpringBoot的铁路订票管理系统,系统包含两种角色:管理员、用户主要功能如下。 【用户功能】 首页:浏览铁路订票管理系统的主要信息。 火车信息:查看火车的相关信息,包括车次、出发地、目的地和票价等。 公告资讯:阅读系统发布的相关通知和资讯。 后台管理:进行系统首页、个人中心、车票预订管理、车票退票管理等操作。 个人中心:管理个人信息,查看订单历史记录等。 【管理员功能】 首页:查看铁路订票管理系统。 个人中心:修改密码、管理个人信息。 用户管理:审核和管理注册用户的信息。 火车类型管理:管理系统中的火车类型信息。 火车信息管理:监管和管理系统中的火车信息,添加、编辑、删除等。 车票预订管理:处理用户的车票预订请求。 车票退票管理:处理用户的车票退票请求。 系统管理:管理系统的基本设置,公告资讯、关于我们、系统简介和轮播图管理。 二、项目技术 编程语言:Java 数据库:MySQL 项目管理工具:Maven 前端技术:Vue 后端技术:SpringBoot 三、运行环境 操作系统:Windows、macOS都可以 JDK版本:JDK1.8以上都可以 开发工具:IDEA、Ecplise、Myecplise都可以 数据库: MySQL5.7以上都可以 Maven:任意版本都可以
塑料架注射模具设计.rar
基于json文件数据驱动的的接口测试框架
铁丝缠绕包装机设计-缠绕盘设计.rar
linux
圆柱体相贯线焊接专机工作台设计.rar
硬币分拣机设计.rar
内容概要:本文探讨了开发行业级机器学习和数据挖掘软件的经验与教训,指出当前研究界与工业界之间的脱节问题。作者分享了开发LIBSVM和LIBLINEAR的经验,强调了用户需求的重要性。大多数用户并非机器学习专家,期望简单易用的工具来获得良好结果。文章还详细介绍了支持向量机(SVM)的实际应用案例,包括数据预处理(如特征缩放)、参数选择等步骤,并提出了为初学者设计的简易流程。此外,作者讨论了在设计机器学习软件时应考虑的功能选择、选项数量、性能优化与数值稳定性等问题,强调了软件开发与实验代码的区别以及鼓励研究人员参与高质量软件开发的重要性。 适合人群:对机器学习软件开发感兴趣的科研人员、工程师及从业者,尤其是那些希望了解如何将学术研究成果转化为实际可用工具的人士。 使用场景及目标:①帮助非机器学习专家的用户更好地理解和使用机器学习方法;②指导开发者在设计机器学习软件时考虑用户需求、功能选择、性能优化等方面的问题;③促进学术界与工业界之间的合作,推动高质量机器学习软件的发展。 其他说明:本文不仅提供了具体的开发经验和技巧,还呼吁建立激励机制,鼓励更多研究人员投入到机器学习软件的开发中,以解决当前存在的研究与应用脱节的问题。
一天入门pandas代码
该资源为joblib-0.12.0-py2.py3-none-any.whl,欢迎下载使用哦!