极简自然语言处理技术发展史
自然语言处理,英文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发展就介绍到这。小朋友,你是否有很多的问号?这是自然的,不过每一个问号展开了,都足以写一篇同样长度的文章。我推荐一本书,华章新出的《机器阅读理解:算法与实践》,应该是目前我在市面看到的唯一一本专题介绍机器阅读理解的书。上面你关心的许多问题,应该都能在里面找到答案。
《机器阅读理解:算法与实践》
微软人工智能首席技术官黄学东、中国计算机学会秘书长杜子德联袂推荐!微软高级研究员、斯坦福大学计算机系博士、2届全球阅读理解竞赛冠军朱晨光撰写。让你深刻认识机器阅读理解并直接进行相关模型开发、实验和部署。
木羊同学,原名莫凡,新技术深度爱好者,曾经从事信息安全前沿技术跟踪研究和数据分析工作,在各类信息安全类技术期刊杂志发表文章五十余篇,现转为投身高端知识“白菜化”项目,希望能让将更多听起来高大上的名词沾一沾人间烟火,成为日常中生活真正用得上的知识,著有《机器学习算法的数学解析与Python实现》。个人公众号“睡前机器学习”,个人知乎号“木羊”。
更多精彩回顾
书单 |大数据战略上升为国家战略,悄悄告诉你大数据大牛都在读的8本书
干货 | 73页PPT,教你从0到1构建用户画像系统(附下载)
榜单 | 423世界读书日 | 华章精品IT书单独家推荐
收藏 | 这10本书助你从容应对数字化转型中可能出现的各种挑战
极简自然语言处理技术发展史相关推荐
- 锐捷网络的极简X是什么?
3月6日,以"携手同心,逆风飞飏"为主题的锐捷网络2019年合作伙伴大会在南京召开.本次大会上,锐捷网络全面回顾了2018年"做精做强"战略下的成果与收获,重磅 ...
- 【光剑极简教程系列】“计算机科学与技术”概述Computer Science and Technology
[光剑极简教程系列]"计算机科学与技术"概述 Computer Science and Technology 计算机科学是什么? 计算机科学,研究计算机及其周围各种现象和规律的科学 ...
- 桌面 html 自定义,【极简壁纸 - 技术分享】html js自定义右键菜单方法
自定义右键菜单 极简壁纸2.0 地址: https://bz.zzzmh.cn 目前进度已开发到95% 近期有时间就会分享一下,我在开发过程中用到的一些小技术的简单用法和demo 关于html js右 ...
- 极简主义风格的应用方式,在纽约现代美术馆的体现了,技术,思潮,思维有哪些?解读。1000字以上...
极简主义风格是20世纪中叶以来一种广受欢迎的设计理念,它强调简单.纯粹.朴素的设计思想.极简主义的应用方式在纽约现代美术馆的体现是其中最典型的例子之一. 技术方面,极简主义在纽约现代美术馆的体现体现了 ...
- 极简主义风格的应用方式,在纽约现代美术馆的体现,技术,思潮,思维有哪些?...
极简主义风格在纽约现代美术馆的体现主要体现在以下几个方面: 技术:极简主义风格倾向于使用简单的技术和工艺,如墨笔画.印刷等,使得作品具有纯粹的艺术效果. 思想:极简主义追求简洁.纯粹和精细的设计,并将 ...
- 天鸟技术中台-建设过程-日常经验1:标准、规范、约定、极简、可读、单一职责、自动化
1.标准.规范.约定.极简.可读 技术中台,以模块来划分,不同模块,代码总体一致. 因为,中台本来就是要解决类似问题. 不同模型,主要还是CRUD,第1阶段,只考虑not core非核心业务. 核心业 ...
- Instagram 5位传奇工程师背后的极简技术(PPT全译)
http://www.csdn.net/article/2013-03-28/2814698-The-technologie-%20behind-Instagram 摘要:Instagram,一家基于 ...
- 【“计算机科学与技术”专业小白成长系列】Linux Shell 编程 极简教程
Linux Shell 编程 极简教程 内容摘要 本文是 Linux Shell 编程简单入门.主要内容: Linux 简介 Shell 编程入门 Kotlin 脚本与 Shell 脚本 Linux ...
- 自然语言领域的技术发展史
前言 自然语言处理 (Natural Language Processing,NLP) 是一门涉及计算机科学.人工智能.语言学等多个领域的交叉学科,旨在让计算机理解和处理人类语言.该领域主要研究如何将 ...
最新文章
- SQL:找出我(uid=2)所有的好友信息,和这些好友发布的最新的一篇文章
- 【Android开发】Android 删除指定文件和文件夹
- 生态篇-HBase 生态介绍
- java中形参不可以是对象吗_(重要)java都是值传递,与对象形参所指向的对象改变,其实参所指向的对象也相应改变并不矛盾(2011年9.30日一天写的两个程序的总结结果)...
- Java学习--设计模式之创建型模式
- 五大算法之二--动态规划
- OJ1001: 植树问题
- 性能测试用例(转载)
- python log函数_python装饰器的使用
- 喜大普奔,微软Microsoft JDBC Driver For SQL Server已发布到maven中央仓库
- mysql交换分区_对MySQL交换分区的实践
- python 日期操作【转】
- 【笔记】生成函数与大背包问题
- TypeError: Fetch argument has invalid type class ‘numpy.float32‘, must be a string or Tensor
- SOLIDWORKS在机械设计行业的优势所在
- Ant Design与Ant Design pro入门
- 迅雷android面试,迅雷面试题(转载)
- SQL中DDL、DML、DQL、DCL、TCL是什么意思
- linux jar环境配置文件,启动jar包 指定配置文件和运行环境
- Kubeadm init报错解决
热门文章
- 胡润首次发布《2019胡润全球独角兽榜》,11家区块链公司入选!
- 如何修改打印服务器格式,打印机服务器设置了格式
- lnux php 连接access,在Linux下实现对Microsoft Access Database(.mdb
- Nvidia TX2+rplidar+autolabor pro1实现自主导航机器人
- 石家庄程序员创业高级QQ群186813809
- 「衡水中学语录分享」喜欢点波关注呗
- css flex换行且均匀分布
- gif动图文件太大无法上传?教你一招在线调整动图大小
- 番茄工作法总结-第二章:背景
- Mac 系统下查看隐藏文件夹的方法