大渡口资讯网
国内新闻
当前位置: 首页 >> 国内新闻 >> 正文

推荐算法团队介绍


文章作者:www.vivapinoy.com 发布时间:2020-03-10 点击:1710



点击上面的“大数据和人工智能”、“明星标志或顶级公众号码”第一次获得好的内容

Author,巩有留

Editor,zandy

这是作者的第28篇文章,大约9700字,阅读需要40分钟。

目前,越来越多的互联网公司开始关注推荐系统,它已经成为toC互联网产品的标准。推荐系统在为用户提供个性化服务方面发挥着极其重要的作用。在这种背景下,许多公司开始组建推荐算法团队来开发推荐系统。通过向成千上万的人提供准确的产品推荐功能,他们希望更好地服务于用户,改进内容分发和转换,并最终创造更多的商业价值。

推荐算法团队的主要目标是建立一套简单、易用、高效、稳定且具有商业价值的推荐系统,将该推荐系统应用到产品中,通过准确的推荐更好地为用户服务,并通过不断的迭代使其变得越来越有价值。推荐系统是一种复杂的局部工程软件系统。推荐算法只是其中的一个重要部分。由于这一特点,它要求具有不同专业技能的员工参与开发,并与许多其他团队密切合作,以构建一套实用的推荐解决方案。

在本文中,我们介绍了推荐算法团队的组成和相关工作,以便读者能够更好地理解推荐团队的组成、日常工作、哪些团队需要处理、他们如何协作、推荐算法团队的目标等。具体来说,我们将从三个维度进行解释:推荐团队的组成,与推荐系统密切相关的其他团队,以及推荐团队的目标和定位。我们希望通过作者的介绍,读者能更好地了解推荐团队的工作和价值。

在本文中,我们介绍了推荐算法团队的组成和相关工作,以便读者能够更好地理解推荐团队的组成、日常工作、哪些团队需要处理、他们如何协作、推荐算法团队的目标等。具体来说,我们将从三个维度进行解释:推荐团队的组成,与推荐系统密切相关的其他团队,以及推荐团队的目标和定位。我们希望通过作者的介绍,读者能更好地了解推荐团队的工作和价值。

1。推荐团队的组成

在我们谈论推荐团队的组成之前,我们需要对推荐的业务流程有一个初步的了解。下面的图1显示了一般推荐算法需要经历的步骤和阶段。本节中解释的推荐团队的组成根据业务流程中涉及的工作进行划分。

在本文中,我们介绍了推荐算法团队的组成和相关工作,以便读者能够更好地理解推荐团队的组成、日常工作、哪些团队需要处理、他们如何协作、推荐算法团队的目标等。具体来说,我们将从三个维度进行解释:推荐团队的组成,与推荐系统密切相关的其他团队,以及推荐团队的目标和定位。我们希望通过作者的介绍,读者能更好地了解推荐团队的工作和价值。

图1:推荐的系统业务流程

如果机器学习被比作飞机引擎,那么数据就是算法的燃料,正如推荐的系统一样。我们需要从各种数据源获取数据,并以统一的方式将数据收集到数据中心(对于互联网公司来说,许多公司已经建立了自己的大数据平台和自己的数据仓库系统,然后将数据收集到数据仓库中,并按照一定的规范进行存储)。对于各种数据,我们需要对推荐算法所依赖的数据进行处理并构建特征(读者可以参考本文《从零开始构建企业级推荐系统》了解更多关于数据收集和特征工程的信息),然后选择合适的推荐算法来构建推荐模型,并通过对推荐模型的筛选(根据一定的评价指标,为同一模型筛选不同的模型或选择不同的参数),这个过程就是离线评价。读者可以参考《推荐系统之数据与特征工程》进行离线评估。作为模型的输入,特征由不同的模型决定和影响。不同型号对缺失值的数量、形式、公差等有不同的要求。)以获得更好的模型,并最终为用户进行推荐预测,提供推荐服务界面。当用户在产品上使用推荐模块时,前端通过推荐界面获取推荐结果,并将推荐结果显示给用户,使用户能够体验个性化的推荐服务。同时,我们还需要及时地评估推荐算法的效果

