前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >极简自然语言处理技术发展史

极简自然语言处理技术发展史

作者头像
木羊
发布2022-04-11 17:46:22
3690
发布2022-04-11 17:46:22
举报
文章被收录于专栏:睡前机器学习

自然语言处理,英文Natural Language Processing,为了简便,一般都简写成NLP。NLP很重要。有多重要?以前有一种说法,说NLP是人工智能这一皇冠顶上的明珠。不过,出自一本写NLP的书,是不是“王婆卖瓜”呢?说不好。但事实是,深度学习有两大热门问题分支,一个是图像处理,另一个是NLP。

接下来讲一讲机器学习和深度学习怎么做NLP。首先简单介绍一下NLP大概都做些什么。其实很简单,机器学习是一部大男主的套路剧,大男主的名字叫“样本”,所以,NLP的大男主,自然也是样本。长什么样呢,你肯定见过,就是一个一个的字。譬如,“这就是一个NLP样本”,这几个字就是一个NLP样本。自然语言处理嘛,自然处理的就是语言。有了样本能干什么呢?玩法很多,主要有两种,“判别”和“生成”。“判别”就是分类,譬如情感识别,判断一下“我好爱NLP啊!”是属于好评还是差评。“生成”就简单多了,就是续写,给你一段太监文让你给续上。以前你看到的那些“震惊!XX公司的人工智能居然能写小说!”之类的震惊体,用行话来说就是文本生成。当然,NLP的玩法非常多,像是研究回字的四种写法的譬如NER、POS。既然是简史,这里就不展开了。

知道了NLP要做什么,接下来就是怎么做的问题。这里就真的要用到一些机器学习的知识了。我们说训练机器学习模型,很重要的一道工序是“提取特征”,如果做过机器学习,你一定知道所谓特征,就是一条样本用一串的数来表示,数学里叫向量。很多的样本特征,就构成了矩阵。如果你没做过机器学习,看到这里是不是有点懵了?不要紧,只要知道机器学习模型的样本,听起名字霸气侧漏,实则和你的工资条差不多,都是一串儿数就行了。

那么,问题就来了。机器学习只认数,而只要你的记忆比鱼厉害一点点,稍微超过7秒就一定记得,我刚说NLP要处理的是一个一个的字。他们一个是火星一个是地球,要怎样才能让火星撞地球呢?

这就说到本文的主线了,两个字,转换将文字转换成数字

当然了,对于我们学计算机的,文字转数字和搬砖差不多,算是常规操作,最容易想到的就是转ASCII码。不过,NLP一般是以“词”为单位,原因也简单,毕竟起源于欧美嘛,人家的语言都是以“word”为最小单位的。所以问题就复杂了一点,简单转成ASCII码就不太合适了。

那怎么办呢?这就开始说到NLP的发展。第一代NLP技术,是One-Hot。

是不是感觉这个词怪怪的。中文一般翻译为“独热”,是不是感觉更怪了?不过One-Hot的做法极其简单,NLP你不是要以“词”为单位嘛,那好,我把整个样本库——注意,不是一条样本,而是整个样本库的所有词去重后整成一个巨大的词典,假设里面有2673个不同的词吧,我就用2673维的矩阵来表示,每一维只代表一个词,绝不重复。接下来就是转换,其实更像是填空,只要把词对应的维置1,其他的2672维置0。这也就是为什么One-Hot被称为“One-Hot”。一个词转成One-Hot后,大概是这个样子:

......000000001000000......

你可能会认为这种“通信基本靠吼”的方法只存在于远古。还真不是。我不知道现在自然语言处理的教材都是什么内容,不过如果你现在大一,你找大四的师兄借一下课本,应该还能看到对One-Hot的详细介绍,课本还会煞有介事地告诉你,这是自然语言处理最规范的做法。

One-Hot简单粗暴,也能达到转换的效果,不过,问题也很明显,一大串的0带着一个1,直观感受就是太浪费空间的,行话叫“稀疏”。那怎么让它“稠密”一点呢?这就说到了第二代NLP技术,Word2vec。

