谢杨易
《精通推荐算法》独著作者。在阿里、腾讯工作多年。优快云博客专家,原创文章100余篇。
展开
-
我的新书《精通推荐算法:核心模块+经典模型+代码详解》出版了!
本书包括10章,各章的具体内容如下。第1章介绍为什么需要推荐系统、推荐系统的分类及其主要技术架构。第2章介绍如何构建数据样本和特征工程,从而训练模型。这是推荐算法的基础。第3章介绍深度学习之前的主流推荐算法,包括协同过滤、矩阵分解、逻辑回归和因子分解机等算法。第4~7章讲解精排模型算法。第4章讲解特征交叉,并介绍Wide&Deep和DeepFM等经典模型。第5章讲解用户行为序列建模,包括短序列建模和长序列建模方法,重点讲解DIN、DIEN和SIM等模型。原创 2024-04-02 18:18:31 · 304 阅读 · 3 评论 -
推荐算法架构5:全链路专项优化
总体架构如下图所示,先列了6大方向,后续逐步展开。原创 2023-03-02 22:23:39 · 700 阅读 · 4 评论 -
机器学习0 — 总体架构,ChatGPT时代必须掌握的
随着ChatGPT的一声巨响,拉响了强人工智能的序幕。ChatGPT相对于目前的各种机器人,简直就是弓箭和导弹的区别。沉寂了两三年后,AI如今又一次站在了人类工业的最高舞台。个人认为AI已经成为所有人,特别是程序员,必须了解甚至掌握的一项基本技能,原因如下对于已经从事AI行业的人来说,恭喜你,处在了还不错的时代,可以坚定不移的走下去。对于还没有进入,但有兴趣进入这个行业的人,目前也不算晚。机器学习是人工智能的基础理论,学习难度也比较大,因此我整理了一个系列博客,从各方面讲解机器学习的原理。原创 2023-02-02 14:43:02 · 4326 阅读 · 4 评论 -
推荐算法架构1:召回
1 推荐算法总体架构1.1 推荐算法意义随着互联网近十年来的大力发展,用户规模和内容规模均呈现迅猛发展。用户侧日活过亿早已不是什么新鲜事,内容侧由于UGC生产方式的普及,拥有几十亿内容库的平台也屡见不鲜。如何让海量用户在海量内容中找到自己喜欢的,以及如何让海量内容被海量用户精准消费,一直以来都是每个公司十分核心的问题。在这个背景下,搜索系统和推荐系统应运而生。搜索系统主要解决用户寻找感兴趣的内容,偏主动型消费。推荐系统则主要解决内容推送给合适用户,偏被动型消费。二者一边牵引用户,一边牵引内容,是实现原创 2022-02-19 20:22:57 · 9133 阅读 · 4 评论 -
推荐算法架构2:粗排
精排是整个推荐算法中比较重要的一个模块,目前基本都是基于模型来实现,涉及样本、特征、模型三部分。1 样本样本是模型的粮食,以CTR任务为例,一般用曝光点击作为正样本,曝光未点击作为负样本。样本方面主要问题有 正负样本不均衡:比如CTR任务,如果点击率是5%,则正负样本1: 20,负样本远远多于正样本,导致样本不均衡。分类问题中样本不均衡,会导致模型整体偏向样本多的那个类别,导致其他类别不准确。解决方法主要有: 负采样:对负样本进行采样,可以直接采用随机负采样。一方面可以减少样本存储原创 2022-02-20 20:41:41 · 4460 阅读 · 3 评论 -
推荐算法架构3:精排
精排是整个推荐算法中比较重要的一个模块,目前基本都是基于模型来实现,涉及样本、特征、模型三部分。1 样本样本是模型的粮食,以CTR任务为例,一般用曝光点击作为正样本,曝光未点击作为负样本。样本方面主要问题有 正负样本不均衡:比如CTR任务,如果点击率是5%,则正负样本1: 20,负样本远远多于正样本,导致样本不均衡。分类问题中样本不均衡,会导致模型整体偏向样本多的那个类别,导致其他类别不准确。解决方法主要有: 负采样:对负样本进行采样,可以直接采用随机负采样。一方面可以减少样本存储原创 2022-02-20 20:52:37 · 7526 阅读 · 3 评论 -
推荐算法架构4:重排
1 总体架构精排打分完成后,就到了重排阶段,之后可能还会有混排。召回、精排、重排三个模块中,重排离最终的用户展现最近,所以也十分关键。重排的技术点也十分多,总结下来,个人认为重排主要是为了解决三大方面的问题:用户体验、算法效率、流量调控。下图是重排总体架构2 用户体验重排模块是推荐系统最后一个模块(可能还会有混排),离用户最近。作为最后一层兜底,用户体验十分重要。主要包括打散、多样性等内容。曝光过滤有时候也会放在重排中,但本质上完全可以在召回链路,对已充分曝光的短视频,或者刚刚已经购买过原创 2022-02-23 18:02:30 · 8272 阅读 · 13 评论 -
万字长文-深度学习模型压缩和加速-量化、剪枝、蒸馏等
1 背景近年来深度学习模型在计算机视觉、自然语言处理、搜索推荐广告等各种领域,不断刷新传统模型性能,并得到了广泛应用。随着移动端设备计算能力的不断提升,移动端AI落地也成为了可能。相比于服务端,移动端模型的优势有:减轻服务端计算压力,并利用云端一体化实现负载均衡。特别是在双11等大促场景,服务端需要部署很多高性能机器,才能应对用户流量洪峰。平时用户访问又没那么集中,存在巨大的流量不均衡问题...原创 2020-04-30 22:37:50 · 18551 阅读 · 7 评论 -
机器学习1 -- 梯度下降(Gradient Descent)
我们训练模型的目标,就是找到一个拟合函数和一组参数,使得loss函数最小。如下那么这组参数怎么找呢?大家肯定就想到了耳熟能详的梯度下降。假设θ 有两个参数,即 {θ1, θ2}。初始时刻第一次迭代后,第二次迭代后,其中梯度即为学习率为η。这种沿着梯度反方向更新参数的方式,即为梯度下降。迭代步骤如如下所示。原创 2020-08-27 20:06:27 · 13595 阅读 · 2 评论 -
机器学习2 -- 优化器(SGD、SGDM、Adagrad、RMSProp、Adam等)
总结下来,SGDM和Adam两大阵营的各种优化后的optimizer如下optimizer优化主要有四种方法让模型探索更多的可能,包括dropout、加入Gradient noise、样本shuffle等让模型站在巨人肩膀上,包括warn-up、curriculum learning、fine-tune等归一化 normalization,包括batch-norm和layer-norm等正则化,惩罚模型的复杂度。原创 2020-08-27 21:15:04 · 35794 阅读 · 10 评论 -
机器学习3 -- 误差来源(偏差bias和方差variance)
机器学习模型误差主要来源于两部分,即偏差bias和方差variance。如下偏差bias为所有样本点的平均值与真实值的差距,方差variance则代表了样本点分布的波动性。由右下角的图可知,误差同时来源于方差和偏差。原创 2020-08-28 14:03:28 · 14007 阅读 · 7 评论 -
机器学习4 -- 反向传播(back propagation)
反向传播是进行梯度计算的关键方法,梯度计算才能实现参数更新。梯度计算包括前向传播和反向传播两部分。如下图。原创 2020-08-29 14:29:24 · 15566 阅读 · 5 评论 -
机器学习5 -- 为什么深度学习需要加深?
很早以前就有人研究过模型加深加宽的作用。由上图可见,随着模型越深,错误率逐步下降。这个其实很好理解,可能有人会问,模型加深带来了模型参数量的提升,有助于bias降低。通过增加训练数据和各种正则,可以降低variance。从而降低整体的误差。原创 2020-08-29 17:11:01 · 14814 阅读 · 5 评论 -
机器学习6 -- 深度学习训练优化
深度学习中,我们在训练集上进行训练,结束后利用模型在测试集上进行predict。一般来说可能遇到两大类问题如下图所示我们分别来看这两种情况怎么来优化模型。原创 2020-08-30 15:46:05 · 13929 阅读 · 2 评论 -
机器学习7 -- 可解释学习
1 为什么需要可解释学习可解释学习是一个比较大的话题,本文也仅仅是抛砖引玉。深度学习大多数情况下,我们关注的都是模型的指标,如ACC、F1、Bleu等,一般较少关注模型的可解释性。深度学习模型是一个黑盒,模型结构和参数调整很多时候也是摸着石头过河,给模型可解释性带来了很大难题。什么是模型可解释性呢?它一般分为两类情况local explanation,为什么这个样本被预测为某个类别。比如为什么imageNet的这张图片会被预测为猫?我们需要弄清楚图片中哪些关键像素和区域,能够很大程度决定分类类别。g原创 2020-09-01 10:45:03 · 13267 阅读 · 1 评论 -
机器学习8 -- 模型攻防(model attack & model defense)
1 什么是模型攻防1.1 攻防定义我们在平常的深度学习模型开发中,一般关注的重点在模型指标上,比如ACC、F1、Bleu等。但其实还有另一方面需要注意,那就是模型攻防,特别是在人脸识别等安全领域。什么是模型攻击(model attack)呢?以图片分类为例,如下图。原始图片经过分类模型,可以正确识别是tiger cat。我们在图片上加入某些一定分布的噪声后,模型可能就会把它错误识别为其他类别,比如keyboard。1.2 攻击条件模型攻击必须满足两个条件在原始图片上加入一定噪音,通过原创 2020-09-09 17:52:58 · 16363 阅读 · 2 评论 -
机器学习9 -- 模型压缩和加速
1 背景近年来深度学习模型在计算机视觉、自然语言处理、搜索推荐广告等各种领域,不断刷新传统模型性能,并得到了广泛应用。随着移动端设备计算能力的不断提升,移动端AI落地也成为了可能。相比于服务端,移动端模型的优势有:减轻服务端计算压力,并利用云端一体化实现负载均衡。特别是在双11等大促场景,服务端需要部署很多高性能机器,才能应对用户流量洪峰。平时用户访问又没那么集中,存在巨大的流量不均衡问题。直接将模型部署到移动端,并在置信度较高情况下直接返回结果,而不需要请求服务端,可以大大节省服务端计算资源。同时原创 2020-09-09 19:32:06 · 15436 阅读 · 1 评论 -
机器学习10 -- 半监督学习 Semi-supervised Learning
1 为什么要做半监督学习有监督机器学习已经在很多领域证明了它的有效性,比如ImageNet图像分类任务,深度学习模型早在2017年,准确率就已经超过了人类。机器学习被认为是一门数据驱动的学科,数据分为两部分,data和label。通常情况下,data是比较容易获取的,而label需要标注,要珍贵很多。比如对于图像分类任务,网络上有成千上万的图片数据,但他们大多数都是没有label标注的。通常情况下,我们可以进行一小部分数据的标注,形成有监督数据,然后再利用好其他未标注数据。这种方法称为半监督学习。半原创 2020-09-11 18:27:13 · 19696 阅读 · 4 评论 -
机器学习11 -- 无监督学习之Auto-Encoder
1 什么是Auto-Encoder自编码器Auto-Encoder是无监督学习的一种方式,可以用来做降维、特征提取等。它包括两部分Encoder:对原始样本进行编码 Decoder:对经过编码后的向量,进行解码,从而还原原始样本如下图所示,对原始图片,先经过Encoder,编码为一个低维向量。然后利用这个低维向量,经过decoder,还原为原始图片。单独训练encoder和decoder,都是无法做到的。但把它们联合起来训练,是可以得到encoder和decoder的。1.1 deep原创 2020-09-12 11:23:10 · 16686 阅读 · 4 评论 -
机器学习12 -- 无监督学习之线性模型(clustering、PCA、MF)
1 无监督学习总览我们都知道,有监督数据是十分宝贵的。一般来说我们获取data很容易,但获取label却比较困难。因此,无监督学习在机器学习中十分关键。如何利用好大量的无监督数据,对于业务冷启动和持续迭代运行,都至关重要。无监督学习大致分为化繁为简。又包括 聚类,将无监督数据合并为一个个cluster。cluster内数据相似,cluster间数据不相似。 降维,特征提取。对无监督数据,比如图像、文本,提取特征。比如PCA、Auto-Encoder、MF 无中生有,主要就是各种生成模原创 2020-09-12 14:40:45 · 13736 阅读 · 2 评论 -
机器学习13 -- 无监督学习之自监督 self-supervised
1 为什么要自监督学习 self-supervised learning自监督学习是无监督学习的一种特殊方式。我们在无监督学习中讲过了,标注label是十分宝贵的,一般需要人工打标,时间和人力成本都十分高昂。但现实中,获取无标注data确实相对比较easy的事情。我们可以在网络上爬取很多很多的文本、图片、语音、商品信息等。如何利用这些无标注data,一直以来都是无监督学习的一个重要方向。而自监督学习则给出了一种解决方案。自监督学习通过data的一部分,来predict其他部分,由自身来提供监督信号,原创 2020-09-12 18:55:58 · 17018 阅读 · 7 评论 -
机器学习14 -- Transfer Learning 迁移学习
1 总览迁移学习的目标,是利用一些不相关的数据,来提升目标任务。不相关主要包括task不相关。比如一个为猫狗分类器,一个为老虎狮子分类器 data不相关。比如都为猫狗分类器,但一个来自真实的猫和狗照片,另一个为卡通的猫和狗迁移学习中包括两部分数据source data。和目标任务不直接相关,labeled或unlabeled数据一般比较容易获取,数据量很大。可以利用一些公开数据集,比如ImageNet。又比如在机器翻译任务中,中译英数据量很大,可以作为source data target原创 2020-09-13 18:47:49 · 13526 阅读 · 2 评论 -
机器学习15 -- Meta Learning 元学习
1 什么是meta learning一般的机器学习任务是,通过训练数据得到一个模型,然后在测试数据上进行验证。一般来说我们仅关注模型在该任务上的表现。而meta learning则探讨解决另一个问题,就是我们能否通过学习不同的任务,从而让机器学会如何去学习呢?也就是learn to learn。我们关注的不再是模型在某个任务上的表现,而是模型在多个任务上学习的能力。试想一下机器学习了100个任务,他在第101个任务上一般就可以学的更好。比如机器学习了图像分类、语音识别、推荐排序等任务后,在文本分类上原创 2020-09-14 15:43:45 · 16287 阅读 · 4 评论 -
机器学习16 -- Lifelong Learning 终生学习
1 什么是lifelong learningLifelong learning终生学习,又名continuous learning,increment learning,never ending learning。通常机器学习中,单个模型只解决单个或少数几个任务。对于新的任务,我们一般重新训练新的模型。而LifeLong learning,则先在task1上使用一个模型,然后在task2上仍然使用这个模型,一直到task n。Lifelong learning探讨的问题是,一个模型能否在很多个task上原创 2020-09-14 18:36:54 · 17682 阅读 · 5 评论 -
机器学习17 -- GAN 生成对抗网络
1 什么是GAN1.1 组成部分:生成器和判别器GAN诞生于2014年,由深度学习三巨头之一的Bengio团队提出。是目前为止机器学习中最令人兴奋的技术之一。目前有几百种不同构架的GAN,论文也是非常非常多,可见研究有多么热门。论文信息:2014.06,Bengio团队论文地址:Generative Adversarial NetworksGitHub地址:https://github.com/goodfeli/adversarialGAN利用Generator和Discr.原创 2020-09-15 17:14:01 · 21403 阅读 · 6 评论 -
Transformer家族1 -- Transformer详解和源码分析
1 总体结构近几年NLP领域有了突飞猛进的发展,预训练模型功不可没。当前利用预训练模型(pretrain models)在下游任务中进行fine-tune,已经成为了大部分NLP任务的固定范式。Transformer摒弃了RNN的序列结构,完全采用attention和全连接,严格来说不属于预训练模型。但它却是当前几乎所有pretrain models的基本结构,为pretrain models打...原创 2020-05-07 20:15:41 · 21583 阅读 · 14 评论 -
Transformer家族2 -- 编码长度优化(Transformer-XL、Longformer)
1 背景NLP中经常出现长程依赖问题,比如一个词语可能和它距离上千位置的另一个词语有关系。长程关系的建立十分困难。常见序列结构模型都有一些难点,如下。在RNN中,由于反向传播梯度衰减和梯度爆炸问题,使得模型只能捕获较短距离。LSTM利用门限机制,将连乘转变了为连加,提升了模型长程捕获能力,但梯度弥散问题没有从根本上得到解决,故其最大程度只能在400左右。Transformer利用self-attention机制进行建模,使得任何两个位置token距离都为1。如果没有内存和算力的限制,Transfo原创 2020-06-28 19:33:14 · 19258 阅读 · 14 评论 -
Transformer家族3 -- 计算效率优化(Adaptive-Span、Reformer、Lite-Transformer)
1 背景上文我们从编码长度优化的角度,分析了如何对Transformer进行优化。Transformer-XL、LongFormer等模型,通过片段递归和attention稀疏化等方法,将长文本编码能力提升到了很高的高度。基本已经克服了Transformer长文本捕获能力偏弱的问题,使得下游任务模型performance得到了较大提升,特别是文本较长(大于512)的任务上。但Transformer计算量和内存消耗过大的问题,还亟待解决。事实上,Transformer-XL、LongFormer已经大大降原创 2020-06-29 16:16:46 · 18916 阅读 · 5 评论 -
Transformer家族4 -- 通用性优化(Universal-Transformer)
1 背景之前讲Transformer的时候,也提到过它的通用性的缺点。相比于RNN,Transformer不是图灵完备的,虽然大多数任务都是吊打RNN,但在某些看起来极为简单的任务上,却表现很差,比如字符串拷贝等。这个问题其实也不算大,但谷歌还是给出了他的解决方案,也就是Universal Transformer。这篇看看就好了,个人感觉实际应用中作用有限。2 Universal-Transformer论文信息:2018年7月,谷歌,ICLR2019论文地址 https://arxiv.org/ab原创 2020-06-30 10:27:16 · 18647 阅读 · 3 评论 -
Transformer家族5 -- 推理加速(Faster-Transformer、TurboTransformers)
1 背景之前介绍了从编码长度、计算效率、通用性等角度对Transformer进行优化,并介绍了几个重要模型。本文介绍如何进行Transformer推理加速。相比于离线训练,在线推理加速更加关键。一方面由于在线流量大,加速可带来硬件成本的节省。另一方面在线推理加速,可大大提升AI应用的用户体验。事实上,之前的多种方法,特别是计算效率优化,对推理加速很有帮助。这些模型从算法的角度,进行了推理速度优化。本文主要从框架层的角度,讲解如何对推理进行加速。主要带来NVIDIA的Faster-Transformer框原创 2020-06-30 20:52:47 · 19722 阅读 · 6 评论 -
NLP预训练模型2 -- BERT原理详解和源码分析
1 模型结构BERT自18年10月问世以来,就引起了NLP业界的广泛关注。毫不夸张的说,BERT基本上是近几年来NLP业界意义最大的一个创新,其意义主要包括大幅提高了GLUE任务SOTA performance(+7.7%),使得NLP真正可以应用到各生产环境中,大大推进了NLP在工业界的落地预训练模型从大量人类优质语料中学习知识,并经过了充分的训练,从而使得下游具体任务可以很轻松的完成fine-tune。大大降低了下游任务所需的样本数据和计算算力,使得NLP更加平民化,推动了在工业界的落地。pr原创 2020-06-22 20:16:38 · 29993 阅读 · 15 评论 -
NLP预训练模型1 -- 综述
复旦大学邱锡鹏教授发表了一篇NLP预训练模型综述,“Pre-trained Models for Natural Language Processing: A Survey”,从多个角度分析了当前预训练语言模型。本文基于这篇文章来分析1 为什么需要预训练模型邱老师认为预训练模型有三大优势预训练模型从大规模语料中学习知识,对下游任务帮助很大预训练提供了一种更好的参数初始化方式,使得在目标任务上泛化能力更好,收敛速度更快预训练可以认为是一种正则化手段,可以防止模型在小数据集上过拟合。2 预训原创 2020-06-27 22:16:35 · 21496 阅读 · 12 评论 -
NLP预训练模型3 -- 预训练任务优化(ERNIE、SpanBERT等)
1 背景前面一篇文章 NLP预训练模型2 – BERT详解和源码分析 中,我们从模型结构、实现源码、实验结果等角度,分析了预训练语言中大名鼎鼎的BERT模型。BERT大幅刷新的GLUE得分,提高了7.7个点之多,甚至有些中文NLP任务上达到了人类水平。那是不是在预训练模型方面就没法进行其他创新了呢,答案显然是否定的。前文中我们也提到了BERT存在的很多缺点,从预训练任务、模型结构、语料数据、模型轻量化等方面我们都可以进行深度优化。本文我们就先从预训练任务的优化讲起。BERT是一个multi-mask任务原创 2020-06-24 22:10:00 · 20603 阅读 · 3 评论 -
NLP预训练模型4 -- 训练方法优化(RoBERTa、T5)
1 背景上文 NLP预训练模型3 – 预训练任务优化(ERNIE、SpanBERT)我们从预训练任务的角度讲解了如何对BERT进行优化,本文我们从训练方法的角度来讲解BERT优化。训练方法包括数据语料、文本预处理、超参调整等。BERT使用的一套超参,比如batch_size、training steps、optimizer、learning rate,是否还有优化的空间呢?每个深度学习调参侠都知道答案是显然的。虽然BERT在大模型大数据的作用下,对超参不是很敏感,但超参调整始终是模型优化一个绕不开的原创 2020-06-26 21:15:10 · 20060 阅读 · 5 评论 -
NLP预训练模型5 -- 模型结构优化(XLNet、ALBERT、ELECTRA)
1 背景上文我们从预训练任务优化(NLP预训练模型3 – 预训练任务优化(ERNIE、SpanBERT))和训练方法优化(NLP预训练模型4 – 训练方法优化(RoBERTa、T5))两个角度,分析了如何提升BERT和NLP预训练模型的performance。本文我们从模型结构优化的角度来进行深入分析。模型结构优化一直以来都是比较fancy的工作,优秀的模型结构设计,可以大大提高模型参数的效率,甚至小模型效果可以超过大模型。本文我们以XLNet、ALBERT、ELECTRA为例进行分析。虽然他们也可以认原创 2020-06-27 16:26:19 · 18223 阅读 · 5 评论 -
NLP预训练模型6 -- 模型轻量化(ALBERT、Q8BERT、DistillBERT、TinyBERT等)
1 背景模型压缩和加速在工业界应用中十分重要,特别是在嵌入式设备中。压缩和加速在算法层面,大体分为结构设计、量化、剪枝、蒸馏等。本文从这四个方面分析怎么实现BERT轻量化,从而实现BERT模型压缩和加速。2 结构设计通过结构设计来实现模型轻量化的手段主要有:权值共享、矩阵分解、分组卷积、分解卷积等。BERT中也广泛使用了这些技术。以ALBERT为例:矩阵分解:embedding层矩阵分解,分解前参数量 (V * H),分解后(V * E + E * H), 压缩 E/H 倍。权值共享:ALB原创 2020-06-27 18:58:51 · 20395 阅读 · 4 评论 -
自然语言处理1 -- 分词
1 概述英文语句使用空格将单词进行分隔,除了某些特定词,如how many,New York等外,大部分情况下不需要考虑分词问题。但中文不同,天然缺少分隔符,需要读者自行分词和断句。故在做中文自然语言处理时,我们需要先进行分词。 2 中文分词难点中文分词不像英文那样,天然有空格作为分隔。而且中文词语组合繁多,分词很容易产生歧义。因此中文分词一直以来都是NLP的一个重点,也是一个难点。...原创 2018-08-14 19:33:26 · 22845 阅读 · 10 评论 -
自然语言处理2 -- jieba分词用法及原理
1 概述上篇文章我们分析了自然语言处理,特别是中文处理中,分词的几个主要难点,为了解决这些难点,我们提出了基于字符串匹配的算法和基于统计的分词算法。针对当前的几种分词引擎,我们对其分词准确度和速度进行了评估。jieba分词作为一个开源项目,在准确度和速度方面均不错,是我们平时常用的分词工具。本文将对jieba分词的使用方法以及原理进行讲解,便于我们在理解jieba分词原理的同时,加深对前文讲解...原创 2018-08-16 11:25:49 · 33915 阅读 · 8 评论 -
自然语言处理3 -- 词性标注
1 概述词性标注在自然语言处理中也属于基础性的模块,为句法分析、信息抽取等工作打下基础。和分词一样,中文词性标注也存在着很多难点,比如一词多词性,未登录词处理等诸多问题。通过基于字符串匹配的字典查询算法和基于统计的词性标注算法,可以很好的解决这些问题。一般需要先将语句进行分词,然后再进行词性标注。2 词性标注难点词性作为词语基本的语法属性,是词语和语句的关键性特征。词性种类也很多,...原创 2018-08-21 14:35:01 · 24536 阅读 · 11 评论 -
自然语言处理4 -- 句法分析
1 概述句法分析也是自然语言处理中的基础性工作,它分析句子的句法结构(主谓宾结构)和词汇间的依存关系(并列,从属等)。通过句法分析,可以为语义分析,情感倾向,观点抽取等NLP应用场景打下坚实的基础。随着深度学习在NLP中的使用,特别是本身携带句法关系的LSTM模型的应用,句法分析已经变得不是那么必要了。但是,在句法结构十分复杂的长语句,以及标注样本较少的情况下,句法分析依然可以发挥出很大的...原创 2019-10-27 20:29:52 · 18243 阅读 · 3 评论