张俊林:推荐系统的下一步

article/2025/9/20 6:58:07
640?wx_fmt=jpeg作者 | Clara Deng采访嘉宾 | 张俊林编辑 | Natalie AI 前线导读:NLP 是人工智能中最难的问题之一,对它的研究与落地充满了挑战性。预训练模型 BERT  的出现给自然语言处理领域带来了里程碑式的改变。我们采访了新浪微博机器学习团队 AI Lab 负责人张俊林老师,他推测,BERT + Transformer 有可能在未来几年替代掉 NLP 各个不同应用领域之前五花八门的具体技术,或可成为 NLP 领域的大一统模型。另外,他也是此次 QCon 上海 2019 “人工智能应用与实践”专题的出品人,对这个专题感兴趣的同学敬请关注。

更多优质内容请关注微信公众号“AI 前线”(ID:ai-front)  InfoQ:首先请您做一下简单的自我介绍,包括您的工作经历和学习经历。

张俊林: 我目前在微博工作,担任微博机器学习团队 AI Lab 的负责人,主要是推动业界先进技术在微博的信息流推荐业务落地。之前在阿里担任资深技术专家并负责新技术团队,也在百度凤巢做过。博士毕业于中科院软件所,主要的专业兴趣集中在自然语言处理及推荐搜索等方向上,喜欢新技术并乐于做些技术分享,之前写过两本书《这就是搜索引擎:核心技术详解》以及《大数据日知录:架构与算法》,这两本书的读者评价还可以。

 InfoQ:老师现在主要研究的领域是自然语言处理(NLP)和推荐系统,能介绍一下 NLP 技术吗?它有哪些落地场景?

张俊林:NLP 是个非常大的技术方向,包含很多子领域,比如文本分类、文本摘要、机器翻译、阅读理解、对话机器人….. 等等,很多子方向。不过不同子领域面临的核心目标是一致的:就是如何让机器真正理解自然语言文本。这个目标难度还是很高的,不说是 AI 的终极目标估计也差不太远。当然,目前的技术水准,距离这个目标明显也差得很远。

至于落地场景,其实有许多,只是它作为技术支撑,比较靠后,不太容易被察觉出来。典型的例子比如搜索、推荐、信息流等相对成熟的应用领域,也有最近比较热的应用领域,比如对话机器人、智能客服、阅读理解等很多应用领域。一般大公司都有专门的 NLP 团队,这说明了 NLP 的应用普遍性,只是普通用户有时候很难直观体会到它的存在。

 InfoQ:似乎目前 NLP 领域很少出现“独角兽”企业,也有人说,自然语言处理是个大坑,那么您认为 NLP 落地有哪些难点?

张俊林:NLP 各种任务更偏向后台技术平台的形式,是一种能力输出,往往不会是一种业务形态,它一般是支撑某些业务形态的支撑技术。总体而言,跟用户能够直接感知到的产品形态比较,整体靠后一些,一般终端用户很难感知到它的存在。能够在产品形态方面直接感知到 NLP 技术的业务领域其实很少,比如对话机器人,智能客服等这些算是比较靠前的业务形态,大多数都偏靠后一些。NLP 是个技术领域,和产品形态本来也没必然的关系。所以,我觉得本来就不应该出现 NLP 领域的“独角兽”企业这种说法,如果说是某个独角兽企业,大量应用了 NLP 技术,可能会更准确一些。当然,这种独角兽企业确实也很少,因为独角兽企业本来就很少,摊上用 NLP 技术的更少,所以也正常。

要说落地难点的话,其实本质上就一个:就是技术不够成熟,不足以支撑好的应用体验。当然,这个分具体的子领域,有些领域,比如文本分类聚类、NER 命名实体识别等一些简单任务,其实落地效果已经不错了,也被普遍应用。而对于很多高难度的应用领域,其它问题都是表面问题,本质问题其实是技术不够成熟。