数据处理和特征工程师的主要工作是处理推荐算法所依赖的数据,为推荐算法构造合适的特征,并通过构造新特征或优化现有特征使推荐算法获得更好的结果。

不同的算法对特征的形式、类型、精度和数量有不同的要求。因此,特征强烈依赖于所选择的算法。特征工程是机器学习全过程中非常重要的一部分。有许多无聊而复杂的任务要处理,这些任务看起来并不重要。此外,特征工程的许多技能需要经验积累,并且与领域相关(不同的领域对于特征工程有其独特的方法和思想)。特征工程的质量往往直接决定机器学习的最终效果。在机器学习领域,有一句名言很好地说明了特征工程的价值,大致意思是“特征工程的质量决定了机器学习能力的上限,而算法和模型只能无限接近这个上限。”

功能工程是一项劳动密集型的工作。虽然它涉及问题和领域,但也有一般的方法和思路可供参考。推荐系统是机器学习的一个分支。许多推荐算法(如逻辑回归、分解机、深度学习等。主要用于推荐排序阶段)需要大量的特征工程来获得高质量的特征。读者可以参考本文《推荐系统评估》,了解更多关于特性构建的细节。

目前,绝大多数提供一定用户规模的toC服务的互联网公司都有自己的大数据平台(自建或租用的大数据云平台)。数据处理和特征工程的工作通常基于大数据平台。例如,主流Spark分布式计算框架的MLlib库包含许多用于特征工程的算法。我们可以直接使用它们,大大降低了开发商的投资成本。成熟的云平台提供了越来越完善的机器学习模型和特征处理方法。例如,阿里云的PAI机器学习平台提供了一套完善的机器学习解决方案。

2。推荐算法研究者

algorithm researcher的主要工作是基于产品形式、业务场景、现有数据、计算资源、用户规模、软件架构等约束条件,设计适合当前阶段的新推荐算法或不断迭代优化现有的旧推荐算法。改进算法的各项指标,并最终应用到产品中,促进主题的分发和转化,提升用户体验,创造更多的商业价值。

算法研究者需要关注新技术的最新发展(如新算法框架、新计算范式等)。)和新的(推荐的)算法,研究和解释新的论文,并评估在公司产品中应用的可行性。他们的工作更接近学术前沿研究,他们需要对新技术和新动态保持敏感,并持续跟进。他们通常只负责特定算法的研究和测试,并就其优缺点和商业价值提供专业建议。具体算法在地面上的实现、工程实现的细节以及特殊情况的处理都需要算法工程实现人员的帮助。最后,他们还需要产品团队的帮助来完成算法的生产。许多大公司研究机构(如微软亚洲研究院)的员工都属于这一类。

3。推荐算法工程从业者

算法工程从业者根据算法研究者的具体工作,了解新算法的原理或他们提出的旧算法的具体优化策略,并在公司现有技术积累(技术堆栈、相关组件、计算平台等)的基础上实施新算法或优化旧算法。)。对于新算法,需要将其封装成模块化、简单易用的组件(如支持大规模分布式计算、算法稳定收敛等)。),最后用在实际产品中,通过AB测试等工具来测试一些流量(或一些用户)并验证算法的效果。

幸运的是,开源生态系统目前非常丰富,有大量开源组件和算法框架可供选择。例如,Spark的MLlib库包含ALS矩阵分解推荐算法,基于Python的惊奇推荐算法库包含大量推荐算法(包括KNN、矩阵分解等推荐算法),以及基于R语言的推荐器lab推荐算法库。一些推荐算法的实现也包含在深度学习框架中,如TensorFlow和PyTorch(读者可以参考《推荐系统的商业价值》的第4节,其中包含各种深度学习框架和相关推荐算法库的介绍)。读者可以基于这些框架进行研究和工程实践。Spark和TensorFlow是业界流行的计算平台。作者还在自己公司的业务中主要使用这两种类型的开源库,尤其是主要的基础软件平台Spark。绝大多数推荐算法都是基于该平台结合公司相关产品业务进行深度定制开发的。

