心法利器[2] | 统计语言模型使用反思

 

【前沿重器】

全新栏目,本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有

往期回顾

前段时间讨论过最经典的统计语言模型,在近期也尝试使用了这个,这次因为问题本身的一些实际情况最终在选型上选择了比较适合的统计语言模型,效果终究能调整的比较满意,但是的确发现了很多统计语言模型的一些固有特定和问题,特此总结一下,下次有机会还会使用,也更有经验了吧。

有关统计语言模型,可以看看我之前的文章:NLP.TM[36] | NLP之源:n-gram语言模型

先聊优点

任务的具体的场景就先不聊了,具体选择他说的核心原因就是他对位点下上下文理解,也就是这个条件概率所特有的明确的可解释性。那么在项目之后,我也对这个预判有了更明确清晰的理解:

  • 简单高效。计算的复杂度并不高,训练过程其实只是计算统计量,速度很快,一般能在几分钟内就完成,预测阶段的速度自然也没什么问题,这块风险非常低。

  • 可解释可控。计算的结果非常可解释,其实就是上下文下的一个条件概率,因此要对模型进行调整,直接干预就好了。

  • 工具现成。kenlm值得拥有,c++的原生接口,python则是在c++的基础上包了一层,只是预测的话python足够,训练的话则需要c++自己编译,看着麻烦,熟练以后自己建个docker自己倒腾就好了

  • 高频case处理的很好。毕竟是基于统计概率的方法,所以对涉及高频样本的分析,效果非常好。

再聊缺点

优点说完了,该开始说缺点。优点明确,缺点其实也非常明显,也是后续word2vector、ELMO、BERT其实都是在这些问题上进行了改进,我展开聊。

第一,统计语言模型所体现的一些语义和推理其实只是文本上的匹配结果,“香蕉是一种水果”其实很好理解,但是在这个语句的基础上很难得到“苹果也是一种水果”的信息,只有将后者真正输入到模型这个知识才会被体现。

第二,长句信息明确被丢失。由于严格的N-gram存在,超出N范围的信息关联非常明确地会被丢失,举例“一吨等于多少斤”,这个“吨”和“斤”的匹配信息在N<5的情况下是无法关联的,根据概率很可能就是"一顿等于多少斤"的困惑度更高了,如果是有更长记忆的信息,那模型其实应该对这个“吨”和“斤”的关系有足够的理解,从而可以推理出这其中的语义信息。

第三,样本依赖。样本依赖本身是一个非常模糊的问题,主要涵盖了下面2个点:

  • 样本量的需求,即需要多少样本来训练才比较合适。

  • 需要什么样的样本。很简单的道理,极端情况,1个亿条文本,如果全都是一样的,那这个样本其实也是没用的。我们实际上需要的是多样的、尽可能准确的数据才能训练有效的模型。

那么在这里,统计语言模型在样本依赖上就有如下问题:

  • 需要重复样本,这点会大大增加对样本量的需求,这个的核心原因在于对参数估计上,使用统计的方式进行参数估计是必须要足够多的数据才能够支撑这个条件概率足够准确。

  • 相似多样的样本。如上面第一点提到的,在“香蕉是一种水果”下无法推断出“苹果也是一种水果”,因此我们需要增加“苹果也是一种水果”的样本。

  • 多样性问题。与上面不同,由于模型缺乏推断能力,所以OOV问题的处理能力非常差,只有真的让样本覆盖了这个效果才会有效。

第四,也是最为致命的。无法存储足够多足够有深度的语义信息,这让模型失去了泛化能力、推断能力。哪怕是word2vector,他也会把各个字词进行向量化抽象化,映射到特定的语义空间,给予“苹果”和“香蕉”相似的向量来表现他们的相似性,从而进行推断和预测,但是这种信息在统计语言模型中只能依靠频次来衡量,但凡有高频水果和低频水果的区分,如“苹果”和“树菠萝”之类的对比,统计语言模型根本无法发现或者表达它们两者的相似性。

小结

我感觉很多人可能会觉得我很鄙视高端的模型,其实并非如此,只是我明白手里工具多起来后,需要因地制宜,合理选择使用多个工具,一般考虑的几个核心点不是模型的优点,而是现实场景的使用需求:

  • 性能要求,速度、内存。

  • 工程难度,要求开发尽可能快速,同时上线后,模型效果要尽可能可控,甚至可干预。

  • 项目开展,要考虑风险,费劲弄了个大模型效果不见得好,很可能要大幅度延期。

上面的问题其实完全不在模型本身,而是现实要求就需要我们先用简单模型来做尝试,不是大模型不会而是小模型更加稳定可控,我自己角度出发,我深知好模型的优点,我也想去用,但问题就在于很多场景其实并不允许我们直接就用,所以只能搁置。

不是说大模型我就不用了,我们都知道他们好,我们后续会在有需要的时候,直接升级到这些模型上:

  • 明确知道当前策略的上限。

  • 浅层或者简单模型无法解决,而高级膜性能解决这类问题。

除非,我们有能力、有把握第一版就开始整这些复杂的,或者这种复杂的在我们看来已经“不复杂”的时候,我们就会开始用这些模型,而到了那个时候,这些高级模型,也就不高级了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值