Word2Vec同样要完成词的向量化,和One-Hot最大的不同是短很多,上面One-Hot表示一个词需要2673维,而在Word2Vec中维度可能只需40维或60维,显然,Word2Vec要稠密多了。前面我们讲了一个词的One-Hot是怎么来的,那一个词的Word2Vec是怎么来的呢?分三步。首先你得先有One-Hot,然后塞进Skip-gram模型,最后你就得到了Word2Vec。这个过程,叫Word Embedding,词嵌入。多说两句这个Embedding,你可能很难想象“嵌入”是个什么概念,照书本的官方说法,嵌入这里是指高维空间嵌入低维空间,别看写得文绉绉的,估计写书的那伙人自己也没搞明白这是个什么玩意。不过你可以简单理解一下,前面我们不是说用One-Hot需要很高的维度才能表示一个词嘛,现在有了词嵌入,有了Word2Vec,维度一下降低了许多,但还是同样能表示那个词,“意思不变维度降低了许多”,嗯意思大概就是这么个意思。Embedding现在跟着深度学习火不得了,衍生出了一个子研究方向,名字就叫表示学习。

从Word2Vec开始,NLP就和深度学习撇不清关系了。深度学习给我的感觉吧,和网红真的很像,每个深度学习模型的背后,多半有一个一战成名的故事。Word2Vec也不例外,声称能把关系都给表示出来。什么意思呢?就是用了Word2Vec做词向量,以下算式将成立:King-Man+Woman=Queen

这就是为什么在Word2Vec大热的那段时间,很多同学前赴后继地用Word2Vec来计算,《射雕英雄传》里面的黄蓉最爱的男人是谁。也别觉得太玄乎,深度学习玩来玩去也就是统计学相关性的那一套戏法。Word2Vec当然也不是就完美无缺了,虽然比起One-Hot,一下在维度方面的减肥效果拔群,但源自One-Hot的Word2Vec,同样还是继承了一个特点:一个词对应一个向量值。这就导致了一个问题:多义词怎么办?

在很长的一段时间里,对于这个问题,业界做出了非常大的努力,主要就是努力装鸵鸟,假装问题不存在。这不是开玩笑,词向量发的论文非常多,五花八门各种变种,给人一种打卡圣地的感觉,但内容基本都是在Word2Vec的基础上修修补补。直到山雨欲来的2018年10月,各种花里胡哨的词向量几乎在一夜之间,统统被扫进历史的垃圾桶。这就是第三代NLP技术,Bert。

当然了,搞研究的人都知道,什么“横空出世”“一夜之间”,这些表示戏剧性的词主要用于商业互吹。Bert也不是从石头中蹦出来的,她属于一个技术大类,叫PTM,预训练模型,是现在NLP的一个热门研究分支。在Bert之前,其实业界已经有不少人尝试用PTM来解决问题了。

然而,Bert确实是NLP领域当之无愧的里程碑,当年一经推出,硬是凭着爆表的战斗力横扫几乎所有的NLP任务排行榜,其他原本玩得不亦乐乎的方法一下就成了纯属搞笑的杂耍。前面我说,每个深度学习模型,背后都有一个一战成名的故事。Bert也不例外。有人说,Bert你不是牛吗,你咋不敢和人类比比呢?结果一比,Bert居然在SQuAD任务的两个指标上全面超越了人类,真的是吓死人了。

你也许很好奇,这个SQuAD是个什么玩意?简单来说,是阅读理解,对,就是那个在中学英语课上往死了折腾你的阅读理解,而且形式多样,除了选择题,还有简答、填空等多种口味,是现在NLP技术非常重要的一个应用方向,也是测试NLP模型性能的常用方法。

好了,NLP发展就介绍到这。小朋友,你是否有很多的问号?这是自然的,不过每一个问号展开了,都足以写一篇同样长度的文章。我推荐一本书,华章新出的《机器阅读理解:算法与实践》,应该是目前我在市面看到的唯一一本专题介绍机器阅读理解的书。上面你关心的许多问题,应该都能在里面找到答案。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 睡前机器学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档