上面说的这个问题有长期性,不是短期内能够解决的。如果说 NLP 落地短期难点的话,比如 Transformer 和 BERT 这种效果很好的新技术,可能因为模型比较重,高效的分布式大规模训练系统以及快速的在线服务,可能是影响大规模应用目前的短期障碍,但是我相信很快会有大公司开源出一些好用的系统的,所以其实问题也不大。

 InfoQ:发展到现在,自然语言处理领域出现了很多令人激动的新想法与新工具,比如号称最强 NLP 预训练模型的 BERT,它的出现对 NLP 领域有哪些重大影响?

张俊林:BERT 的出现不仅仅是自然语言处理领域的里程碑,即使放到人工智能这个大的领域,也是非常重要的里程碑性的工作。对我而言,我觉得 BERT 的出现比把深度学习引入 NLP 还要重要些,主要原因是 BERT 的两阶段模式效果远远超出预期。另外,它给 NLP 研发者趟通并指明了一条光明大道:就是通过自监督学习,把大量非监督的文本充分利用起来,并将其中的语言知识编码,对各种下游 NLP 任务产生巨大的积极作用。这是非常了不起的贡献,在 BERT 之前,其实很多工作希望能够达到这个目的,但是应该说路并没有被趟通,而 BERT 证明了这条路是能走通的。

而且我的个人判断是:BERT+Transformer 有可能在未来几年替代掉 NLP 各个不同应用领域之前五花八门的具体技术,有可能成为一个 NLP 领域的大一统模型,这在 NLP 历史上也是没有出现过的情形。总而言之,BERT 的重要性再强调也不为过。当然,我这个人一向在技术路线上比较激进,所以上述观点纯属个人判断。

 InfoQ:中英文语言有相当大的差异,那么 BERT 在处理中文语言时,会不会比处理英文语言更难?他们有哪些异同?

张俊林: 我不认为 NLP 的技术在处理英文和中文的时候有什么本质的区别,也包括 BERT 在内。大家一般的传统意识会认为中文更难一些,因为中文是表意文字,而且中文还需要分词等等。我觉得这个不是什么重要区别,如果我们具备一个强大的特征抽取器,那么理论上语义作为特征,能够被编码到参数里,所以是中文是英文无所谓。至于中文分词,我觉得并不是必须存在的,如果特征抽取器足够强,中文 NLP 任务也应该以字作为输入,至于哪些连续的字应该作为一个单词是合理的,这应该作为内部特征,由特征抽取器来自动做,人并不需要看到这些单词。目前很多 NLP 任务,都是先分词,再往后走,以前是这样,但是目前技术发展足够成熟了,现在,包括以后,我不觉得这是必须具备的步骤。

总体而言,我觉得之所以之前大家普遍认为中文比较难,是因为技术发展不够成熟,没有一个强大的特征抽取器导致的。所以需要很多人工的工作,或者需要把 NLP 划分为多个阶段,把一个难题分而治之,但是也会带来相应的问题,比如错误累计和放大等问题等。随着技术的发展,我觉得这些都不是必要的,不同语言不是问题,所有任务都应该 End to End 的被解决,包括分词等,我感觉也不是必须单独存在的。

 InfoQ:许多推荐系统产品都离不开 NLP,NLP 在新浪微博有哪些业务形态?做推荐系统需要对 NLP 有很深的研究吗?

张俊林:NLP 在微博主要是作为推荐业务的后台支持方向存在的,也有比较多的适用场景,比如要深入理解用户的兴趣,需要能够理解用户发的或者互动过的微博内容,而对微博内容的理解,以及用户兴趣的建模等,都离不开先进的 NLP 技术积累。目前,我们也大规模地应用了 BERT 等模型,并取得了较好的业务效果。

