低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

深度学习在文本领域的应用

2020 年 2 月 27 日

深度学习在文本领域的应用

背景

近几年以深度学习技术为核心的人工智能得到广泛的关注,无论是学术界还是工业界,它们都把深度学习作为研究应用的焦点。而深度学习技术突飞猛进的发展离不开海量数据的积累、计算能力的提升和算法模型的改进。本文主要介绍深度学习技术在文本领域的应用,文本领域大致可分为 4 个维度:词、句子、篇章、系统级应用。


  • 词。分词方面,从最经典的前后向匹配到条件随机场(Conditional Random Field,CRF)序列标注,到现在 Bi-LSTM+CRF 模型,已经不需要设计特征,从字粒度就能做到最好的序列标注效果,并且可以推广到文本中序列标注问题上,比如词性标注和专门识别等。

  • 句子。Parser 方面,除词粒度介绍的深度学习序列标注外,还可以使用深度学习模型改善 Shift-Reduce 中间分类判断效果;句子生成方面,可以通过序列到序列(Seq2Seq)模型训练自动的句子生成器,可用于闲聊或者句子改写等场景。

  • 篇章。情感分析方面,可以使用卷积神经网络对输入文本直接建模预测情感标签;阅读理解方面,可以设计具有记忆功能的循环神经网络来做阅读理解,这个也是近年非常热的研究问题。

  • 系统级应用。信息检索方面,把深度学习技术用在文本匹配做相似度计算,可以通过 BOW、卷积神经网络或循环神经网络表示再学习匹配关系(如 DSSM 系列),还有使用 DNN 做排序模型(如 Google 的 Wide & Deep 等,后面会重点介绍);机器翻译方面,源于 Seq2Seq 模型到 Stack-LSTM + Attention 等多层 LSTM 网络,使得基于词的统计机器翻译模型已经被基于神经网络的翻译模型超越,并且已经应用到产品中,比如谷歌翻译、百度翻译、有道翻译等;智能交互方面,在做闲聊、对话、问答等系统时深度学习在分类、状态管理(如深度强化学习)、回复生成等环节都有很好的应用。


总之,上面这些文本领域的深度学习应用只是冰山一角,深度学习应用还有知识图谱、自动摘要、语音、图像文本生成等。总体趋势是,各文本研究和应用的方向都在尝试深度学习技术,并分别取得了进展。在文本领域,如果想跟图像、语音那样取得突破性进展还面临重重困难,如不同任务的大规模标注数据缺乏,如何建模能捕捉语言的逻辑性以及所蕴含的地域、文化特色等等。限于篇幅,本文只对美团在文本中应用较多的文本匹配、排序模型进行介绍。


基于深度学习的文本匹配

文本匹配在很多领域都有用到,尤其是信息检索相关场景,比如搜索的 Query 和 Doc、广告中 Query-Ad、搜索 Suggestion 中 Query 前缀和 Query(见图 1)、关键词推荐中 Query 和 Query、文档去重时 Doc 和 Doc 等。



图 1 美团 Query-POI 和 Query Suggestion 的文本匹配场景


文本匹配主要研究计算两段文本的相似度问题。相似度问题包含两层:一是两段文本如何表示可使得计算机方便处理,这需要研究不同的表示方法效果的区别:二是如何定义相似度来作为优化目标,如语义匹配相似度、点击关系相似度、用户行为相似度等,这和业务场景关系很紧密。


在解决这两个问题过程中会遇到很多难题,其中一个难题就是设计模型如何充分考虑语义。因为中文的多义词、同义词非常普遍,它们在不同的语境中表达的含义是不一样的。比如苹果多少钱一台?苹果多少钱一斤?对于前者,根据“一台”能看出它是指苹果品牌的电子设备,后者则是指水果。当然,还有很多语言现象更加困难,比如语气、语境、口语的不同表述等。


文本的表示和匹配是本节的主线,如何做到语义层面匹配就成为本节的主旨。


受到整体技术的演进影响,文本的匹配技术同样有一个顺应时代的技术历程,如图 2 所示。



图 2 语义表示匹配模型演进历程


1. 向量空间

1970 年左右提出的向量空间模型,就是把文档表示词表维度的向量通过 TF-IDF 计算出词的权重,比如一种标准词表包含词 ID、词和 IDF,另一种是停用词表,如图 3 所示。



