龙空技术网

微信AI算法专家阙文晖:算法不是万能!从0到1构建推荐系统架构

新智元 506

前言:

今天兄弟们对“算法 系统”都比较关怀,姐妹们都想要知道一些“算法 系统”的相关资讯。那么小编同时在网络上收集了一些有关“算法 系统””的相关资讯,希望同学们能喜欢,朋友们快快来了解一下吧!

新智元导读】昨晚,新智元AI技术公开课第二期强势来袭,微信AI算法专家阙文晖手把手教大家从0到1快速搭建推荐算法系统架构,从推荐任务的核心目标及优化策略、推荐系统的三大基石等方面做直播分享和在线互动,公开课反响强烈,干货现在奉上!戳右边链接上 新智元We站公开课 了解更多!

推荐系统能够帮我们在海量的数据里高效地找到最想要的内容。通过长久以来的发展,推荐系统经历了从传统的好友和内容相关推荐,到现在流行的AI技术推荐,效果大大提升。

尤其是基于大规模用户行为数据的协同算法,能够做到千人千面的推荐效果。而随着计算能力的提升,大规模推荐系统引入实时在线学习后,个人推荐效果实现了更快速和细致的适配效果。

昨晚,新智元特邀腾讯微信人工智能高级研究员的阙文晖在新智元小程序开讲新一期新智元We站公开课,为大家介绍推荐系统架构从0到1。公开课反响热烈,网友热情高涨。

接下来,我们整理了本次公开课的技术干货并精选了几个网友提问和阙文晖老师的回答与大家分享。

伟大的推荐产品来自一骑绝尘的推荐算法?你需要知道推荐系统的三大基石

很多人以为一个成功的推荐算法是由于用了一个一骑绝尘的算法。实际上算法只是构成推荐系统基础之一。对于一个产品而言,需要更多的站在系统的角度来看问题,这也是科研论文、Demo与实际产品的最大gap所在。

从系统层面看,推荐任务是不断演化的。包括系统的数据量,单个用户从新用户到数据丰富的用户,单个内容行为数据的增加,以及系统内活动运营的迭代。最终,系统的各个部分和阶段构成了一个完整的推荐系统。

对于工业推荐系统,我们需要重点关注三个方面:数据,算法,服务。

数据方面,包含用户侧、内容侧、环境侧三个特征。最终推荐拟合的目标是在特定的环境下,给一个拥有各种稀奇古怪特征的用户,推荐最合适的内容。比如,我们做高铁会觉得网络不如在城市里稳定,在列车行进过程中会出现网速慢甚至断网的情况。而这个时候应该根据当时的场景,加大一些流量小加载速度快内容的推荐度,比如文本;而减少比如图片、视频等加载慢的内容推荐度。

推荐系统架构的设计源于对任务的理解。比如在少量的候选内容情况下,召回的意义就不大。总体来说,目前工业推荐系统典型架构包含在线服务、离线计算任务、运营系统,以及一套支撑所有任务的基础设施,如rpc框架、计算引擎、数据平台、存储引擎等。

召回与排序:你将能够更深地感知用户

像YouTube这种级别的推荐系统,如何从千万级别的视频中快速召回百单位级别的优质内容,是推荐系统的重要挑战。正因如此,实际系统中召回任务的复杂程度比后面精排任务高。

有两种召回是比较常用的:

用户属性召回。指的是当你被打上了某个标签,例如梅西,那么以后梅西的内容就会召回给你社交召回。基本思路是朋友背书,你的朋友觉得不错就推荐给你

相关性推荐是相似内容以文本、图片、视频等多模态呈现。探索召回可以解决算法收敛的局限性问题,快速收集到新内容的行为数据。而最重要的模型推荐,则是对用户行为数据的精细化建模。

在召回中,非常重要的一个技术是索引技术,延伸后是kv存储的一套技术,以解决大规模参数或者资源文件的分布式存储和管理痛点。

在召回阶段给出百单位级别的候选内容后,排序阶段需要对这几百个候选集进行更加细致的排序。排序阶段候选集少,排序耗时更加可控,可以使用更多内容侧、用户侧、环境侧的特征进行排序。在数据特征和数据量更加丰富的情况下,模型也可以尽可能地复杂,参数量也会更大,从而挖掘出特征之间更加复杂和丰富的非线性的联系。

排序模型中在线学习是目前广泛使用且效果很好的一个环节。在产品端通过快速回流用户行为数据的方式,在用户的下一阶段请求中即可反映出用户的当时喜好。

排序系统从建模用户的长期兴趣到短期兴趣再到瞬时兴趣,其捕捉用户变化的能力越来越强,对用户的感知也更为及时。排序阶段后,是混排或者重排模块,需要完成一系列规则策略,比如历史去重,内容多样性,多模态内容比例。

一个有意思的思考点是:图文、视频的混合比例,以及对一个篮球爱好者曝光篮球内容的比例,这个比例的值是一个需要动态确定的,这个比例参数也可以通过模型建模,强化学习是一种解决方式。

算法层出不穷,你需要数据思维指导业务推荐系统的迭代

