00:14
呃,我们还有一点点时间,然后呢,在自然语言处理这块呢,我会给大家简单讲一下。因为自然语言处理是我们互联网里面最重要的东西,对吧,可以说是最重要的,因为你们看的文章,我每天每天读的文章是吧?看的视频那个标题,看到图片的标题对吧?百度搜索你看那个标题,看哪个好,点进去哪个对吧?这全是自然语言处理的范,那个范围自然自然语言处理呢,相比于图像和语音来说都要困难许多。大家知道为什么吗?这个第一是起义对吧?还有呢,还有没有。
01:02
再有一个关键问题就是语言是离散的。大家可以理解一下,这个语言是离散的。图像呢,打比方图像是连续的对不对,12345是吧,我我可以很明确的知道,比如说现在啊,我现在让计算机生成一张假图像,生成一个假的图片,它是我说它是个猫对吧,它其实不是一个猫,它相比于真实的猫的图片,它肯定有一个损失,对不对,有一个路子对不对,这个路子就可以更新到这个图像里去,去更新这个生成器啊,对吧?因为你像素是连续的对吧,那像素的值也是连续的,你就可以更新这个生成器,对吧,你可以让它不断的去学,怎么能生成一个符合你这个猫的分布的这个图像,对不对。但是语言没办法。你没有办法,你没有办法对一个词做更新。明白,比如打个比方说,切词是自然语言处理中最基础最重要的工作,这是机器假设这是机器生成的一句话,对吧?假设他现在生成错了,最重要对吧?如果这是一个像素的话,它生成错了,你知道正确的那个像素是什么对不对?你可以做差值让它往上贴对不对?但是你说从重要到假如说重要错了,你怎么知道这个?
02:22
重要和真正那个正确的词中间的差的值是多少呢?对吧,你是不知道的,没办法知道的,对不对。这个理解吗?理解理解吗,这个。大家可能体会体会就知道,就就是你语言就这个地方,你选哪一个词进来,你是不可,这个事儿是不连续的,对吧,你没有方向可言对吧,你是没有方向可言的,你不知道怎么建模这个事,但是图像你很简单,图像的话它是一个值对吧,这个值假设这个地方是25,咱们就说一个像素啊,这像素是25,导致嗯,这个图分对了,它它是一个猫,没错,它是个猫,现在有一个生成的,它现在生成是250,假设是吧,差了五个点是不是,所以说自网上更新就完了呗,251252253,看看什么时候变成了一张真的猫就完事了吗?对吧,这是图像对吧,但是你说你这个这个词你怎么替换呢?词没有办法替换,你不知道这个词的方向是什么,对吧,对吧,从重要到很重要,或者从重重要到一般一般重要或者很基础之类的词,你是没有办法核算它的距离的。
03:45
你没有办法核算它的距离,所以说自然语言处理在深度网络里边用的时候,它反向传导的时候就不那么好用。这是为什么自然语言处理很难,另外一个自然语言还有一个关键的问题,就是它很抽象,比如说我们说这张图片是吧,你可以说它是一个大桥,对吧,我可以说它一个轮船在大桥上,也有人会说它海雾是吧,有这个大,那个长江的一个这个雾,雾气很大是吧?有的人说它是一个灰色的图像,我们对这个图像都有各自的描绘,但是呢,谁说的都是一个片面的东西,但是呢,我说完之后呢,你通过联想,你是能复原出来一副跟他八九不离十的图片的,对吧?这就是人类的智能,但是你要继续做这个事儿,机器做不到的。
04:33
机器没有办法联想,你说的这些东西在机器看来全是不同的东西。明白吧,这就是一个抽一个信息的一个抽象和一个自然世界的一个建模。嗯,那么我们在这里边先给大家简单讲两个起义的,刚才讲到这个起义是吧,咱们看第一个起义,交集型起义哈,结婚的和尚未结婚的。结婚的和尚未结婚的,对对,这这个就是自然语言处理边很很很困难是吧?啊第二个是他说的确实在理。
05:16
可以理解成他说的确实在理是吧,确实对。是吧,这两个就这两个就就导致说一个自然语言处理有的时候很困难,因为你其实我们有的时候人都不知道他说的是啥意思,对吧?这第一种交集型起义,什么叫交集型起义呢?就是说他们是交交叉起来的,前面后边是连着的,第二种是组合型起义,对吧?组合型起义是啥意思呢?学生会宣传部对学生会宣和会宣传部是吧?可以这么先,然后第二个是切法,是把手抬起来,把手抬起,对这他们可以组合也可以切,你看你看你切开或者组合对吧,都不是对吧,把手是切是切是切开呢,还是不切开呢?它有的时候可以切开,有的时候不能切开,对吧,你得看后边对不对,那是很困难那个东西。
06:25
对吧,然后呢,最开始呢,切词呢,是基于词典啊,词典是它这个词典是比较简单的啊,就是怎么弄呢,弄一个大的词典,对吧,从头开始匹配啊,啊匹配最少可以最少匹配对吧,最少匹配一个,这就是一个词对吧,那后边久而久之就发现了结婚的和尚怕匹配出来了是吧,后边未未结婚的匹配不下去了对吧,接错了,所以后来又有人怎么干,怎么办呢?就是对这一个句子做切词,让这个句子里切出来的词尽可能的少。
07:02
当然了,你这个没切出来的话,肯定要做惩罚的,比如说你这未结婚的,这就惩罚,这这这不对对吧,这肯定是个惩罚对吧,然后这是现在常用的一个切词。然后呢,后面又有人开始做什么呢?语言模型这个事儿。啥叫语言模型呢哈,在语言模型出来之前,大家对自然语言处理的这个理解都比较比较,就比较low哈,就比较比较比较原始语言模型是这样做的,就是应该也是Google先提出来的,呃。一个词之所以出现,它是有统计的概率去决定的。比如打比方,呃,我们换一个换一个,比如说切词式自然语言处理。中最基础最重要的工作是吧,那最后面接基础,最后面接重要,它的概率就很大,对吧,但是如果说最切词这个事儿,概率就非常非常小对吧,包括你说最处理那不可能的,对吧,那这个概率基本上非常非常小的,这就是语言模型,就这么个东西。
08:16
对吧?一元语言模型是什么东西呢?一元语言模型就是每个词出现的概率。对吧,二元语言模型就是每一个词出现的概率,再乘上它后面出现条出出现第一个词的一个条件概率,就不考虑三元明白吧。对吧,所以出现了语言模型以后呢,大家去做这个搜狗拼音输入法的时候,就比以前的五笔输入法和那些什么的,所谓的那些什么两件就能输入,感觉就这个体验就突然间就好很多,发现了是吧,因为你现在搜狗拼音输入法里边随便说一个东西,他可能下一给你联想出来是什么了,靠的是什么呢?靠的就是语言模型,他训练一个很大的圆模型,明白吧是吧。
09:03
那么呃,语言模型呢,它有一个关键的问题啊,还是我们说的那个维度爆炸的问题,如果现在是三元语言模型,在整个汉语里边,基本上就得需要百台机器去训练了,去存储和训练了,这个模型就非常大了,因为每一个词后面你都允许它出现两个词。你就说这个概率明白吧,比如打比方我讲一下。比如说我们拿这个画图板来说一下,现在我语言也可以看成一个序列是吧?ABABCD是吧?一元模型呢,就是A出现了一次的概率是什么?1/4是吧?B出现一次概率是1/4 C出现一次1/4 D出现一次1/4,二元语言模型是这样的。是。A出现了一次,B出现一次,它的什么是多少我就不知道,就不统计了啊,原图有很多,A a cadb cbdcd,对吧?大家看到它这个数量膨胀了很多对吧?那么三元模型,三元模型就涉及到什么三个组合了吧,对吧?ABCABD是吧是吧?什么ACD啊AACD是吧?有很多是吧?只有四个的时候,大家看不出来它这个数量的膨胀,但是语言的词,中文的那个词至少几万个常用的词,那个情况下,如果你做三元组就相当于什么呢?相当于假设,咱们说假设是有1万的话,就相当于你说你第一个词选1万,第二个词又选1万对不对,第三词又选1万对不对。
10:44
就1万减一,1万减二嘛,对吧,那CNC1万取什么,取三嘛,有多少种取法嘛,对不对,而且这还是带什么呢,其实是AA1万去三对,它是一个排列,而不是一个组合,对吧,这个这个情况下,它那个语言模型就爆炸了,就特别特别大,是没有办法用计算机去存储的,就三元的时候就是顶线的,最开始的时候也只有Google去做了一个三元的语言模型,然后呢?呃,现在不知道做没做四元,但是实际上已经没有那么重要的意义了,后边有那个深度学习了,所以说这个应该说已经解,也不说解决了吧,但是也好了很多是吧。
11:21
那这个语言模型大家了解就是搜狗拼音输入法,还有很多输入拼输入法,为什么现在体验比十十几年前要强很多,就是来自于语言模型这个东西。然后呢,嗯。我们再回顾一下这个文本分类的这个事儿哈,我们在互联网里经常会做一个工作叫什么呢?就是文本分类,比如说我们至少要把文本分成什么呢?类似于科技是吧,体育是吧,新闻娱乐是吧,这新闻娱乐能不能分开也不好说,但是有可能就新闻和艺术社会是吧这东西。怎么分呢?最开始人想的想法非常简单,就比如说现在这个公司出现了苹果是吧,这个这个公司这个文章出现了苹果,那我认为它是什么?科技类的新闻对不对?但是后来发现苹果不仅出现在科技类的新闻里,还会出现在这个农业的这个频道里。
12:20
于是就分不开了,是吧,这就出现了问题,而且后来还发现一个事儿,假设就算这个词没有歧义的话啊,如果比如说你说把科比放这个体育里边,但是呢,科比很可能放在新闻里也是有的,对不对,但是你又没有办法去找这个词,能从体育或者从新闻里边就说这个词就肯定能区分出来,它是体育,还细分,它不存在这么一个词,对吧?所以怎么办呢?大家想了很多办法,那最简单最简单一个办法就是辅苏贝叶斯。伯特格耶斯是怎么怎么说怎么想的这个事儿呢?哈,嗯,他认为啊,这个语言是一个磁带模型,什么叫磁带呢?就现在我有一个磁的一个带子,这个带子里全是磁。
13:02
全是词啊,我一次从里面拿出一个,一次从里面拿出一个,然后写,就是像什么写作那些人就是从袋子里拿词,你写个科技文章,就是说拿的词可能都是科技属性的,知道吧,但是拿科技属性这个词呢,不意味着你只拿科技属性的,你可能会带其他的词,但是毫无疑问,其他的词肯定概率很小。明白吧,他就基于这个假设就去做这个文本分类,对吧,所以说在这个比如说在这个,呃,社会这个文文章里面,社会这文章里类似于民生啊,或者类似于什么养老金啊,退休啊这些东西啊,它出现的这个概率就要比其他的文章里的概率要高很多,对吧?它就是基于这个方式去做的这个文本分类,具体来说呢,它的这个分类过程是什么样的,咱们可以看一下下边这个二分类的简单的二分类问题。二分类问题里最经典的一个就是垃圾邮件的分类,对吧?啊,你这邮箱里经常有垃圾邮件,怎么分类呢?垃圾邮件肯定有很多词是垃圾词对吧?这个词跟你正常的邮件里肯定有词是重合的,对吧?还是我们刚才说那句话,通过概率去判别。
14:10
那么首先我们说垃圾文本出现的概率是A,在乘上垃圾文本文中出现A词的这个概率乘起来。在除上所有文本中出现A词的概率就是A是垃圾文本的概率,这是我们之前讲过的图那个,呃,贝叶斯公式这个内容对吧。大家还能想,还能想起来吗?还能想起来是吧?讲贝叶斯公式的内容。是吧,其实解释起来也非常简单啊,就垃圾文本中,就我们现在就是我们上次讲过一个罗马的故事是吧,实际上路通罗马现在有一个文本是吧?文本呢,有两种的来源,一种是垃圾,一种是非垃圾,对吧。那我现在已经有一个文本了,我想问垃圾的概率是多大,那就是说从垃圾的概率,垃圾本身的概率,产生这个文本的概率呗,对不对,这是很简单对吧?那么为什么一定要乘上这个垃圾概率呢?因为假设哈我的邮箱里1万封邮件才出现一个垃圾邮件,那么它很显然你这个垃圾文本的概率就很低嘛,对吧,所以你要把它乘上对吧?对,然后呢,垃圾文本里,因为我刚说了垃圾文本就垃圾产生这个文本的概率,这个垃圾产生这个文本的概率怎么算呢?就认为垃圾这个地方有一个垃圾磁带。
15:40
垃圾池的一个袋子。垃圾磁带里边每次拿出一个词,每次拿着词直到拿出,把这个词全拿完,构建了这样一个文本,这个文本我也不考虑顺序啊,我把词全打散,我也不考虑顺序,它就是一个带子,没有顺序,我从垃圾里边拿了这么多词,构建出来这样一个文本,它的概率就是我从垃圾词,垃圾这个这个磁带里拿出每一个词的概率吗?
16:04
对吧,那这个公式大家下去可以可以再详细看一下,算起来非常简单啊,我们举个例子,大家可能看到了。现在看就有一个一个这个有一个有五个语料有标记,后面第一个是垃圾,第三个是垃圾,对吧,我们看到啊您好,请关注叉叉叉机器学习产品,我的的联系方式是啥啥是吧,然后呢,我先把它做切词了,对不对,肯定是用贴吧或者用什么其他东西做切词。关注到了,嗯,首先关注到了那个非垃圾的概率是什么,0.6对吧,垃圾概率0.4对吧,五个嘛,对吧,两个是垃圾对不对,非常0.4对吧,那么在垃圾里边啊,不不是垃圾里边我们先看一下整体的这个,我们就单独看一个词,产品这个词在整体里边出现多少次呢。在整体里边出现过产品一次,产品两次是吧,然后呢,就两次对吧,所以出现两次它的概率多少,2/5吧,对吧,我们现在就用,就是说我们现在用的是说它在一个文档里出现过一次,我就认为是一次,对吧,出现多次,我也认为是一次,就认为是一个文档出现,明白吧,这叫呃,伯努利贝叶斯啊,我们用这些最简单的伯努利贝叶斯去算,那就是0.4,而机器学习呢,出现了几次呢?
17:25
总共出现了多少次机学习一次三次是吧,0.6对吧,而在而在这个非垃圾的文本里,产品出现的概率是一对吧,而在垃圾文本里,产品根本就不会出现,对不对,对吧?所以我们有理由认为,就从现在来看,就五条数据啊,我们有理由认为只要出现产品,它肯定不是什么。垃圾尖对吧,哎,不是不是那个一定是拉圾尖对吧,那他是一定是一对吧,我们现有现从这个数据里有理由这么认为对吧,而出现机器学习呢,不好说怎么办呢?乘起来看看权重到底谁大谁谁小谁大谁小就OK了,对吧。
18:09
就算和解了吧。上回给大家讲那个普陀克叶斯的时候呢,大家听了觉得云云里无比,但是我觉得这次拿一个实例去举例子的时候,大家就会感觉好很多啊,给大家下去做那个自己做那个算法或者一些相关的一些工作的时候呢,你就直接拿一个小数据集去验证,或者拿一个小数据去推导,有矩阵你就拿二乘二的对吧?啊这个求求导,你就用那个ex是吧,这种或者套,然后包括老基这个回归呢,你也不用那么回那么麻烦的,你就用那个Y等于X加B,扔到那个E加上E的负,负的负Y分之一里边去做这个推导就完事了,这样简单就坏是吧,就OK了,所以呢,这就普特贝叶斯的这样一个。一个那什么这个这个概念啊,但是有个问题就是说这个P产品哈,这个太绝了,它一下就是说把这个概率整成零了,后面不管乘多少个概率,不管多大都会导致这个只要有产品在这个文档就肯定肯定不是这个,呃就就肯定不是这个正常的文本,对吧,这么做也是太极端,一般来说咱们不给他直接成零对吧,因为你你很可能这个里边就出现一次产品,但是后边全是垃圾词对吧。
19:27
因为你第一个是零,所以后边全排出现了,你都都都认为它没有了,对吧?我们一般怎么做呢?我们给它加一个平滑参数,给它加一个平滑参数,什么叫平滑呢?平滑就是专门给那个概率连乘的时候做乘积用的,比如打个比方,我们举个形象的例子,你现在上回谷的楼上看楼下的出入的人,发现出去五个人有三个是女生,你能得出上回谷女生的比例是60%吗?不能,这吧,为什么呢?因为你这个数据量太小了,对吧?怎么最好的办法是怎么办呢?当你不知道这个这个有是上位谷这个具体这个人员分布的时候,你你加一个经验参数,这个参数可调哈,你加一个比如说100。
20:14
加上100。啊,这个不是加100啊,这个是女生是三,不能加100,上面我加一,下面加100对吧?因因为这两个参数都是,一个是阿尔法,一个是贝塔,是你自己可调的,明白吧,那你上面加下面加就你是可调的,那加完之后,呃,这肯定是不是60%,比如上面加一,下面加100的话,那你下面105分之什么四对不对,这个比例才是将相符合我们那个学校的比例是吧?这就是平滑,明白吗?所以说如果你现在发现了一个概率,上面是零,下面是五,最好的办法是什么都加一,上面加一,下面加一,这就是比较合理的。知道吧,呃,在数据处理当中,大家也会经常遇到这个问题啊,在普素菲耶斯,然后呢,我们这里边再给大家补充一个这个这个这个总结啊,就普罗维斯,我们刚才没有讲到一个地方,是他有一个马尔可夫的一个假设。
21:12
什么叫马尔可夫假设呢?马尔可夫假设的意思是这个事情发生没有后效性。就是今天天气特别好,但是明天就下雨了,明天下雨跟今天没有任何关系,这叫马尔可夫星。为什么我们说朴素贝叶斯有马尔可夫性假设呢?因为朴素贝叶斯在算磁和磁之间的关系的时候,用的是磁带模型。它是个词的代子,没有组合,所以请关注和关注请是完全一样的。明白吧,其实请关注是这个这个序列,它是有信息在里边的。明天我们讲深度学习模型,会讲哈,这个东西序列,这个是你需要学到的,请关注和关注,请肯定不是一个东西对吧。
22:03
但是从普素维耶斯来看,他不知道他理理解不到这么深刻。就因为他做了一个马尔可夫假设,他认为前面这个词和后边这个词是完全独立的,没有任何关系,明白吧,所以说这也是他的一个好处,也是与他一个劣势,它很简单,然后呢,效果也还行,但是在高阶的文本分类上,它的性能并不高,并不是很好。这是他的一个问题啊,模型能力有限,并且呢,它是这个与概率图模型有强烈的这样一个关联啊,紧密的关联啊,然后我一会儿把代码给大家发下去,家回去可以试着考一下朴素贝耶斯的文本分类,这里边还有一个东西要强调的就是这个文本分类呢,用的是英文的语料,英文和中文的最大的区别是什么呢?大家了解吗?呃,英文和中文最大的差别是英文不用分词,自己自己分词了,对吧,中文要分词,所以中文才有这么多很痛苦的事情啊对,我们也希望中文最好不最好是大家写的时候选添加空格是吧,应该不可能是,所以英文不用分词,所以在这个程序代码里不会看到分词的东西,但是如果需要分词的时候呢,大家其实这个也也不难哈,我给大家简单演示一下,大家直接调一下包调一个叫派派,一直到结巴就可以啊,比如说我们现在结巴点cut。
23:34
比如说你,你好,那这个结巴是一个惰性加载,所以你必须得先把它转出来啊,转成例子对吧,那他就开始,你看他会切成这样一个东西是吧,但是你好只是一个词,再加一个,比如说你好啊,很称呼很对同学很官方说话,他就会切开你好吧,上鬼谷同学,他还是有一些问题的,是吧,他把硅谷切开了对吧,对吧,所以,所以这也是一个自然语言处理里边一个很基础的工作,所以你找做新词发现。
24:09
你怎么知道上圭谷是一个词,而硅谷是另外一个词,就像雷峰塔和雷锋的区别,Java和Java的区别是吧,是完全不一样的东西是吧?所以说这也是自然也出来一个比较困难的一个东西。然后呃,那今天的内容呢,大概就到这里,我把代码给大家发下去,我明天会给大家主要讲那个深度学习,深度学习是现在所有互联网行业,所有互联网方向里边用的最多的最深的一个,呃,技术站应该这么说,但是呢,他学起来呢,这却并不难,最开始理解很难,但是代码还是像Python一样,代码可能就100分就搞定了,非常简单,代码看起来很简单,但是背后的原理非常复杂。呃,好处就是呢,深度学习可以端到端的解决很多问题,原来你需要构建数据是吧,做特征工程是吧,你要搞很多特征,他年龄是什么,那个身高是多少是吧,现在什么都不用,你把所有的数据都扔进去就OK了。
25:13
比如原来你要做图,这个做图片分类,你要分类这个图片是不是一个汽车,你要去做很多特殊工程,它有没有轮子,对吧?它有没有车盖,它有没有玻璃,有没有后视镜,要做各种各样的事情,但是现在什么都不用,你把一张图片扔进去,告诉他这是汽车,他自己就会去学,哪些东西是轮子,哪些东西是车盖,哪些东西是后视镜,它会自己注意到这些部位,这是它比较强的一个地方,对吧?但是呢,带来的一个问题就是说它很黑盒。非常黑盒,就是大家都说深度学习就是炼丹,就很黑盒,对吧,需要你很多的这个经验手段去尝试,你没有办法通过一些呃,就是科学依据去说它这个东西为什么会好,为什么会不好,很多时候你都在试。
26:01
但是好处呢,就是说对大家来说技术门槛没那么高了,对吧?呃,就相对来说比较简单吧,这是我们明天会给大家讲的那个内容。
我来说两句