图 3 向量空间模型示例


对文本“丽江的酒店价格”分词去除停用词后,得到丽江、酒店、价格,词出现次数是 1,查表 IDF 得到这句文本的表示:[0, 1.5, 2.1, 0, 0, …, 0, 4.1]。其中权重使用的是 TF×IDF,TF 是 Term 在文本里的频次,IDF 是逆文档频次,两者定义有很多形式,如图 4 所示。这里使用第二种定义。



图 4 TF 和 IDF 的常用定义


向量空间模型用高维稀疏向量来表示文档,简单明了。对应维度使用 TF-IDF 计算,从信息论角度包含了词和文档的点互信息熵,以及文档的信息编码长度。文档有了向量表示,那么如何计算相似度?度量的公式有 Jaccard、Cosine、Euclidean distance、BM25 等,其中 BM25 是衡量文档匹配相似度非常经典的方法,公式如下:



向量空间模型虽然不能包含同义词、多义词的信息,且维度随着词典增大变得很大,但因为它简单明了,效果不错,目前仍然是各检索系统必备的特征。


2. 矩阵分解

向量空间模型的高维度对语义信息刻画不好,文档集合会表示成高维稀疏大矩阵。1990 年左右,有人研究通过矩阵分解的方法,把高维稀疏矩阵分解成两个狭长小矩阵,而这两个低维矩阵包含了语义信息,这个过程即潜在语义分析。


假设有 N 篇文档,共有 V 个词,用 TF-IDF 的向量空间表示一个 N×V 的稀疏矩阵 X,词和文档的语义分析就在这个共现矩阵上操作。这个共现矩阵通过奇异值分解, 能变成三个矩阵,狭长矩阵 U 的维度是 N×K,V 的维度是 K×V,中间是对角阵 K×K 维,如图 5 所示。


经过分解后,每个文档由 K 维向量表示,(K<<V),代表了潜在语义信息,可以看成是文档需要表达的语义空间表示。V 矩阵代表词在潜空间上的分布都是通过共现矩阵分解得到的。


潜在语义分析能对文档或者词做低维度语义表示,在做匹配时其性能较高(比如文档有效词数大于 K),它包含语义信息,对于语义相同的一些文档较准确。但是,潜在语义分析对多义词语义的建模不好,并且 K 维语义向量完全基于数学分解得到,物理含义不明确。因此,在 2000 年左右,为解决上述问题,主题模型出现了。



图 5 潜在语义分析对词文档共现矩阵的分解示意


3. 主题模型

2000~2015 年,以概率图模型为基础的主题模型掀起了一股热潮,那么究竟这种模型有什么吸引大家的优势呢?


pLSA(Probabilistic Latent Semantic Analysis)


pLSA 在潜在语义分析之上引入了主题概念。它是一种语义含义,对文档的主题建模不再是矩阵分解,而是概率分布(比如多项式分布),这样就能解决多义词的分布问题,并且主题是有明确含义的。但这种分析的基础仍然是文档和词的共现频率,分析的目标是建立词/文档与这些潜在主题的关系,而这种潜在主题进而成为语义关联的一种桥梁。这种转变过渡可如图 6 所示。



图 6 从词文档共现到引入潜在主题的概率模型


假设每篇文章都由若干主题构成,每个主题的概率是 p(z|d),在给定主题的条件下,每个词都以一定的概率 p(w|z)产生。这样,文档和词的共现可以用一种产生式的方式来描述:



其概率图模型如图 7 所示:



图 7 pLSA 概率模型


可以通过 EM 算法把 p(z|d)和 p(w|z)作为参数来学习,具体算法参考 Thomas Hofmann 的 pLSA 论文。需要学习的 p(z|d)参数数目是主题数和文档数乘的关系,p(w|z)是词表数乘主题数的关系,参数空间很大,容易过拟合。因而我们引入多项式分布的共轭分布来做贝叶斯建模,即 LDA 使用的方法。


LDA(Latent Dirichlet Allocation)


如果说 pLSA 是频度学派代表,那 LDA 就是贝叶斯学派代表。LDA 通过引入 Dirichlet 分布作为多项式共轭先验,在数学上完整解释了一个文档生成过程,其概率图模型如图 8 所示。



图 8 LDA 概率图模型