对于推荐系统算法工程师来说,对 NLP 的了解不需要特别深入,但是也应该具备相关知识和经验。一方面来说,文本内容往往是很多推荐场景的重要特征,而想要把这块做好,选择先进的 NLP 技术对于知识储备还是有要求的;另外一方面,文本特征可能只是很多类型特征中的一种,而且推荐的知识体系和 NLP 还是区别较大(当然,以后也许会被统一到 Transformer 也不一定,不过目前还是区别较大),所以貌似也不需要对于 NLP 有特别深入的了解,也能把推荐这个事情做好。

 InfoQ:新浪微博的信息推荐系统有哪些技术栈?

张俊林: 因为微博的推荐场景是个典型的信息流业务,所以包含了很多环节。从偏后台的物料质量评估、用户兴趣建模、微博内容理解、图片视频理解以及多模态融合,到业务前台的推荐系统的召回、粗排以及精排等推荐环节,以及离线及在线的大规模机器学习模型训练及服务等。算是一个标准的信息流推荐系统。

 InfoQ:为打造更精准的推荐系统,新浪微博做了哪些工作?有计划引入一些新的技术吗?或者说,有在关注哪些新技术?

张俊林: 近两年来,在推荐系统的召回和排序两个环节,微博机器学习团队都进行了大规模的技术升级,并获得了明显的业务效果。召回层面,我们目前已经实现了大规模 FM 统一召回模型,正在逐步替代传统的多路召回模型,并在各项指标取得了非常明显的业务效果;排序层面,我们经过了 LR、大规模 FM、FM+FTRL 在线模型等不断的模型升级,每次大的模型升级都取得了收益,目前也小流量了以 DeepFM 为基础的深度学习排序模型。在物料比如微博的理解方面,目前也在尝试多模态的技术路线,并取得了一定进展。

在业务团队将新技术不断升级落地的同时,微博 AI Lab 也不断尝试些推荐领域重要方向的新技术,并推动这些新技术在业务落地。比如我们在 18 年提出的双线性 FFM 模型,在获得和 FFM 模型相近效果的情况下,参数规模减少了几十倍,也提出了几个新的深度学习排序模型,比如 FibiNet 以及 FAT-FFM 模型,这些工作陆续发表在 Recsys2019 以及 ICDM2019 等国际会议上。

我个人比较关注统一召回模型技术以及新型的 CTR 模型上。感觉这两块在业界来说,还有很大的优化空间,是值得深入探索的方向。

 InfoQ:2019 年已经过半,您认为在未来,推荐系统和 NLP 领域还有哪些方向值得研究?

张俊林: 工业化的推荐系统经过最近几年的发展,目前已经进化到了深度学习时代,代表性的模型有很多,比如 Wide& Deep 或者 DeepFM 模型。但是跟 NLP 或者图像领域相比,很明显深度学习在实用化的推荐系统应用场景还未能发挥符合人们期待的效果。并没有哪个深度学习推荐模型能够相对传统模型有非常大的性能提升,这里面原因可能比较复杂。

从模型角度看,我比较看好将 Transformer 模型应用在推荐领域,大家知道,Transformer 在 NLP 里面已经大放异彩,而且从机制上,它是比较适合用来做推荐或者 CTR 模型的。但是可能仍然需要针对推荐领域的特点做些改造,直接应用效果也没有太体现出来,但是总体而言,我个人比较看好这个模型。当然,从实用化的推荐引擎角度,还有很多值得关注的点,比如多模态融合/多目标、多任务与 Transfer Learning 以及 AutoML 的应用等,都是很有前景和值得探索的方向。刚才讲的是排序模型和推荐机制,至于推荐领域的另外一个重要环节:召回阶段,我觉得采用模型统一召回代替传统的多路召回是个比较明显的趋势。

