本文作者:闫勖勉,阿里云智能计算平台事业部高级解决方案工程师
一、智能推荐(AIRec)简介
AIRec背景介绍
智能推荐(简称AIRec)基于阿里巴巴集团领先的大数据和人工智能技术,结合阿里巴巴在电商、内容、新闻、视频直播和社交等多个行业领域的积累,为全球企业及开发者提供云推荐服务。AIRec能够有效解决用户偏好和物品之间的曝光选择问题。AIRec产品与淘宝、天猫推荐的底层是同根共源的,是淘宝、天猫推荐技术的首次对外输出。目前对于电商而言,获客等成本非常高,AIRec也希望能够解决以上这些问题,帮助用户去深度运营好每一个流量,将每一个流量的价值都充分地挖掘出来。因此AIRec在促活、留存、收入等整个流量生命周期中都可以提现它的价值。
AIRec产品架构
阿里云智能推荐AIRec产品的实现方式整体上大致分为三层。其中最底层是数据接入层,对于这一层而言,一般需要客户提供两种数据,初始化离线数据和在线数据。初始化离线数据将用于整个推荐实例的启动,而在线数据则用于当服务启动之后在后续实时收集用户的行为,以及更新和回传。在数据接入层之上是推荐模型层,这里主要分为三部分,第一部分是特征工程,主要是对于用户的特征、商品的特征进行一定的挖掘;第二部分是召回模块;第三部分是排序模块。在推荐模型之上是业务逻辑层,各个应用厂家或者应用的场景不同,业务逻辑也会比较复杂,推荐系统往往无法覆盖所有的业务场景,所以AIRec覆盖了一些比较具有通用性的业务逻辑以及打散策略和混排策略等。在此基础之上,业务方也可以根据AIRec推荐的结果来进行第二次封装来满足业务上更为复杂的需求。
二、核心功能介绍
AIRec核心功能-接入使用
整个AIRec接入使用主要分为四个部分:数据准备、服务开通、生效测试和增量对接。在数据准备方面,目前AIRec只能通过阿里云大数据计算服务MaxCompute上传初始数据,MaxCompute是一个能够处理PB级别的数据仓库解决方案。AIRec初始时需要三张表,分别为User表、Item表和Behavior表,User表存储了用户的基本信息、用户ID以及是否给这个用户进行推荐以及一些用户特征维度的信息。针对于表中的这些字段,客户可以根据自己的数据埋点以及数据收集情况酌情地进行上传,并且表中的字段也是分为必填、选填和推荐等类别。当然,这些数据如果填写的越饱满,对于后期的效果调优而言,就会越有优势。同样的,Item表存储了物品信息,Behavior表则存储了用户与物品之间的关联信息,数据中的点击和展示是必须要上传的,其次内容型的点赞等行为也推荐客户上传。在数据准备完成之后就可以开通AIRec服务了,开通完成之后可以进行对于行业、场景以及数据源的选择。选择完成之后,就可以在数据生效的页面检查数据生效的质量,同时在数据生效之后进行数据的测试。当测试完成之后就可以确认AIRec实例已经正常地运行起来了,在此基础之上可以对接服务端的SDK或者API实现增量数据的回传。
AIRec核心功能-行业
阿里云智能推荐AIRec现在向外输出的行业主要包括四种,即电商行业、新闻行业、内容行业以及视频行业。之所以对于行业进行了划分,这是因为目标行业的特点不同会导致用户的关注点不同,这也就导致了运营人员所关注的指标也各不同,因此这些因素最终也会影响推荐系统对于模型的选用。举例而言,对比一下电商型和内容型行业,前者比较关注点击率、GMV成交值以及购买率等业务指标,而后者除了常见的关注点击率之外,还会更加关注人均点击量、用户停留时间以及浏览深度等业务指标。
AIRec核心功能-场景
这里的场景可以理解为推荐所在的位置。根据推荐所在的位置不同,推荐系统使用模型和手段也会有所不同。比如在淘宝的首页推荐上“猜你喜欢”这部分属于一个比较综合的推荐位置,因此需要综合一些基于用户浏览历史行为的召回,也需要符合用户的兴趣,还需要在照顾热点的同时增加一些对于新品的关注度,因此这部分属于一个比较综合的推荐。而商品详情页的“相关推荐”位置则不同,其更加看重物品与物品之间的关联关系,这个关联可能是商品存在相似关系,也有可能商品之间存在类似于“啤酒和尿布”的关系。“热门推荐”就是热度排行榜了,其背后有着比较成熟的热度算法。而位于页面顶部Banner推荐位的“焦点图推荐”则是对于重要活动或者产品的推荐。
AIRec核心功能-召回模型
如下图的左侧的推荐模型所示,其最下面的输入可以认为是全量的Item列表,通过召回可能筛选出了一批和用户相关的Item,经过规则过滤将其放入排序层,之后根据用户行为、用户特征以及商品特征进行排序并计算分数,并将最终算分的结果放入到业务逻辑层进行封装,并Push给终端用户,使得终端用户能够看到Push的结果。下图中右侧是召回系统的简单的实现方式示意图,对于召回而言,想要判断结果是否与用户的兴趣相关,就可以通过不同的链路实现不同兴趣的召回,比如Item 2 Item、热度、新品、语义相似、User 2 X 2 Item等。
召回模型I2I
在I2I这个召回模型中,将用户的行为分为了长期行为和短期行为,进而分别训练出一些表格,这些表可能是Item_ID=A的一些商品可能有一些关联的Item_ID,并且这些Item_ID也会有对应的分值,而一些商品的权重可能会影响最终的分值。当这个表计算完成之后,后续如果有一个User过来,请求就会带来一个User_ID,根据这个User_ID就能获一个Trigger,进而获取一个Item_ID的列表将其推荐给排序模型,并且这个排序模型还能够接受其他的召回链路的推荐。
AIRec核心功能-排序模型
如下图所示的是排序模型的简单原理。AIRec会将用户特征、行为数据以及商品特征全部都进行离线计算,生成针对用户场景的排序模型。举例而言,当一个男生过来,他会带有一些用户特征和行为特征,根据这些内容就可以在模型表上找到对应的分值,将特征所代表的分值进行相加并进行整体倒排,之后就会得到一个排序完成的Item表格,最后将这些东西作为排序层的输出给到上面的业务逻辑层。
AIRec核心功能-打散混排
业务逻辑层中有两个能够控制的点,就是混排和打散。混排可以配置一些比例,而打散则可以配置一些层级和窗口等。
这里简单介绍一下混排和打散的具体功能:
混排功能:一方面是为了让喜好多种物品类型(item_type)的客户平衡其分发,另一方面是为了让用户在浏览过程中保持物品类型上丰富的多样性,提升用户的惊喜度。AIRec的混排功能目前支持image、article、video、short video、item、recipe等6种类型,后面将会增加更多的延展。
打散功能:是为了保障在推荐的物品流里相同类目的物品不重复出现,防止用户疲劳,保持新鲜度。使用AIRec时可按物品类目(物品表category_level字段)来打散,可根据用户具体业务的物品层级来设置打散。配置打散时选择相应的物品类目,再填写配合该类目层级的窗口期x,即x个物品推荐流里最多出现一次该类目的物品。
这里举个例子,如下图所示,我们对于体育文章、文娱文章以及经济文章可以设置窗口为3,也就是使得每3篇文章里面只能出现1次同类型的文章,这样就实现了通过类目进行打散。而混排就是设置文章大约占总量的50%,短视频和商品大约各占据25%。通过以上的混排和打散就能够满足推荐的诉求。
AIRec核心功能-数据仪表盘
阿里云智能推荐AIRec可以通过数据仪表盘实现对于数据的跟踪,包括做分桶测试等。此外,在AIRec上还可以实现基于阿里巴巴的推荐和基于自建的推荐的对比,并查看数据走向。目前,AIRec支持的数据指标包括PV_CTR、UV_CTR、PV/UV、Click/UV、活跃的用户数以及活跃的商品数等。
三、案例及场景
应用案例——内容论坛
这个案例来自深度垂直行业的UGC论坛,其主要接入了AIRec的两部分场景——首页的“猜你喜欢”和详情页面的“相关推荐”。客户使用AIRec解决两个主要痛点,一是提高首页“猜你喜欢”的用户点击率,二是期望解决论坛内文章的标题党问题。针对于这两个问题,AIRec帮助他们做了两步的优化,首先是解决标题党的问题,增加了浏览时长、点赞、收藏等重点行为特征来解决问题,也就是将标题党的文章进行降权,使得其排序结果较低,甚至使得其召回不出来。第二步就是调整了时间衰减,对于热度文章进行了及安全管理,调整了排序模型使得业务可干预推荐效果。最终达到的效果就是该论坛在其原有系统的基础之上使得用户点击率提升了50%。
应用案例——使用架构
前面所提到的论坛客户同时接入了阿里云的搜索和推荐两款产品,从而可以形成比较好的化学反应。推荐产品可以承接首页的流量,使得首页整体流量的转化率得以提升。此外,在搜索方面还接入了OpenSearch产品,能够满足用户高质量精准搜索的需求,能够提高有具体浏览目标用户的转化率。通过这两个服务整体地从流量承接以及精准搜索解决了用户的需求。下图中展示了用户使用的架构,会将主流场景下的行为包括数据都传递到RDS上,并放到MaxCompute DataWorks上进行全量导入,后续还会通过API和服务端SDK进行实时数据反馈。数据经过AIRec和OpenSearch两个产品就可以和客户的服务端进行交互,客户的服务端则会进行业务封装并给到最终的用户。
应用案例——电商
这里再介绍一个电商类客户的应用案例。该案例来自一个国内垂直类电商客户,阿里云AIRec为其打造的推荐产品不仅用于其APP上,还会用于微信小程序等方面。针对于这样的情况,阿里云AIRec也为其实现了两部分场景,一部分是“猜你喜欢”,另外一个是“相关推荐”,并最终提升了两个场景点击率。之前他们的场景中存在问题就是SKU比较少,用户量级相对而言也不是非常大,因此从整体来看在这样的场景下AIRec能够帮助客户达到点击率的提升,效果还是不错的。总体经过了一个月左右的调优,使得点击率提升了1倍左右。
应用案例——内容平台
第三个案例是内容平台,这个内容平台的特点就是推荐内容比较杂,其利用AIRec的混排和打散功能比较多,因为其主要是一个内容分享平台,同时还带有电商属性。他们原有首页推荐为运营人员人工编辑,有专门团队每日定时内容更新。后来使用阿里云智能推荐进行首页的内容推荐,经过一段时间的调优使得点击率相较原有系统提升超过一倍。