资讯信息流场景的学习排序实践探讨

0. 序言

达观数据是一家基于文本语义理解为企业提供文本抽取审核、推荐、搜索等服务的人工智能企业,其中在推荐场景上我们也服务了很多客户企业,客户在要求推荐服务稳定、需求响应及时的基础上,对系统的效果也提出了越来越高的期望,这对算法团队也是一个挑战。本文将从资讯信息流这个场景入手,先简单介绍达观推荐引擎的架构演化,同时尽可能详细的介绍学习排序这个核心技术的实践和落地经验。

1. 达观推荐引擎架构

达观推荐引擎采用在线-近线-离线三层系统架构,可以从性能和算法复杂度两个维度来进行区分。

在线:实时响应客户http api推荐请求,一般需要严格控制在100ms以内,最好在50ms。该模块需要严格保证稳定性,综合考虑各个依赖模块的异常兼容、流量的超时控制等。

近线:准实时捕捉用户实时行为并做出反馈,即近线模块的输出需要考虑用户的实时行为反馈。该模块一般处理延迟为秒级。

离线:基于分布式平台离线挖掘,输出包括item-base协同过滤结果、基于标签的召回结果、各维度热门结果、用户画像等等。该模块的处理延迟一般为小时级或者天级。

一个通用的资讯流推荐架构如下:

                                                                            图1:online-nearline-offline三层架构

hot rec模块负责生成各个维度的热门结果,如分类别热门、分地域热门;tag rec生成各个标签的召回结果,如 英超 -> (item1,item2,….);item rec生成每个资讯item的相关结果;user rec nearline根据用户实时行为和离线画像负责生成用户的推荐结果;rec online响应推荐请求;item cache返回资讯的信息;uhv receiver负责接收用户对item的行为反馈。关于架构可参考更过之前达观数据发布的推荐技术文章。

2. 为什么需要学习排序

学习排序(LTR:learning to rank)是信息检索领域的经典问题,也是互联网场景中ranking这个核心算法问题。推荐整个流程可以分为召回、排序、重排序这三个阶段,通俗来说,召回就是找到用户可能喜欢的几百条资讯,排序就是对这几百条资讯利用机器学习的方法预估用户对每条资讯的偏好程度,一般以点击率衡量,所以学习排序在很多情况下等同于点击率预估,都是将用户最可能点击的资讯优先推给用户;重排序更多考虑业务逻辑,如在推荐结果的多样性、时效性、新颖性等方面进行控制。

在没有学习排序之前,也可以单纯使用协同过滤算法来进行推荐。列如使用用户最近点击的资讯信息召回这些item的相关结果和偏好类别热门结果组合后进行返回。但是这对于资讯类推荐需要考虑一下问题:资讯类信息流属于用户消费型场景,item时效性

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值