推荐系统工程实践不仅要实现新的推荐算法和优化现有算法,还要按照软件工程的思想,将整个推荐系统中涉及的所有环节、组件和模块构建成一个模块化、可重用、简单易用的工程系统,便于业务迭代、优化、问题定位和调查。读者可以参考《推荐系统之数据与特征工程》,了解工程实践中的更多想法和设计理念。

4。支持组件开发者

推荐系统是一个复杂的工程应用领域。为了使推荐系统发挥稳定可靠的作用,除了算法之外,还需要许多其他模块和组件的支持。广义而言,支持组件开发人员正在开发与推荐系统业务相关的其他组件,如数据质量管理、任务调度、监控、错误恢复、AB测试平台、在线评估索引、数据传输组件、推荐数据存储组件、推荐网络服务接口等。当然,这些复杂组件和模块的开发功能不一定放在推荐团队中。一些与大数据相关的功能可以放在大数据团队中(例如数据治理和在线评估指标)。由于大数据和算法之间的密切关系,事实上,许多公司的大数据团队和算法团队是同一个团队,而作者公司是组织结构)。有些功能可以放在后端开发团队中(比如AB测试平台、推荐Web服务接口等)。)。

从推荐业务流程中涉及的具体任务的角度,对上述推荐系统中涉及的四类人员进行了分类。推荐系统的实际实施需要这四种类型的角色,但是这四种类型的角色是否一定是不同的四波人员还不确定。这需要根据公司规模、产品所处的阶段以及推荐系统在产品中的重要性来衡量,并且受到许多因素的影响。

对于以推荐系统为核心技术的公司和产品,比如今天的头条,参与推荐系统开发的员工组成了一个庞大的团队。这些角色实际上是不同的4个子团队,可以分成更小的团队。每种类型的人员可以被分成更小的团队,例如特征工程团队、基于文本信息的特征工程团队以及基于图像和视频等视觉信息的特征构建团队。对于大型推荐团队,每个人可能只参与或负责推荐业务流程的一小部分,每个人在整个系统中的角色相当于生产线中的一个流程。每个人都像一个螺丝钉,一起工作来建立一个复杂的推荐系统。个人更有可能成为某个知识点的专家,而他们可能不太熟悉整个推荐系统。

对于刚刚开始构建推荐算法的产品、初创公司和其他刚刚开始构建推荐算法团队的情况,所有四个角色可能都是同一个人。他需要解决推荐系统中涉及的所有问题,并构建端到端的推荐解决方案。american federation of technical engineers 美国技术工程师联盟

上面提到的只是与推荐算法的实现密切相关的几类开发者。为了在产品中实现推荐算法,更多的团队和更多的人需要合作。下一节将解释与算法团队有交集的其他相关团队的工作介绍,以及他们在推荐系统实现中的角色。

2。与推荐系统密切相关的其他团队

推荐系统是一个复杂而系统的项目。因此,为了让推荐系统产生真正的商业价值,需要更多的团队合作。下面的图2从业务流程(类似于业务装配线)的角度展示了推荐系统中涉及的各种人员的细分。下面的红色虚线框已经在前一节中介绍过了,其他部分涉及的人员和工作将从下到上进行简要说明。

图2:推荐系统

1中涉及的其他团队工作。基础架构团队

图2的底部是基础架构团队,它构建大数据以及硬件和软件基础架构。基于这些基础设施和组件,推荐算法团队可以更加专注地研究和实现推荐算法。

