基于实时深度学习的推荐系统架构设计和技术演进

简介: 整理自 5 月 29 日 阿里云开发者大会,秦江杰和刘童璇的分享,内容包括实时推荐系统的原理以及什么是实时推荐系统、整体系统的架构及如何在阿里云上面实现,以及关于深度学习的细节介绍

本文整理自 5 月 29 日阿里云开发者大会,大数据与 AI 一体化平台分论坛,秦江杰和刘童璇带来的《基于实时深度学习的推荐系统架构设计和技术演进》。分享内容如下:

  1. 实时推荐系统的原理以及什么是实时推荐系统
  2. 整体系统的架构及如何在阿里云上面实现
  3. 关于深度学习的细节介绍。

一、实时推荐系统的原理

在介绍实时推荐系统的原理之前,先来看一个传统、经典的静态推荐系统。

用户的行为日志会出现在消息队列里,然后被ETL到特征生成和模型训练中。这部分的数据是离线的,离线的模型更新和特征更新会被推到在线系统里面,比如特征库和在线推理的服务中,然后去服务在线的搜索推广应用。这个推荐系统本身是一个服务,前端展示的服务推广应用可能有搜索推荐、广告推荐等。那么这个静态系统到底是怎么工作的?我们来看下面的例子。

1. 静态推荐系统

基于实时深度学习的推荐系统架构设计和技术演进_第1张图片

截取现在用户的行为日志,倒入离线系统中去做特征生成和模型训练,这段日志表示用户 1 和用户 2 同时浏览了 page#200 这个页面和其他一些页面,其中用户 1 浏览了 page#100 并且点击了 ads#2002。那么这个日志会被 ETL 到离线,然后送去做特征生成和模型训练。生成的特征和模型里面会看到,用户 1 和用户 2 都是中国男性用户,“中国男性”是这两个用户的一个特征,这个学习模型最终结果是:中国男性用户浏览了 page#100 的时候,需要给他推 ads#2002。这里面的逻辑就是把相似用户的行为归到一起,说明这类用户应该有同样的行为。

用户特征推进特征库建立的模型,在推送至在线服务里的时候如果有一个用户 4 出现,在线推理的服务就会到特征库里面去查这个用户的特征,查到的特征可能是这个用户正好是中国的男性用户,模型之前学到了中国男性用户访问 page#100 时候要推 ads#2002,所以会根据学习模型给用户 4 推荐了 ads#2002。以上就是静态推荐系统的基本工作流程。

但是这个系统也有一些问题,比如第一天的模型训练完成后,发现用户 4 第二天的行为其实跟用户 3 更像,不是和用户 1、用户 2 类似 。但是之前模型训练的结果是中国男性用户访问 page#100 时候要推 ads#2002,并且会默认进行这种推荐。只有经过第二次模型计算后才能发现用户 4 和用户 3 比较像,这时再进行新的推荐,是有延迟的。这是因为模型和特征都是静态的。

对于静态推荐系统来讲,特征和模型都是静态生成的。比如以分类模型为例,根据用户的相似度进行分类,然后假设同类用户都有相似的行为兴趣和特征,一旦用户被化成了某一类,那么他就一直在这个类别中,直到模型被重新训练。

2. 静态推荐系统问题

  • 第一,用户行为其实是非常多元化的,没有办法用一个静态的事情去描述这个用户的行为。
  • 第二,某一类用户的行为可能比较相似,但是行为本身发生了变化。例如中国男性用户访问page#100时候要推ads#2002,这是昨天的行为规律;但是到了第二天的时候发现不是所有的中国男性用户看到page#100时候都会点击ads#2002。

3. 解决方案

3.1 加入实时特征工程后能够灵活推荐

在推荐系统中加入实时特征工程,把消息队列里面的消息读一份出来,然后去做近线的特征生成。举个例子,中国男性用户最近访问 page#100 的时候点击最多的 10 个广告,这件事情是实时去追踪的。就是说中国男性用户最近 10 分钟或者半个小时之内访问 page#100 的时候点的最多 10 个广告,个事情不是从昨天的历史数据里面得到的信息,而是今天的用户实时行为的数据,这就是实时特征。

基于实时深度学习的推荐系统架构设计和技术演进_第2张图片

有了这个实时特征以后,就能解决刚才那个随大流的问题。同样的,如果这里的特征是对某一个用户最近 3 分钟或者 5 分钟的行为采集的,就能够更加准确的追踪到这个用户当时当刻的意图,并且给这个用户去做更准确的推荐。

所以说,在推荐系统中加入实时特征后能精准推荐。比如刚才的例子,如果用户 4 在这个情况下访问 page#100,新的学习内容为:中国男性用户最近访问 page#100 的时候,点的最多的是 ads#2001。那我们会直接推荐 ads#2001,而不是按照昨天的信息给他推 ads#2002。

3.2 实时特征推荐体系的局限性

之前的用户 1 和用户 2 的行为是非常相似的,加了实时特征就能知道它当前的意图。但是,如果用户 1 和用户 2 在做相同的特征时,他们的行为产生了不一致;也就是说在模型里面被认为是同一类的用户,他们的行为产

你可能感兴趣的:(云栖号技术分享,架构,阿里巴巴)