成功经验:百分点亿级个性化推荐系统的发展历程和实践架构

优采云 发布时间: 2020-09-06 00:04

  百亿新元个性化推荐系统的开发过程和实用架构

  百分比个性化系统于2009年启动。它是百分比公司的第一个产品,并且一直持续到今天。个性化系统以电子商务推荐为切入点,涵盖了电子商务,媒体,阅读,应用市场等多个领域,并以第三方技术服务的形式为企业提供个性化推荐服务。

  个性化系统的几个重要特征

  

  个性化百分比系统致力于解决电子商务个性化问题。首先让我们看一下“个性化”的定义:

  

  关于如何定义个性化收入功能,通常需要考虑以下因素:

  面向KPI:评估推荐效果的具体指标是什么?是点击率或转化率,还是用户客户单位价格等。这些指标可以确定我们建议的优化目标。

  根据业务需求定义:在实际的推荐操作中,还需要考虑商家的业务目标,例如追求高毛利,例如清理库存,那么有必要提高曝光率高毛利产品和库存产品。

  根据业务影响更正:建议是一项长期工作。推荐的效果需要及时反馈到推荐系统中,以形成动态的反馈和纠正机制。

  将真实的业务与技术实现联系起来:建议始终为业务服务。与业务分离的建议是没有意义的。个性化系统将业务需求转换为技术实现,从而最大限度地提高自动化和智能化。

  在个性化系统中,它还将面临以下技术和业务挑战:

  数据稀疏是推荐系统中的常见问题。我们引入了一些新的召回机制,例如文本相似性和其他与行为无关的召回系统,以补充用户行为。

  对于冷启动问题,Baixin本身可以采集所有客户的所有用户线。新客户进入后,通常有30%-40%的用户与Baixin自己的用户数据库重叠。的用户首次登陆首页时可以使用一些受欢迎的推荐,而当用户有其他行为时,他们可以根据自己的行为提出新的推荐。我们的大多数算法都是实时处理的,因此真正的冷启动所占的比例很小。

  大数据处理和增量计算。百分比每天大约有5000万活动,1. 5亿PV,每天近2亿条建议,每天大约增加1T数据。所有组件都必须能够处理大量数据,因此整个体系结构主要是分布式和实时增量计算。

  多样性和准确性,除了准确的召回率外,推荐还必须考虑用户体验,避免推荐结果的奇异,并增加一些多样性考虑因素。

  用户行为模式的挖掘和利用,实质上是建议进行用户行为模型挖掘,找出用户行为特征并给出相应的预测,这涉及很多算法和工程问题。

  在多维数据的交叉利用中,除了在线数据之外,许多客户还拥有来自其他渠道的自己的数据。这些数据也可以引入推荐系统中,以提高推荐的有效性。

  效果评估,一个完整的推荐系统必须是一个完整的评估系统。除了推荐列尺寸的点击率和转换率,以及产品尺寸和用户尺寸的相关评估指标之外,百分比还对每个推荐列的有效性进行了详细的评估。

  Percent的商业模式将成为在线电子商务购物指南和媒体网站导航器,提供个性化的用户体验,使用Percent作为数据中心来形成网络范围内的用户行为偏好,并使用大数据获取更准确的建议。

  百分比如何实施个性化推荐系统?

  

  推荐系统的实施可能需要执行以下步骤:

  数据采集:我们将主要采集两个客户计划的数据,即项目信息和用户行为。项目涵盖尽可能多的属性维度,而用户行为则涵盖尽可能多的所有客户业务流程。

  数据处理:数据采集出现后,将通过不同的算法对其进行处理以形成不同的结果数据,并及时将其更新到内存数据库中。

  推荐反馈:对于用户的每个推荐请求,推荐服务将集成不同的算法和规则,并以毫秒为单位返回结果列表。

  关于数据采集,有两种主要技术:

  在数据处理方面,Percent还经历了架构的改变,从单台机器到主从再到完全分布式的架构。目前,kafka / storm / IMDB / hadoop用于实现主要的计算和数据处理。

  在推荐算法中:主要使用协作过滤,关联规则,统计信息等。在自然语言处理中,使用与分词,索引,主题词和舆论相关的算法,以及基于时间序列的预测。使用GBDT + LR的排序框架。

  在推荐服务中,我们经历了固定算法->动态参数->规则引擎的三个阶段。

  在原创的推荐系统中,我们直接将算法的结果作为推荐结果返回,形成了诸如观察,观察,购买和购买以及经常一起购买的算法;在实际业务中,我们发现仅推荐算法是不够的。如果算法结果很低怎么办?如果业务条件受到限制,该怎么办?逐渐添加动态参数以控制结果的返回;但这仍然不能很好地解决业务问题,例如同一页面上新老用户的使用方式不同。业务需求的算法不能推荐礼物,并且需要优先考虑同一类别或不同类别的策略考虑过的。业务需求逐渐催生了规则引擎的诞生。

  规则引擎

  我想在这里专注于规则引擎。我提到有多种算法和业务。规则引擎的出现可以真正解决业务问题:

  

  在实际使用中,我们将在推荐字段中使用类似于以下规则:

  

  百分之百的规则库中有100多个规则模块。这些模块以不同的组合(例如构建模块)组装在一起,可以满足业务需求,同时解决个性化问题。现在,我们还可以可视化此规则语言,业务人员可以像流程图一样拖放以完成规则的编写。

  百分比推荐系统的实用架构

  

  到目前为止,Baifenxin推荐引擎的核心架构图如下:

  

  推荐引擎主要由四个部分组成:场景,规则,算法和显示。场景引擎就像一个*敏*感*词*,可以检测用户所处的状态,是否闲逛或有购物目标以及他们的喜好;规则引擎就像总部一样,根据用户的状态制定相应的规则。算法引擎是后勤部队为系统提供各种不同的算法结果;演示引擎是先锋,以最能打动客户的形式在用户面前显示结果。

  个性化系统的体系结构

  介绍了推荐引擎的核心之后,让我们看一下整个个性化系统的体系结构。

  

  整个系统通过nginx前端集群在外部提供服务,并通过数据采集服务进入系统。分布式消息队列连接到后端实时处理和脱机处理框架。基础存储使用多种存储技术来支持不同的应用程序场景。整个系统以Zookeeper为配置客户管理的中心,并结合集群运行状态监控,以确保整个系统的稳定运行。

  

  整个实时推荐体系结构旨在实现分布式,高可用性,高性能,高通用性,并使用*敏*感*词*,实时和内存计算作为解决方案来构建快速响应的推荐体系结构。

  

  

  在实践过程中,Percent还经历了从SaaS到PaaS的开发过程。推荐引擎提供云数据服务,但实际上一切都是数据流!一切都是数据流!大数据时代来了。在大数据时代,推荐引擎只是大数据平台的一种应用。

  离线计算平台

  离线离线计算平台,即基于大数据的应用程序构建架构,是基于Hadoop的大数据技术生态:

  

  

  离线计算平台主要提供数据分析,离线特征工程和模型训练。在在线推荐服务中,百信实时计算平台发挥着更大的作用。

  实时计算平台

  

  

  在实时计算平台上,我们构建了一个实时计算应用程序:proxima计算框架

  

  以协作过滤为例,抽象出节点和关系,并通过节点之间的消息传递来实现算法计算。对proxima进行协作过滤的*敏*感*词*如下:

  

  实时计算的另一个应用是实时推荐效果监视:

  

  搜索平台

  以下介绍推荐的朋友:搜索平台

  

  Percent的搜索平台基于solr,其架构图如下:

  

  对于不同的客户域,我们使用分片技术,并使用不同的主从分区来实现负载均衡,并使用读写分离来解决索引更新和查询速度问题。

  

  

  搜索作为推荐算法的补充,在许多推荐方案中都起着重要作用。

  个性化系统行业应用案例

  

  这是体系结构介绍的结尾。接下来,让我们介绍一些行业中的百分比个性化系统的应用案例:

  

  

  

  

  问与答

  

  Q1:如何解决用户和物品的冷启动?

  雷音:用户冷启动可以使用基于项目的推荐或其他推荐方法;项目冷启动可以使用基于用户或其他推荐方法;或提取部分流量以进行探索并挖掘用户兴趣。

  Q2:GBDT + LR的重新安排的技术实施计划是什么?

  雷音:请参阅2014年Facebook相关论文。

  Q3:如何在个性化场景中选择人物?

  雷音:人们有很多场景,包括长期或短期偏好,人们的购物个性,如冲动/理性等。功能项目/享乐项目等项目也有很多场景。除此之外,还有上下文场景,网页场景等,我们最终必须根据特定条件做出全面的判断。

  Q4:如何实现基于GBDT的模糊穿越技术?

  雷音:主要是通过GBDT训练生成相对较大的连接图,然后使用聚类方法拆分较大的连接图。最终结果是可以将单个连接图用作ID。

  Q5:正如冷启动的引言中所述,Percent过去很可能在其他平台上拥有新用户的行为信息,因此可以将其视为现有用户吗?我在这里不明白。例如,Percent在新颖的平台上拥有用户的先前行为信息,但是您能了解用户在葡萄酒电子商务中的行为吗?

  雷音:小说和红酒不是很兼容,但在许多情况下,它们可以对应现有客户。同时,不同类型的客户还可以提取通用用户标签,例如性别,年龄,消费习惯以及基于标签的数据集成。并推荐。

  Q6:规则引擎与场景引擎和算法引擎如何分离?能给我举个例子吗。对于一般的场景引擎来说,生成某些结论作为算法模型的参数输入并不是很常见。一般原创功能输入?

  雷音:场景引擎确定当前的推荐策略,规则引擎描述执行推荐策略,算法引擎生成推荐候选结果,并且规则引擎结合每种算法的结果来满足推荐策略。场景引擎不用作算法模型的输入。

  Q7:规则引擎是业务方可以理解的规则吗?那么是场景+规则还是纯算法?规则和算法之间是什么关系?规则会调用算法吗?

  雷音:该场景是业务方可以理解的当前选择的推荐策略的基础。规则是描述执行的策略,这些规则称为组合算法结果。

  Q8:全内存数据库使用哪个数据库?数据量是多少?数据的结构是什么?什么数据备份机制?

  雷音:现在,我使用Codis和Percent的Codis C ++ Clinet(),它们可以解决动态扩展和高可用性的问题。当前大约有6T的存储容量。根据业务场景,数据使用不同的数据结构,例如k-v,列表,哈希图等。对于k-v,使用json和protobuf序列化方法。数据备份使用主从同步(最终一致性)。

  旧驱动程序简介

  百信互联业务部发展副主任雷音,毕业于北京科技大学,于2011年加入百信,参与个性化推荐系统的开发,经历了推荐系统的多个版本升级,推广和优化推荐系统在多个行业中的应用。他目前是Baifendian Internet Business Department的副开发总监,负责Baixin个性化系统的开发和维护。

  大数据谈判

  ID:BigdataTina2016

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线