随着大数据技术的发展和成熟,大数据技术在推荐系统中起着至关重要的作用。只要toC是一个互联网产品,它的本质就是一个大规模经济,依靠大量用户通过会员、广告和其他商业模式来赚取利润。因此,当产品发展到一定阶段,当用户数量足够大时,用户产生的行为数据将非常大。此时,有必要使用大数据技术来处理这些实时生成的海量数据。大数据技术在推荐中的作用主要包括三点:第一,通过数据仓库中的大数据组件收集、处理和构建推荐中所依赖的各种数据的特征,解决推荐算法的“原材料”问题(Spark MLlib包含许多与数据处理和特征工程相关的操作符);第二,大数据平台本身包含巨大的计算能力,可以为推荐系统提供计算能力支持(Spark MLlib包含ALS矩阵分解推荐算法,我们可以基于Spark平台提供的编程接口开发各种推荐算法);第三,许多推荐算法需要使用大数据,如深度学习推荐算法需要大量的数据和多维数据来训练好的模型。此外,许多接近实时的推荐算法(如今天标题中的信息流推荐)需要实时数据处理技术来支持。

上面提到的大数据技术本身就是一个软件基础设施,而其他与推荐系统相关的基础设施包括数据存储、其他计算平台(如TensorFlow等)。),测试环境,虚拟机,容器等。

需要存储推荐系统生成的最终推荐结果和中间特征,以便于实时调用和获取每个推荐模块,因此需要数据库的支持。数据库包括传统的关系数据库(如MySQL等。)和非关系数据库(如Redis、CouchBase等。),在推荐系统中广泛使用(参见本文《深度学习在推荐系统中的应用》中相关章节的介绍)。

并非所有推荐的算法都适合构建在Spark等大型数据平台上。深度学习等典型技术不适合在Spark平台上开发。此时,我们需要构建其他计算平台。如果推荐团队有精力在产品开发到一定阶段时进行复杂的推荐算法研究,那么就需要基础设施团队来帮助推荐团队构建其他计算平台,比如流行的TensorFlow计算平台。此外,还需要一些技能来处理大数据平台和TensorFlow平台之间的数据、流程和业务依赖关系(这主要是因为旧的基础架构无法立即完全替换,新平台也难以满足所有业务需求,因此需要两个平台进行长时间的维护)。是否需要引入另一个平台需要权衡。推荐系统的业务流程还不是很成熟。作者不建议直接堆积复杂的算法。关于这一点的讨论,t

有软件开发经验的读者非常清楚测试环境的重要性。推荐的算法需要在实际启动之前进行测试,所以它需要测试团队的大力支持。只有拥有一个完整、高效且易于使用的测试平台,我们的产品才能更快地迭代。推荐系统(实时性、个性化、数据量大)的特点决定了其测试不同于一般的后端软件系统,这也加大了构建一个完善的推荐系统测试平台的难度,需要更多的测试资源。具体来说,许多产品的推荐算法是实时的,很难验证和测试实时行为,推荐系统是个性化的。每个人的推荐结果不同,测试和验证业务逻辑和算法逻辑的正确性更加困难。同时,推荐系统为每个用户生成推荐,并且需要存储大量的推荐结果,因此需要更多的测试资源。推荐系统的个性化特征使得使用缓存技术如CDN等更加困难。推荐系统的高并发测试是必须的。

推荐系统的web服务需要部署到独立的服务器(通常是虚拟机或容器)上来提供服务,基础设施团队也需要硬件和软件资源,例如虚拟机和容器。

目前,随着云计算技术的成熟,很多行业都在借助云计算能力快速发展自己的业务,越来越多的业务正在向基于云的方向发展,这是一个大趋势。上面提到的所有基础设施功能(包括大数据平台)都可以在主流云计算平台中找到相应的PAAS或SAAS解决方案。作者在12年内开始构建大数据和推荐系统。当时,中国没有云计算公司提供大数据相关服务(中国最早的云计算公司阿里云成立于2009年)。因此,我们构建了自己的大数据基础架构平台,该平台遇到了许多问题,并且维护成本很高。因此,作者强烈建议尽可能多的使用云服务,专业的任务可以由专业团队完成,这样整个推荐系统会更轻,更多的精力会投入到业务迭代中。

