Press "Enter" to skip to content

闲鱼推荐,让智能计算从云走向端

 

背景

 

近些年,随着云计算和大数据的快速发展,以机器学习为基础的智能推荐也得到了迅猛发展。利用云计算,不但可以每日更新模型,双11更是小时级更新模型,以实现更准确的推荐。为了更好的优化推荐系统,丰富实时特征,通常会采集大量的行为数据上报到云端。随着闲鱼DAU(日活跃用户数量)的不断增长,这种云端中心化计算模式的问题也暴露了出来。

 

中心化模式不但要消耗大量的服务器资源,还要面对海量数据处理所带来的延迟问题( 分钟级延迟,不可原谅 )。

 

推荐系统的实时性

 

为什幺说,延迟问题对推荐系统是致命的,不可原谅的?推荐系统的实时性越高,更新速度越快,推荐越准。现在的用户越来越没有耐心,如果不快速抓住用户的心,用户很容易流失。

 

推荐系统的实时性是指:

 

“模型”的实时性;

 

“特征”的实时性

 

模型的实时性

 

“模型”的实时性: 不断更新模型,可以让模型找到最新的流行趋势,以及最新的相关性信息。

 

比如,大家都去关注某个明星,模型会通过大多数人的行为数据,发现该明星成为了流行趋势,以及大家所关注的内容。

 

暂时不对模型的实时性进行详细分析,现在的模型训练还强依赖云计算。当然,很多人也在尝试,端计算和云计算的联合训练。相信不久的将来,应该会有成果落地。

 

特征的实时性

 

“特征”的实时性: 以用户最近的行为数据作为输入特征,模型就会发现用户最近的行为习惯,并进行相关的预测和推荐。

 

比如,你浏览了一部手机,系统就会给你推送不同品牌、不同价位的手机;如果你连续浏览华为手机,系统就会给你推送不同价位的华为手机。你连续行为数据越丰富,推荐越准确。

 

PS:我们说的,中心化计算模式数据处理所带来的延迟问题,就是影响了特征的实时性。

 

推荐系统的实时特征

 

为什幺,特征更新只是存在分钟级延迟就不可原谅了?而模型只需要每日更新?

 

模型的实时性代表流行趋势,通常情况流行趋势不会实时变化,只需要满足活动的趋势变化就可以了。而特征的实时性代表个体用户的实时行为,如果无法对用户的实时行为做出响应,用户就可能流失。

 

特征的实时性很重要,其实并不是所有特征都有实时性要求,比如:性别、年龄等。对实时性有要求的特征,我们称之为实时特征。

 

闲鱼推荐实时特征包括:

 

浏览行为特征,如曝光、曝光时长、滚动速度等;

 

详情页行为特征,如进入详情页、询单、收藏、评论、点赞、点击大图等

 

购买行为特征,下单后不再进行相关推荐。

 

浏览行为特征

 

在推荐场景,连用户都不知道自己想要什幺的情况下。我们希望通过细化用户浏览行为特征,来判读他所关注的商品。

 

 

引入端计算后,我们可以采集更多维度的用户行为数据,使用户模型更准确。

 

PS:长时间以来,闲鱼推荐的浏览行为特征几乎是缺失的。算法一直在用伪曝光(下发即曝光)数据做推荐,因为云端根本没有足够多的服务器对曝光数据进行特征处理。曝光数据量实在是太大了,每个用户随意的一次滚动就会产生多条曝光数据。

 

实时聚类特征&实时意图特征

 

为了解决云端处理延迟问题,我们对实时特征进行了抽象,沉淀了两种端上的实时特征处理方案:

 

实时聚类特征

 

实时意图特征

 

实时聚类特征

 

 

我们利用端计算,对行为数据进行实时聚类统计。

我们现在是按60秒的时间插槽聚类统计(时间插槽太大效果不好,太小数据上报太频繁,QPS太高);
我们统计60秒内,某个类目(手机、女裙、美妆等)的曝光次数、曝光时长、点击PV等数据;

如果是强特征事件(点击事件)会实时触发特征上报,如果是弱特征事件(曝光事件)会累计到10个再上报。

 

 

实时意图特征

 

 

该方案,是利用端智能模型,对行为数据进行实时意图判读,并上报到云端。

 

PS:该方案,我们还没有全量,还在尝试。

 

总结

 

本文,利用端计算(边缘计算)将特征工程前置,实现了去中心化,解决了大量原始数据在云端堆积无法实时处理的问题,提高了推荐系统的特征实时性。

 

端计算的引入,不但提高了推荐系统的实时性,同时完善了用户行为数据,让之前很多不可能的事情变成了可能,大大提升了推荐效率。

 

实践证明,端云协同将成为未来的趋势。

 

延伸

 

现在,我们已经将特征数据实时上报到了云端,但是需要到下一次接口请求才会出现相关商品的推荐。这里存在响应的实时性问题。

最近,我们正在尝试对未曝光商品进行数据重刷(还在线上AB测试,效果挺好的,应该马上就会全量了)。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注