和 pLSA 概率图模型不太一样,LDA 概率图模型引入了两个随机变量α和β,它们就是控制参数分布的分布,即文档-主题符合多项式分布。这个多项式分布的产生受 Dirichlet 先验分布控制,可以使用变分期望最大化(Variational EM)和吉布斯采样(Gibbs Sampling)来推导参数,这里不展开叙述。


总体来讲,主题模型引入了“Topic”这个有物理含义的概念,并且模型通过共现信息能学到同义、多义、语义相关等信息。得到的主题概率分布作为表示,变得更加合理有意义。有了文档的表示,在匹配时,我们不仅可以使用之前的度量方式,还可以引入 KL 等度量分布的公式,这在文本匹配领域应用很多。当然,主题模型会存在一些问题,比如对短文本推断效果不好、训练参数多速度慢、引入随机过程建模避免主题数目人工设定不合理问题等。随着研究进一步发展,这些问题基本都有较好解决,比如针对训练速度慢的问题,从 LDA 到 SparseLDA、AliasLDA, 再到 LightLDA、WarpLDA 等,采样速度从 O(K)降低 O(1)到。


4. 深度学习

2013 年,Tomas Mikolov 发表了 Word2Vec 相关的论文,提出的两个模型 CBOW(Continuous Bag of Words,连续词袋)和 Skip-Gram 能极快地训练出词嵌入,并且能对词向量加减运算,这得到了广泛关注。在这项工作之前,神经网络模型经历了很长的演进历程。这里先介绍 2003 年 Yoshua Bengio 使用神经网络做语言模型的工作,Word2Vec 也是众多改进之一。


神经网络语言模型


在 2003 年,Yoshua Bengio 使用神经网络来训练语言模型比 N-Gram 的效果好很多,网络结构如图 9 所示。输入是 N-Gram 的词,预测下一个词。前 n 个词通过词向量矩阵 Matrix C(维度:n*emb_size)查出该词的稠密向量 C(w(t-1)),C(w(t-2));再分别连接到隐含层(Hidden Layer)做非线性变换;再和输出层连接做 Softmax 预测下一个词的概率;训练时根据最外层误差反向传播以调节网络权重。可以看出,该模型的训练复杂度为 O(n×emb_size + n×emb_size×hidden_size + hidden_size×output_size),其中 n 为 5~10,emb_size 为 64~1024,hidden_size 为 64~1023,output_size 是词表大小,比如为 10^7。因为 Softmax 在概率归一化时,需要所有词的值,所以复杂度主要体现在最后一层。从此以后,提出了很多优化算法,比如 Hierarchical Softmax、噪声对比估计(Noise Contrastive Estimation)等。



图 9 神经网络语言模型结构图


Word2Vec


Word2Vec 的网络结构有 CBOW 和 Skip-Gram 两种,如图 10 所示。相比 NNLM,Word2Vec 减少了隐含层,只有投影层。输出层是树状的 Softmax,对每个词做哈夫曼编码,预测词时只需要对路径上的 0、1 编码做预测,从而复杂度从 O(V)降低到 O(log(V))。


以 CBOW 为例,算法流程如下:


(1) 上下文词(窗口大小是 Win)的词向量对应维相加映射到投影层。


(2) 投影层经 Sigmoid 变换后预测当前词的编码路径(哈夫曼树)。


(3) 使用交叉熵损失函数(Cross Entropy Loss)反向传播,更新 Embedding 层参数和中间层参数。


(4) 训练使用反向传播机制,优化方法使用 SGD。



图 10 Word2Vec 模型示意图


从该算法流程可以看出,最外层的预测复杂度大幅降低,隐含层也去掉,这使得计算速度极大提高。该算法可得到词的 Dense 的 Word Embedding,这是一个非常好的表示,可以用来计算文本的匹配度。但由于该模型的学习目标是预测词发生概率,即语言模型,所以从海量语料中学习到的是词的通用语义信息,无法直接应用于定制业务的匹配场景。能否根据业务场景对语义表示和匹配同时建模,以提升匹配效果呢?DSSM 系列工作就充分考虑了表示和匹配。


DSSM 系列


这类方法可以把表示和学习融合起来建模,比较有代表性的是微软的相关工作。下面将介绍 DSSM 系列内容。


(1) DSSM 模型框架


DSSM 网络结构如图 11 所示:



图 11 DSSM 网络结构图