2。如果产品设计团队

推荐系统想要充分发挥它的商业价值,它必须融入到产品中,成为产品中的一个模块和功能点。用户通过使用产品联系推荐模块,并通过与推荐系统的交互获得推荐结果,这涉及产品团队和设计团队的工作。

个性化推荐在产品中的定位,它需要产生的价值,分工,个性化推荐和手工操作的比例,以及它们各自的侧重点和价值的不同,都是需要从产品的角度考虑的宏观问题。在清楚地思考了这些问题之后,剩下的就是推荐服务的登陆。在登录过程中,有必要考虑产品中的哪些路径和模块设置了个性化推荐,用户如何与推荐模块交互,需要显示多少推荐对象,推荐对象的排列,需要显示哪些关于要推荐的对象的信息,以及极端情况下的应对策略(例如,推荐界面挂起)。所有这些具体任务都要求产品提前思考并制定相应的解决方案。读者可以参考《推荐系统的工程实现》第1节中推荐产品的介绍,了解更多关于推荐产品的形式。这里必须提到的一个重要角色是数据产品经理。他们需要从产品维度对推荐效果、推荐价值和推荐算法的优化提供优化建议,以帮助推荐团队共同使算法发挥最大的商业价值。

用户与上述推荐模块之间的具体交互,交互分为几个阶段,交互的动画效果,大小、形状、位置关系,与背景的关系,与前、后、左、右模块在推荐主题的排列方式中的关系,颜色、背景、亮度、关系

推荐产品和推荐算法本质上是一种基于数据的个性化操作方法和工具,没有操作团队的支持,推荐系统的价值无法发挥。当前的操作已经从传统的基于位置的操作演化为丰富复杂的操作策略系统,如基于数据的操作、用户操作、内容操作和事件操作。运营在发展用户、提高用户粘性、促进“主题”消费和维护“主题”提供商的生态平衡方面发挥着越来越重要的作用。

推荐系统作为一种工具,是运营商的有力武器。推荐系统的产品形式和业务逻辑必须高效灵活地构建。它需要并且可以根据分阶段战略和运营的关键事件轻松调整和更改。支持的具体调整包括以下几个方面:

(1)调整位置和显示

例如,调整推荐产品的位置,调整推荐对象的数量,调整显示方式,甚至调整交互方式。

(2)干扰具体的推荐结果

例如,在推荐结果中插入适当的操作内容,在推荐结果中插入广告,过滤掉满足一定条件的主题等。

(3)对算法逻辑的干预

例如,对不同主题推荐率的要求,对特定主题提供者的指导(为高质量主题提供者提供更多机会)等。

上文(2)和(3)中提到的干预措施可以以一些规则或政策的形式提供。推荐团队必须提供一些界面,如操作界面、流程和方法,以便操作者的“干预权”能够得到有效的行使。

推荐算法团队还需要提供一定的“素材”给操作团队使用,如提供各种维度的主题排序列表供操作人员决策,为操作人员聚类主题以更方便地制作各种主题,为操作团队提供基于各种标签的主题关联关系以进行分类操作,为操作团队提供用户肖像能力以进行精细化的用户操作等。

总之,运营团队和推荐团队是一个合作的过程,在这个过程中可能会有一些利益冲突。我们需要保持良好的关系。最终目标是一样的。最后,每个人都希望改善用户体验,让用户留下来并产生更大的商业利润。

项目经理是推荐系统登陆过程中的一个重要角色。项目经理将在整个过程中跟踪与建议相关的需求评审、项目进度安排、项目迭代和项目验收,并将整理已完成的项目并总结经验和教训。通过项目经理的专业项目跟踪和时间进度的控制,推荐业务可以在规定的时间内保质保量地完成。

3。推荐团队的目标和定位