大数据时代,各种算法层出不穷,各种规则策略讨论争论不休的情况下,如何指导具体业务的推荐系统的迭代改进?

非常重要的一点就是需要有数据思维!数据思维指的就是从数据角度出发去思考问题。一种策略或者算法好不好,最终要的就是明确业务指标后进行对照组实验。

接下来我们介绍谷歌提出的一种流量实验系统,其核心贡献是解决了流量有限和实验多的一个矛盾,通过流量正交的方式实现了流量的复用,而其实现中,很重要的一个技术点是不影响主流程的耗时,通过agent的方式获取配置。

推荐系统的其他组成部分:依据具体业务按需建设

第一部分是内容管理系统,重点完成两项工作:一是对内容体系的建设,比如标签添加、类目划分等;二是安全合规检查,比如涉黄涉爆的内容检查。在内容量大的情况下,需要人工智能审核和人工审核共同协作完成。

第二是运营系统,比如设置一些规则,置顶一些内容等。

第三是白板体验系统,这是产品效果把控的好帮手。在效果白板,我们能够体验各种用户在各种环境下对各种内容的一个推荐效果,能够细微地观察推荐过程中每一个环节的作用。

第四个是ELK日志系统,核心作用是完成日志的轨迹追踪和数据快速分析。第五是系统最基础的保障,那就是一套监控报警机制,以及配套的处理措施。当然推荐系统还包括其他一些小的组成部分,大家需要在工作中根据自己业务的需要逐步分阶段按需建设。

课后总结:为什么我们不能用一个算法打天下?

工业级的推荐系统架构,我们需要尝试从系统的角度去加深对具体业务推荐任务的理解。

问题一:为什么我们不能用一个算法打天下?

如果我们的单一推荐算法足够的好,那算法推荐给我们的内容会逐步逼近一个有限兴趣集合,我们没有机会接触到兴趣外的优质内容。

而通过多路召回的方式,系统内配合曝光的方式,我们可以给用户探索更多优质的内容,让用户发现新的兴趣点,提升用户的最终体验,让用户觉得这是一个可以不断发现新的自我的地方,这是系统思维解决推荐的一个很好的例子。

问题二:为什么我们要搞热门内容推荐,随机内容曝光?

因为系统是一个不断发展迭代的系统,单一算法再好其也无法解决系统初期或者新用户的冷启动问题。

问题三:为什么我们需要搞实时索引,数据回流和在线学习?

比如一些热点问题,比如美国伊朗事件,通过实时索引,我们能够快速将相关内容推入到推荐流。而数据回流在线学习,可以解决我们前面提到的一个有趣问题。比如你在车站刷内容看视频很流畅,但你上火车后信号不好,此时通过快速学习反馈能给你推荐更高比例的文本内容。

互动问答:微信里推荐算法最大的应用场景是哪3个?

Q1:想知道微信里面推荐算法最大的应用场景是哪3个?

阙老师:推荐作为AI一项重要应用领域,在微信的也有广泛的应用。通过推荐技术,为用户在内容发现、信息触达、丰富表达等方面提供帮助。比如看一看中通过推荐技术提高了我们发现优质感兴趣内容的效率,在朋友圈广告中我们获取到了可能贴合自身又充满社交趣味的推送信息,在视频动态中,我们通过推荐音乐丰富了用户表达情绪的方式和效率。

Q2:老师好,请教一下:

我留意到SVD/SVD++算法在比赛中备受青睐,且表现优秀,但是在商业应用中,似乎并没有广泛采用,请问其中有什么技术壁垒或者是有什么特殊原因吗?传统的用户画像技术通常难以学习数据中的高层次抽象特征,因此人们开始转向基于深层神经网络的用户表示模型。那么,关于如何设计一个可以利用不同来源不同结构不同模态的用户数据的深度融合模型,老师可以说说自己的的看法和思路吗?

阙老师:非常专业的liagn两个问题哈。一点分析是,SVD相比于LR可解释性差,相比于DNN算法其表示性和其他特征的配合融合能力有限。

Q3:微信机器人回复是如何实现的?

阙老师:机器人回复,属于对话系统的一种应用。对话系统中会有意图识别,和槽位分析,以及内容匹配等相关技术。

Q4: 最近刚从语言生成任务中告一段落,希望了解一下目前各个大厂主流的推荐系统思路,大概介绍一下即可,也好让大家对目前推荐系统的整体应用情况和发展趋势有个初步了解,谢谢!

阙老师:目前业界的推荐系统都处在快速迭代中,其核心还是围绕特征表达和特征交叉展开。

Q5:请问推荐系统是否结合了知识图谱?

阙老师:知识图谱对于推荐系统初期或者召回阶段是一个很重要的信息补充,比如通过"抖音"关键字我们能够关联上抖音热歌"芒种",通过标签"陈凯歌"能够关联上"霸王别姬"。

Q6:微信的推荐算法具体是什么业务呢?

阙老师:从典型架构入手,更多分享从系统角度理解推荐任务。

添加新智元小助手VX:Xzy_Xiaoxin,获取本次直播课高清完整版PPT!

标签: #算法 系统 #技术算法架构