使用搜索的点击数据训练语义模型,输入查询 Query(Q)和展现点击的 Doc(D)列表,先对 Q 和 D 做语义表示,再通过 Q-DK 的 Cosine 计算相似度,通过 Softmax 来区分点击与否。其中,语义表示先使用词散列对词表做降维(比如英文字母的 Ngram),经过几层全连接和非线性变化后得到 128 维的 Q 和 D 的表示。从实验结论可知,NDCG 指标提升还是很明显的,如图 12 所示。



图 12 DSSM 和其他模型在 Bing 搜索数据上效果对比


(2) CLSM


在 DSSM 基础上,CLSM 增加了 1 维卷积和池化操作来获取句子全局信息,如图 13 所示。通过引入卷积操作,可以充分考虑窗口内上下文的影响,从而保证词在不同语境下的个性化语义。



图 13 CLSM 网络结构图


对应效果如图 14 所示:



图 14 CLSM 和其他模型在 Bing 搜索数据上效果对比


(3) LSTM-DSSM


LSTM-DSSM 使用 LSTM 作为 Q 和 D 的表示,其他框架和 DSSM 一致,其网络结构图如图 15 所示。由于 LSTM 具备语义记忆功能且蕴含了语序信息,因此更适合作为句子的表示。当然也可以使用双向 LSTM 以及注意力模型(Attention Model)。



图 15 LSTM-DSSM 网络结构图


美团的深度学习文本匹配算法

文本的语义匹配作为自然语言处理经典的问题,可以用在搜索、推荐、广告等检索系统的召回、排序中,还可以用在文本的去重、归一、聚类、抽取等场景。语义匹配的常用技术和最新进展前文已经介绍了。


在美团这样典型的 O2O 应用场景下,结果的呈现除了和用户表达的语言层语义强相关之外,还和用户意图、用户状态强相关。用户意图即用户是来干什么的?比如用户在百度上搜索“关内关外”,其意图可能是想知道关内和关外代表的地理区域范围,“关内”和“关外”被作为两个词进行检索。而在美团上搜索“关内关外”,用户想找的可能是“关内关外”这家饭店,“关内关外”被作为一个词来对待。再说用户状态,一个在北京的用户和一个在武汉的用户,在百度或淘宝上搜索任何一个词条,他们得到的结果不会差太多。但是在美团这样与地理位置强相关的应用下就会完全不一样。比如在武汉搜“黄鹤楼”,用户找的可能是景点门票,而在北京搜索“黄鹤楼”,用户找的很可能是一家饭店。


如何结合语言层信息和用户意图、用户状态来做语义匹配呢?


在短文本外引入部分 O2O 业务场景相关特征,将其融入到设计的深度学习语义匹配框架中,通过点击/下单数据来指引语义匹配模型的优化方向,最终把训练出的点击相关性模型应用到搜索相关业务中。


针对美团场景设计的点击相似度框架 ClickNet,是比较轻量级的模型,兼顾了效果和性能两方面,能很好推广到线上应用,如图 16 所示。



图 16 ClickNet 模型


  • 表示层。Query 和商家名分别用语义和业务特征表示,其中语义特征是核心,通过 DNN/CNN/RNN/LSTM/GRU 方法得到短文本的整体向量表示。另外会引入业务相关特征,比如用户或商家的相关信息、用户和商家距离、商家评价等。

  • 学习层。通过多层全连接和非线性变化后,预测匹配得分,根据得分和标签来调整网络,以学习出 Query 和商家名的点击匹配关系。


如果 ClickNet 算法框架上要训练效果很好的语义模型,还需要根据场景做模型调优。首先,我们从训练语料做很多优化,比如考虑样本不均衡、样本重要度等问题。其次,在模型参数调优时考虑不同的优化算法、网络大小层次、超参数的调整等问题。


经过模型训练优化,该语义匹配模型已经在美团平台搜索、广告、酒店、旅游等召回和排序系统中上线,使访购率/收入/点击率等指标有很好的提升。


总结一下,深度学习应用在语义匹配上,需要针对业务场景设计合适的算法框架。此外,深度学习算法虽然减少了特征工程工作,但模型调优的难度会增加。因此可以将框架设计、业务语料处理、模型参数调优三方面综合起来考虑,实现一个效果和性能兼优的模型。


基于深度学习的排序模型

排序模型简介