建立一个推荐团队是一项耗时、费力且昂贵的任务(好的推荐算法人员很难找到,而且价格相对昂贵)。因此,公司管理层决定成立一个推荐团队,希望该团队能够产生价值。推荐团队的最终价值与公司的目标是一致的:为用户提供有价值的信息、产品和服务,并在为用户提供良好服务的同时从用户那里获得商业利益(尽管广告是从广告商那里赚来的钱,但广告是被引导到的用户,而广告商付钱给你是因为你的用户价值)。推荐系统为用户创造价值并从用户那里获得价值,这是一个价值交换的过程(参见参考文献的第2章)。

基于以上描述,推荐团队肩负着改善用户体验和为公司创造商业利润的两大核心使命。总之,推荐算法团队的目标可以从以下三个角度来理解:

1。从用户的角度来看,推荐系统期望提升用户体验

推荐系统可以为成千上万的人提供个性化的内容,从而更好的满足用户的个性化需求。当推荐系统呈现

该推荐系统可以覆盖成千上万的人和面孔,当然它会向用户分发更多的对象。目前,许多推荐产品是近实时推荐的,这进一步提高了主题分发的效率和单个推荐位的输出效率。推荐系统的准确性保证了用户喜欢向用户展示主题,大大提高了主题的点击率,促进了主题的购买和转化。

在推荐系统中整合一些辅助的操作策略,为高质量的题材(如2.3节所述)提供适当的流程支持,可以改善高质量题材的分布,使题材提供者获得更多的利润,促进题材制作的良性循环。

3。从公司的角度来看,产生商业价值

如果推荐系统本身推荐的内容是商品或付费内容(例如付费视频,可以通过单个视频付费或只能由购买成员观看),则可以通过与用户兴趣的精确匹配来促进主题的销售,这本身直接产生商业价值。即使推荐的主题是免费视频、信息等。收入可以通过向推荐的视频添加补丁前广告、将广告插入信息流等来获得。除了这两种收入方式,你还可以通过支付会员费和交换流量来获利。

当然,公司和产品处于不同的阶段,焦点也不同。对于初创公司或新产品,推荐团队会更加关注前两个目标,而对于成熟产品,商业价值可能会成为焦点。读者可以参考本文《推荐系统的工程实现》,更深入地了解推荐系统的商业价值。

作为一名推荐者,算法工程师必须深刻理解推荐在产品中的价值,保持敏锐的商业意识,并在日常工作中不断实践,努力在此基础上创造价值。只有这样,他才能在为公司创造价值的同时,发挥个人价值,提高个人能力,赢得“地位”和对自己的尊重。这也是一个价值交换的过程(员工和公司之间的价值交换,员工的时间和产出是商品,公司通过工资购买员工的工作时间和产出)。

推荐系统作为内容分发工具,有三个方面的优势:1000人的内容推荐,极高的内容分发效率,无人值守的自动决策(推荐)。虽然推荐系统比人工推荐有很多优点,但是推荐系统不能代替人工操作(目前的技术在内容安全和其他方面不能代替人,这就是为什么今天像标题和脸谱这样的公司有大量的人工编辑和审计人员)。推荐系统是人工操作的有效工具和补充。我们需要充分发挥推荐系统的优势,使推荐产生更好的价值。

推荐团队应该将自己定位为一个高效的内容分发工具。通过充分发挥推荐系统的上述三大优势,可以辅助运营团队更好地运营内容和用户,最终实现推荐团队的三大目标。

Summary

本文作者介绍了推荐算法团队四类核心人员(数据处理和特征工程开发、推荐算法研究、推荐算法工程实践和支持组件开发)的主要工作内容和特点。同时,作者还介绍了与推荐团队密切相关的其他团队在支持推荐业务过程中的分工与合作。最后,介绍了推荐团队的目标和定位,并简要介绍了推荐团队的价值和使命。

通过本文的介绍,希望从事推荐算法开发的读者能够对推荐算法团队的定位、推荐算法团队的工作以及推荐算法团队与其他团队的合作有一个初步的了解。只有这样的理解,他们才能执行各种任务

下一条: 云南云龙县着力推动农业产业上档升级