至于 NLP 领域,自从 BERT 的出现,应该说 NLP 各个应用领域进入了一个新时代。Bert 在相当多的 NLP 应用领域使用后,取得了目前最佳的效果,而且不少领域有大幅度的性能提升。这预示着大量无监督数据开始被 NLP 真正使用起来,这个如果能用好威力无穷。而且目前看,BERT+Transformer 有统一 NLP 各个子领域的能力和趋势,这也是非常好的一个进展。当然,因为 BERT 和 Transformer 的出现时间还比较短,所以大家其实对这两者理解还不够深入,对其中真正发挥作用的因子还没有整理清楚,所以深刻理解两者的作用机理,以及针对性的对两者进行改进,是非常值得深入探索的方向。比如如何将 BERT 应用在文本生成领域,如何融合多模态的信息等很多方向都具备很大的挑战。

 InfoQ:您觉得深度学习在推荐系统的应用方面存在哪些问题?

张俊林: 就像上面说的,尽管推荐领域目前也进入了深度学习时代,但是明显技术前进的步伐缓慢,应该说深度学习在推荐领域还没有发挥出特别大的作用。一方面,并没有哪个 DNN 推荐模型相对传统模型有幅度巨大的效果提升,包括从模型深度来说,图像领域比如 ResNet 已经做到了几百层,NLP 领域的 Transformer 也能够做到了 40 到 70 层,而你会发现 DNN 版本的推荐系统目前还只能做到 3 到 5 层,深度做不起来。

说深度貌似没说到点上,其实不然。我们回顾一下,在 ResNet 出现之前,图像领域最多只能做到 20 多层,NLP 也只能做到超不过 10 层,ResNet 和 Transformer 突破了这种情况,把深度做起来了,效果也跟着深度做起来了。其实深度和效果是有比较紧密的正相关作用的,所以我个人觉得,目前推荐模型,如何把深度做起来可能是比较核心的问题。如果深度做不起来,效果可能也很难获得很大的提升,背后的原理,因为是我个人的猜测,所以就不细说了,避免造成误导。

其实,之所以推荐模型感觉进步慢,还有一个隐藏的比较深的原因,那就是领域内缺乏超大规模的真实训练数据,尽管网上可以下到个别规模比较大的数据,但是公认的规模大、高质量的推荐数据还是严重缺乏的。这其实是比较拖技术发展后腿的一个缺陷。如果一个新技术是在小规模数据上验证的,并没有任何保证能够在大规模数据集合上这种技术优势仍然会存在;而很多新技术的论文使用的数据规模比较大,但是都是私有数据,其他人无法复现或者在现有技术上改进。这严重制约了技术发展步伐。如果能够有几个高质量、大规模的推荐数据,那么大家就可以在这些数据上不断尝试新技术,明显技术迭代速度会快很多。一个很好的参照就是 NLP 的阅读理解领域,从早期的小规模阅读理解数据,到大规模但是难度不太高的 Squad 1.1,再到更难的 Squad 2.0,每次数据集规模的扩大及难度的提高,都带来很多新的有效模型的提出。两者道理其实是类似的,而推荐领域这块明显落后太多。

 InfoQ:在即将于 10 月份举办的 QCon 上海 2019 中,您将担任“人工智能应用与实践”专题的出品人,可否讲讲您的策划思路?

张俊林: 因为我参加过多次 InfoQ 举办的会议,也担任过多次人工智能专题的出品人,在这方面多少还是有些经验。总体而言,我觉得应该重视以下几点:首先,专题里的讲座应该具备技术前沿性和先进性,同时具备落地的实用性,这一直是我作为专题出品人对专题内讲座的一个基本期待;其次,在话题方面,考虑人工智能领域覆盖的全面性,我们会邀请各个大的互联网公司技术专家,在搜索推荐、自然语言处理、图像与视频以及人工智能工程架构等多个方面进行经验分享;再次,我一般对分享嘉宾以及分享内容有些比较高的期待,嘉宾希望是有经验的,包括专业实践经验以及比较丰富的演讲经验,分享内容则希望干货尽可能多一点。所以,我会按照上述几个原则去策划这个专题,尽可能给大家一个能够充分交流和学习的机会。