在搜索、广告、推荐、问答等系统中,由于需要在召回的大量候选集合中选择出有限的几个用于展示,因此排序是很重要的一环。如何设计这个排序规则使得最终业务效果更好呢?这就需要复杂的排序模型。比如美团搜索系统中的排序会考虑用户历史行为、本次查询 Query、商家信息等多维度信息,抽取设计出各种特征,通过海量数据的训练得到排序模型。这里只简要回顾排序模型类型和演进,重点介绍深度学习用在排序模型中的情况。


排序模型主要分类三类:Pointwise、Pairwise、Listwise,如图 17 所示。Pointwise 对单样本做分类或者回归,即预测 的得分作为排序准则,比较有代表性的模型有逻辑回归、XGBoost。Pairwise 会考虑两两样本之间偏序关系,转化成单分类问题,比如 比 高,那这个 Pair 预测正,反之则负,典型的模型有 RankSVM、LambdaMART。第三类就是 Listwise 模型,排序整体作为优化目标,通过预测分布和真实排序分布的差距来优化模型,典型的模型如 ListNet。



图 17 排序模型分类


深度学习排序模型的演进

在排序模型的发展中,神经网络很早就被用来做排序模型,比如 2005 年微软研究院提出的 RankNet 使用神经网络做 Pairwise 学习;2012 年谷歌介绍了用深度学习做 CTR 的方法;与此同时,百度开始在凤巢中用深度学习做 CTR,于 2013 年上线。随着深度学习的普及,各大公司和研究机构都在尝试把深度学习应用在排序中,比如谷歌的 Wide & Deep、YouTube 的 DNN 推荐模型等,前面介绍的 DSSM 也可用来排序。下面将对 RankNet、Wide & Deep、YouTube 的排序模型作简单介绍。


RankNet


RankNet 是 Pairwise 的模型,同样转化为 Pointwise 来处理。比如一次查询里,Di和 Dj有偏序关系,前者比后者更相关,那把两者的特征作为神经网络的输入,经过一层非线性变化后,接入 Loss 来学习目标。如果 Di比 Dj更相关,那么预测的概率为下式,其中 Si和 Sj是对应 Doc 的得分。



在计算得分时使用神经网络,如图 18 所示,每样本的输入特征作为第一层,经过非线性变换后得到打分,计算得到 Pair 的得分后进行反向传播更新参数,这里可以使用 Mini-Batch。由于 RankNet 需要预测的概率公式具有传递性,即 Di和 Dj的偏序概率可以由 Di和 Dk以及 Dk和 Dj得到,因此 RankNet 把计算复杂度从 O(n²)变成了 O(n),具体介绍可参考文献。



图 18 RankNet 示意图


当然,后续研究发现,RankNet 以减少错误 Pair 为优化目标,对 NDCG 等指标(关心相关文档所在位置)衡量的效果不是太好,于是后面出现了改进模型,如 LambdaRank。RankNet 是典型的神经网络排序模型,但当时工业界用得多的还是简单的线性模型,如逻辑回归,线性模型通过大量的人工设计特征来提高效果,模型解释性好性能也高。当人工设计特征到一定程度就遇到了瓶颈,而深度学习能通过原始的特征学习出复杂的关系,很大程度减轻了特征工程的工作。并且 GPU、FPGA 等高性能辅助处理器变得普及,从而促进了深度神经网络做排序模型的广泛研究。


Wide&Deep


谷歌发表过一篇论文“Wide & Deep Learning”,其观点可以用在推荐里,比如谷歌的 Apps 推荐利用此观点取得很好的效果,并把模型发布在 TensorFlow 中。Wide & Deep 整体模型结构分为 Wide 和 Deep 两部分,这两部分在最外层合并一起来学习模型,如图 19 所示。输入都是稀疏特征,但特征分为两种:一种适合做 Deep 的深度网络变化,适合时效性或者记忆性的特征,比如统计特征或者展示位置等;另一种可以直接连在最外层,适合有推广力但需要深度组合抽样的特征,比如品类、类型等。在模型优化时两部分做联合优化,Wide 部分使用 FTRL,而 Deep 使用 Adagrad 算法。这样,Wide 和 Deep 对不同类型特征区分开来,充分发挥各自作用,解释性比较好。


