对NLP以及推荐系统未来发展趋势的看法

我觉得Bert的出现比把深度学习引入NLP还要重要些,主要原因是Bert的两阶段模式效果远远超出预期。另外,它给NLP研发者趟通并指明了一条光明大道:就是通过自监督学习,把大量非监督的文本充分利用起来,并将其中的语言知识编码,对各种下游NLP任务产生巨大的积极作用。

而且我的个人判断是:Bert+Transformer有可能在未来几年替代掉NLP各个不同应用领域之前五花八门的具体技术,有可能成为一个NLP领域的大一统模型,这在NLP历史上也是没有出现过的情形。总而言之,Bert的重要性再强调也不为过。

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

工业化的推荐系统经过最近几年的发展,目前已经进化到了深度学习时代,代表性的模型有很多,比如Wide& Deep或者DeepFM模型。但是跟NLP或者图像领域相比,很明显深度学习在实用化的推荐系统应用场景还未能发挥符合人们期待的效果。并没有哪个深度学习推荐模型能够相对传统模型有非常大的性能提升,这里面原因可能比较复杂。从模型角度看,我比较看好将Transformer模型应用在推荐领域,大家知道,Transformer在NLP里面已经大放异彩,而且从机制上,它是比较适合用来做推荐或者CTR模型的。但是可能仍然需要针对推荐领域的特点做些改造,直接应用效果也没有太体现出来,但是总体而言,我个人比较看好这个模型。当然,从实用化的推荐引擎角度,还有很多值得关注的点,比如多模态融合/多目标、多任务与Transfer Learning以及AutoML的应用等,都是很有前景和值得探索的方向。刚才讲的是排序模型和推荐机制,至于推荐领域的另外一个重要环节:召回阶段,我觉得采用模型统一召回代替传统的多路召回是个比较明显的趋势。

在Resnet出现之前,图像领域最多只能做到20多层,NLP也只能做到超不过10层,Resnet和Transformer突破了这种情况,把深度做起来了,效果也跟着深度做起来了。其实深度和效果是有比较紧密的正相关作用的,所以我个人觉得,目前推荐模型,如何把深度做起来可能是比较核心的问题。如果深度做不起来(你会发现DNN版本的推荐系统目前还只能做到3到5层;在线inference时latency的限制是很重要的因素,效果可能也很难获得很大的提升。

之所以推荐模型感觉进步慢,还有一个隐藏的比较深的原因,那就是领域内缺乏超大规模的真实训练数据,尽管网上可以下到个别规模比较大的数据,但是公认的规模大、高质量的推荐数据还是严重缺乏的。

 

推荐系统里的召回和排序模型技术讲座

召回阶段要掌握一点:怎么快怎么来,但是也要兼顾用户兴趣。ranking阶段只有一点需要记住:模型要够准。

nlp技术发展历程图 nlp最新进展_深度学习

nlp技术发展历程图 nlp最新进展_nlp技术发展历程图_02

nlp技术发展历程图 nlp最新进展_深度学习_03

 

知识蒸馏

(Hinton的论文)

 

知乎好文

机器学习界有三个主要学派,符号主义(Symbolicism)、连接主义(Connectionism)、行为主义(Actionism)。

符号主义的起源,注重研究知识表达和逻辑推理。经过几十年的研究,目前这一学派的主要成果,一个是贝叶斯因果网络,另一个是知识图谱。贝叶斯因果网络的旗手是 Judea Pearl 教授,2011年的图灵奖获得者。但是据说 2017年 NIPS 学术会议上,老爷子演讲时,听众寥寥。2018年,老爷子出版了一本新书,“The Book of Why”,为因果网络辩护,同时批判深度学习缺乏严谨的逻辑推理过程。而知识图谱主要由搜索引擎公司,包括谷歌、微软、百度推动,目标是把搜索引擎,由关键词匹配,推进到语义匹配。

连接主义的起源是仿生学,用数学模型来模仿神经元。Marvin Minsky 教授因为对神经元研究的推动,获得了1969年图灵奖。把大量神经元拼装在一起,就形成了深度学习模型,深度学习的旗手是 Geoffrey Hinton 教授。深度学习模型最遭人诟病的缺陷,是不可解释

行为主义把控制论引入机器学习,最著名的成果是强化学习。强化学习的旗手是 Richard Sutton 教授。近年来Google DeepMind 研究员,把传统强化学习,与深度学习融合,实现了 AlphaGo,战胜当今世界所有人类围棋高手。

 

百度ERNIE

输入是字粒度,MASK是词粒度;

使得模型更多的从上下文来推断当前字,而不是根据另半个词来推断当前字;

只是把知识图谱的“实体”引入了BERT预训练阶段,和知识图谱扯上关系实在牵强。

 

深度学习遇见代码搜索,一篇论文概览神经代码搜索

进行代码搜索时,query 和候选代码段都被映射至共享向量空间。搜索即相当于最大化 query 嵌入和代码嵌入之间的向量相似度度量(如余弦相似性)。

向量表示可以通过无监督方式学得,即仅使用代码,也可以通过监督方式学得,即利用代码段及其对应自然语言描述对数据。

很多是用了fastText来编码自然句子和代码段;

 

最新NLP架构的直观解释:多任务学习– 百度ERNIE 2.0

提出“持续多任务学习”概念:

不是训练所有任务(图2),而是按顺序训练它们:

  1. 在任务1上进行训练
  2. 使用上一步中的参数,并在任务1、2上进行训练
  3. 使用上一步中的参数,并在任务1、2、3上进行训练,以此类推…

 

百度PaddlePaddle(飞桨)介绍

文字识别 OCR 技术早期是用规则+机器学习的方法来做,那时候,一个 OCR 技术系统可能会分为几部分,从区域检测、行分割、字分割、单字识别、语言模型解码、后处理等一步步做下来。加入深度学习技术后,我们开始使用大数据进行训练,而且阶段目标也很明确,我们找到一些深度学习的特征,这个时候一个 OCR 系统就简化到只需要检测、识别两个过程,典型的基于深度学习的 OCR 系统大概是这样。随着深度学习技术进一步发展,我们开始在 OCR 里面进行多任务的联合训练、端到端学习、特征复用/互补,这个时候,甚至这两个阶段也不用区分了,而是一体化地就把一个文字识别的任务给做了。

nlp技术发展历程图 nlp最新进展_深度学习_04