采访嘉宾:

张俊林,中国中文信息学会理事,中科院软件所博士。目前担任新浪微博机器学习团队 AI Lab 负责人。在此之前,张俊林曾经在阿里巴巴任资深技术专家并负责新技术团队,以及在百度和用友担任技术经理及技术总监等职务。他是技术书籍《这就是搜索引擎:核心技术详解》(该书荣获全国第十二届优秀图书奖)、《大数据日知录:架构与算法》的作者。他本科毕业于天津大学管理学院,之后在中科院软件所直接攻读博士学位,研究方向是信息检索理论与自然语言处理,就学期间曾在 ACL2006、COLING2004、IJCNLP2004 等国际顶级会议发表多篇学术论文。另外,他在此期间领导设计的搜索系统曾在美国国防部 DARPA 主持的 TREC 高精度检索系统评测中取得综合排名第一名的优异成绩。近年来,陆续在 Recsys2019 以及 ICDM2019 等国际会议发表多篇深度学习推荐系统相关论文。



http://chatgpt.dhexx.cn/article/O3QSWgoo.shtml

相关文章

一文看懂推荐系统:Gate网络(一):新浪微博GateNet,GateNet就是想用attention的方法去搞,和SENet一样,都是张俊林的杰作

一文看懂推荐系统:Gate网络(一):新浪微博GateNet,GateNet就是想用attention的方法去搞,和SENet一样,都是张俊林的杰作 提示:最近系统性地学习推荐系统的课程。我们以小红书的场景为例…

张俊林:对比学习在微博内容表示的应用

分享嘉宾:张俊林博士 新浪微博 编辑整理:李桂荣 中南财经政法大学 出品平台:DataFunTalk 导读:深度学习的成功往往依赖于海量数据的支持,根据训练数据标记与否,可以分为有监督学习和无监督学习/自监督学习。…

一文看懂推荐系统:排序16:Dual Augmented Two-tower Model和张俊林的SENet,都是为了加入特征交叉想,增强重要特征,去掉噪声,类似于attention的骚操作

一文看懂推荐系统:排序16:Dual Augmented Two-tower Model和张俊林的SENet,都是为了加入特征交叉想,增强重要特征,去掉噪声,类似于attention的骚操作 提示:最近系统性地学习推荐系统的课程。我们…

张俊林:BERT和Transformer到底学到了什么 | AI ProCon 2019

演讲嘉宾 | 张俊林(新浪微博机器学习团队AI Lab负责人) 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) 【导读】BERT提出的这一年,也是NLP领域迅速发展的一年。学界不断提出新的预训练模型,刷…

张俊林:GPT-4 模型会开创哪些新的研究方向?

作者|张俊林知乎 整理|蘑菇先生学习记 分享一篇张俊林老师关于GPT-4模型会开创哪些新的研究方向的回答。 引言 在这个历史性的时刻,回答个问题,留下自己作为历史见证人的足迹。先遵循这个问题的主旨,写两句GPT-4开创了…

新浪张俊林:大语言模型的涌现能力——现象与解释

内容来源:ChatGPT 及大模型专题研讨会 分享嘉宾:新浪新技术研发负责人、中国中文信息学会理事 张俊林 分享主题:《大型语言模型的涌现能力:现象与解释》 转载自:https://zhuanlan.zhihu.com/p/621438653 注1&#xf…

张俊林:对比学习研究进展精要

作者 | 张俊林 编辑 | 夕小瑶的卖萌屋 对比学习(Contrastive Learning)最近一年比较火,各路大神比如Hinton、Yann LeCun、Kaiming He及一流研究机构比如Facebook、Google、DeepMind,都投入其中并快速提出各种改进模型:Moco系列、SimCLR系列、…

张俊林:推荐系统排序环节特征 Embedding 建模