这种思路其实可以做些扩展。比如 Wide 连接不是在最外层,而是在某一层,Deep 的某些层也可以连接到最外层,这样能充分利用不同层抽象的 Dense 信息。与 Wide & Deep 的网络连接方式类似,如 2003 年 NNLM 和 2010 年 RNNLM 模型里的直接连接(Direct Connection),其浅层和深层的结合能很好地加速收敛,深度学习的 Highway 方式也是类似的。目前 Wide & Deep 应用较多,比如在阿里巴巴就有比较好的应用。



图 19 谷歌的 Wide&Deep 模型结构


YouTube DNN 排序模型


YouTube 用来预测用户观看视频时长,转化为加权的逻辑回归问题。DNN 排序模型和前面的工作类似,其网络结构是标准的前馈神经网络,如图 20 所示。DNN 排序模型的特点还是在输入特征上。虽然深度学习模型对特征工程要求很低,但很多数据需要经过简单处理后才可加入模型。图 20 中的特征分为很多域,比如语言方面、视频方面、用户历史看过的视频 ID,还有之前观看时长的统计量和归一化的值。离散值经过 Embedding 的处理后变成连续向量,再级联起来经过多层非线性变化后来预测最终的标签。



图 20 YouTube 的 DNN 排序模型结构


从上面介绍的深度学习相关排序模型可以看出,排序模型所需要的数据类型多种多样,数据的含义也各有不同,不同于图像、语音领域单一的输入形式。因此在做排序模型中,输入特征的选取和表示方式是很重要的,比如连续特征、离散特征处理、用户历史、文档特征的区分等。在美团场景中,设计排序模型需考虑业务特点,对输入特征的表示做很多尝试。


美团的深度学习排序模型尝试

在语义匹配模型中介绍了 ClickNet 框架,其实该框架同时也可用于排序,与语义匹配的区别主要在表示层,如图 21 所示。如果 ClickNet 用作搜索的 CTR 模型,那表示层的 Query 和 Title 的语义特征只是一部分,还有用户查询、用户行为、商家信息以及交叉组合特征都可以作为业务特征,并按特征的类型分不同的域。进一步讲,如果场景不包含语义匹配,模型的输入可以只有业务特征。下面简单讲解在美团用 ClickNet 做排序模型的尝试。



图 21 ClickNet 模型框架


ClickNet-v1


ClickNet 设计的初衷是它作为文本的匹配模型,并作为一维语义特征加入到业务的 Rank 模型中以提升效果。但根据上线之后的数据分析,我们发现以语义特征表示为主、辅以部分业务特征的 ClickNet 在排序系统中有更好的表现。我们针对排序模型做了如下改进。


  • (1) 业务特征选取。从业务方 Rank 已有的人工特征中,选取 O2O 有代表性的且没经过高级处理过的特征,比如用户位置、商家位置、用户历史信息、商家评价星级、业务的季节性等。

  • (2) 特征离散化。选取的业务特征做离散化处理,比如按特征区间离散化等。

  • (3) 样本处理。针对业务需要对正负例采样,对点击、下单、付费做不同的加权操作。

  • (4) 信息的融合。通过引入 Gate 来控制语义特征和各业务特征的融合,而不仅是求和或者级联,通过样本学习出 Gate 的参数。


针对业务 Rank 的目标优化 ClickNet 后,效果有很大改善,但模型还是偏重于语义特征。能否直接使用 ClickNet 做排序模型呢?答案是可以的。只需要加重业务特征、弱化或者去除语义表示特征就可以,这样修改后的模型就是 ClickNet-v2。


ClickNet-v2


ClickNet-v2 以业务特征为主,替换业务 Rank 模型为目标,使用业务特征作为 ClickNet 的表示层输入,通过对各特征离散化后传入模型。和 ClickNet-v1 不一样的是,ClickNet-v2 业务特征种类繁多,需要做深度的分析和模型设计。


比如如何考虑位置偏好问题?因为展示位置会有前后顺序,后面的展示不容易被用户看到,从而天然点击率会偏低。一种解决思路是可以把位置信息直接连接到最外层,不做特征组合处理。


再比如各业务特征通过多层非线性变化后,特征组合是否充分?一种解决思路是使用多项式非线性变换,这能很好组合多层的特征。


又比如模型组合的效果是否更好?一种解决思路是尝试 FM 和 ClickNet 的级联,或者各模型的 Bagging。


此外还有模型的解释性等很多和业务场景相关的情况需要考虑。


ClickNet 是基于自研的深度学习框架 Ginger 实现的,收敛速度和效果都非常理想。我们来看看分类任务上的一些测试,如图 22 所示。在 Higgs 数据上,基于 Ginger 的 ClickNet 比基于 XGBoost 的 AUC 提升 34 个千分点,使用 TensorFlow 实现的 ClickNet 比基于 Ginger 的 AUC 差 3 个千分点,且其速度慢于 Ginger。如图 23 所示,ClickNet 相比线性模型,其准确率都有较好的提升。



图 22 XGBoost 和 ClickNet 在 Higgs 分类效果对比



图 23 ClickNet 和线性模型在分类任务对比


总结

因为深度学习的拟合能力强、对特征工程要求低,它在文本领域已经有很多应用。本章以语义匹配和排序模型为例,分别介绍了业界进展和美团场景的应用。


第一部分介绍了语义匹配经历的向量空间、潜在语义分析、主题模型、深度学习几个阶段,重点介绍了深度学习应用在语义匹配上的 Embedding 和 DSSM 系列模型,以及美团尝试的 ClickNet 模型。第二部分介绍了深度学习在排序模型的一些进展和美团的一些尝试。除了这两部分内容外,深度学习几乎渗透了文本的各方面,美团还有很多尝试方式,比如情感分析、对话系统、摘要生成、关键词生成等,限于篇幅不做介绍。总之,认知智能还有很长的路需要走,语言文字是人类历史的文化沉淀,涉及语义、逻辑、文化、情感等众多复杂的问题。我们相信,深度学习在文本领域很快会有很大突破。


参考文献


  • [1] Thomas Hofmann. “Probabilistic Latent Semantic Analysis”. 1999.

  • [2] David M.Blei, Andrew Y.Ng, Michael Jordan. “Latent Dirichlet Allocation” . 2002.

  • [3] Huang, Po-Sen et al. “Learning deep structured semantic models for web search using clickthrough data” in CIKM 2013.

  • [4] Shen, Yelong, He, Xiaodong, Gao, Jianfeng, et al. “A latent semantic model with convolutional-pooling structure for information retrieval” in CIKM 2014.

  • [5] H. Palangi et al. “Semantic modeling with long-short-term memory for information retrieval”. 2015.


2020 年 2 月 27 日 11:13586

评论

发布
暂无评论
发现更多内容

架构师训练营 第二周 学习心得

LiJun

极客大学架构师训练营

架构师训练营-第二周学习总结

极客大学架构师训练营

SOLID设计原则(第二周+作业)

林毋梦

极客大学架构师训练营

架构训练营第二章作业

mh

【第二周学习总结】

黑莓

设计原则之依赖倒置和接口隔离

dapaul

第二周 学习心得总结

冯凯

第二章作业

小胖子

【架构课作业 - 第二周】

Nelson

极客大学架构师训练营

架构师训练营-总结2

进击的炮灰

依赖倒置原则和好莱坞原则

阿飞

架构 极客大学架构师训练营

架构师如何去进行软件设计(设计原则篇)?

阿飞

极客大学架构师训练营

架构师训练营学习总结——面向对象的设计模式【第三周】

王海

极客大学架构师训练营

【架构】—回归本质(面向对象)

不二架构

面向对象 架构师 极客大学架构师训练营

Mybatis-plus 之 DIP

无心水

极客大学架构师训练营

【架构师训练营 -Week-2】总结

Andy

第二周学习总结

安阳

架构师训练营 - Task Week 2

brave heart

极客大学架构师训练营

架构 0 期 -week2- 命题作业

陈俊

极客大学架构师训练营

编程这件事

dapaul

第二周总结

阿布

【第二周作业】

黑莓

week02-总结

seki

依赖倒置及 Cache 重构设计

秤须苑

极客大学架构师训练营

架构师培训第2周学习总结

Geek_165f3d

第二周 作业

尔东雨田

一笔钱买两次东西?——双花安全问题分析

石君

数字货币 双花攻击 数字货币安全

设计模式的主要原则

架构师训练营 - Lesson Week 2

brave heart

极客大学架构师训练营

架构师 0 期第二周作业(心得体会)

何伟敏

软件架构的实现设计总结

mh

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

深度学习在文本领域的应用-InfoQ