每天给你送来NLP技术干货! 分享嘉宾:张俊林博士 新浪微博 编辑整理:刘一全 出品平台:DataFunTalk 导读:随着深度学习在推荐系统应用的发展,特征 Embedding 建模的重要性已经成为共识,同时海量特…

张俊林:从对比学习视角,重新审视推荐系统的召回粗排模型

分享嘉宾:张俊林博士 新浪微博 编辑整理:王岩 开课吧 出品平台:DataFunTalk 导读:今天分享的主题是从对比学习的视角,即从一个不同的角度来看看推荐系统里面的召回和粗排模型。对比学习从去年年中开始比较火&#xff0…

单链表的插入和删除

前言 在上一篇文章(单链表的定义)中我们已经了解了单链表的含义和简单的实现。那么在这篇文章中,我们将要来讲解单链表的插入和删除操作。 按位序插入(带头结点) 我们在上篇文章中已经讲解过,如果想要在…

单链表的定义和表示

一、单链表的存储结构,如下图所示: 定义单链表L的代码段: typedef struct Lnode{ //声明结点的类型和指向结点的指针类型 ElemType data; //结点的数据域 struct Lnode *next; //结点的指针域}Lnode, *Li…

【数据结构】- 链表之单链表(中)

文章目录 前言一、单链表(中)1.1 头删1.2尾删1.2.1第一种方法:1.2.2第二种方法:1.2.3多因素考虑 二、完整版代码2.1 SList.h2.2 SList.c2.3 Test.c 总结 前言 千万不要放弃 最好的东西 总是压轴出场 本章是关于数据结构中的链表之单链表(中) 提示&#…

带头结点的单链表表示和实现

带头结点的单链表表示和实现 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。 链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) 指针(指示后继元素存储位置),元素就是存…

C++单链表

链表是一种常见的数据结构。它主要是利用动态内存分配、结合结构体并配合指针来实现的,能根据需要开辟和释放内存单元。由于链表是用一组任意的存储单元来存储线性表中的数据,存储单元不一定是连续的,且链表的长度不是固定的,因此…

单链表的建立

一、顺序建立链表(尾插法) 1、首先建立一个只需头结点的空链表,此时头指针、尾指针均指向头结点 head(struct node*)malloc(sizeof(struct node));head->nextNULL; 2、在头结点后插入第一个节点 p(struct node*)malloc(sizeof(struct n…

【数据结构】单链表(带图详解)

文章目录 一、单链表的定义及其结构1.1.概念1.2.单链表的结构1.3.单链表的特点 二、单链表的实现2.1.定义结点2.2.创建单链表2.3.打印单链表2.4. 单链表尾插与尾删2.4. 单链表头插与头删2.4.查找某个结点2.5.插入2.6.删除\ 总代码 一、单链表的定义及其结构 1.1.概念 概念&am…

单链表的常用算法

目录 一、判断链表是否为空 二、单链表的销毁:链表销毁后不存在 三、清空单链表:链表仍存在,但链表中无元素,成为空链表(头指针和头结点仍然在) 四、求单链表的表长 五、单链表的取值 六、单链表的按值查找 七、单链表的插…

线性表的链式存储:单链表的相关介绍(插入、删除、查找等)头节点和头指针的区别

一、链式存储 用一组地址任意的存储单元(地址可以连续也可以不连续),依次存储线性表中的各数据元素。 链式存储结构中的每个存储单元称为“结点”,结点包含一个数据域和一个指针域。 数据元素之间的逻辑关系通过结点中的指针表示 …

单链表的简单讲解

注意:本人也是小白,如果出现错误希望各位读者能够包容 文章目录 前言一、单链表的结构定义二、单链表的基本操作1.单链表的初始化2.单链表的创建1.头插法头插法图片讲解 2.尾插法尾插法图片讲解 3.头插法和尾插法的对比 3.单链表的输出4.单链表的插入图片…