面向超长高低文-大言语模型架构优化综述
的降生,让基于Transformer的大型言语模型(LLM)为通用人工智能(AGI)铺开了一条反派性的路途,并在常识库、人机交互、机器人等多个畛域失掉运行。但是,目前存在一个普遍的限度:由于资源受限,以后大多LLM关键是在较短的文本上启动预训练,造成它们在较长高低文方面的体现较差,而长高低文在事实环球的环境中是愈加经常出现的。
最近的一篇综述论文对此启动了片面的调研,作者重点关注了基于Transformer的LLM模型体系结构在从预训练到推理的一切阶段中优化长高低文才干的停顿。
论文链接:
论文首先剖析了经常使用以后基于Transformer的模型处置长高低文输入和输入的疑问。而后,提供了一个片面的分类体系,以指点Transformer架构更新的畛域,来处置这些疑问。作者对长高低文LLM宽泛经常使用的评价需求启动了调研,包括数据集、度量规范和基准模型,以及一些令人惊奇的优化工具包,如库、系统和编译器,以增强LLM在不同阶段的效率和效用。最后,文章进一步讨论了这一畛域未来钻研的关键应战和潜在方向。作者还建设了一个仓库,汇总了关系文献,并提供实时更新。
综述概览
文章从基本的言语建模指标(第2.1节)开局,内容涵盖从典型的建模阶段到在基于Transformer的仅解码LLM中找到的关键架构模块,如图1(a)所示。随后,作者对LLM在遇到裁减高低文窗口时的架构限度启动了简明剖析(第2.2节)。最后提出了一个片面的方法论分类法(第2.3节),旨在经过架构翻新增强LLM的长高低文才干(见图1(b))。这个分类法作为文章的第3、4、5、6、7节的指南。
图1:文章外围概述:(a)现代基于Transformer的仅解码LLMs的典型架构解剖图,右上角有图例;(b)用于增强Transformer架构模块的方法论分类法(与(a)相对应的色彩):高效留意力(留意力外围的子模块),常年记忆(针对KV缓存),外推性PEs(针对位置嵌入模块),高低文处置(与高低文预/后处置无关)和杂项(整个解码器块以及损失模块通用)。
长高低文,目前有哪些难点待打破?
留意力复杂度。在典型状况下L≫d,MHA的计算复杂性可以繁复总结如下:它触及O(L2d)的时期复杂度,包括QKV投影的O(Ld2),计算P的O(L2d),经过softmax运算失掉A的O(L2),A与V相乘的O(L2d),以及输入投影O的O(Ld2)。它还发生O(L2)的空间复杂度,包括Q、K、V、O的嵌入的O(Ld),以及额外的O(L2)缓冲区用于存储权重P和A。因此,随着序列长度的参与,时期和空间计算老本都呈二次参与,这关于训练和推理或许都是惨重的。
高低文记忆。LLM缺乏显式的记忆机制,齐全依赖KV缓存来存储列表中一切先前token的示意。这种设计一旦在一个调用中成功查问,Transformer在后续的调用中不会保管或召回任何先前的形态或序列,除非整个历史记载一一token从新加载到KV缓存中。因此,Transformer在每个调用中仅具有一个高低文上班记忆,而不是像长短时记忆(LSTM)这样的外在记忆机制。这种有形态性在并行性方面提供了计算长处,但在聊天机器人运行等须要常年记忆保管的义务中的应战很清楚。
最大长度解放。在训练阶段,工程师通常须要确定一个关键的超参数max-length,本文中示意为L_max。这个超参数代表了批次中任何训练样本的序列长度的下限,通常依据可用的计算资源设置为1k、2k或4k,以防止在GPU上出现内存溢出(OOM)失误。在推理阶段,LLM的服务提供者还必定限度用户揭示的长度或智能截断它们以与预约义的L_max对齐,即使推理资源通常比训练阶段更丰盛。须要留意的是Transformer的任何模块在实质上都不须要这样的限度,由于一切学习的权重仅依赖于维度大小。因此,通常上只需资源足够,Transformer可以处置恣意长度的序列。但是,以后的言语模型在处置超越L_max的输入序列时通常体现出清楚的性能降低,经常造成重复和不实际践的输入。
改良的新方法
关于上述限度,有多种改良方法可以探求,例如在训练环节中缩小留意力复杂性、设计高效的记忆机制,以及增强长度外推的才干,该模型在短序列上启动训练,但在推理环节中对更长的序列启动测试。
因此,论文片面回忆了努力于改良LLM长高低文才干的各个阶段的最新方法,并将它们组织成一个一致的分类法,如图1(b)所示。详细而言,这些方法被分为五个关键的类别,如下:
高效留意力(论文第3节):这些方法并重于成功具有降低计算要求的高效留意力机制,甚至成功了线性复杂度。经过这样做,它们能够经过间接在预训练阶段参与L_max来推动LLM在推理时期的有效高低文长度边界。
常年记忆(论文第4节):为了处置高低文上班记忆的局限性,一些方法旨在设计明白的记忆机制,补偿LLM中缺乏高效和有效的常年记忆的无余。
外推性PEs(论文第5节):最新的钻研努力于经过改良现有位置编码打算的外推性能来增强LLM的长度泛化才干。
高低文处置(论文第6节):除了增强特定低级Transformer模块的方法外,一些方法触及对现成的LLM与额外的高低文预/后处置。这些方法确保每次调用LLM时输入一直满足最大长度要求,并经过引入多个调用开支打破高低文窗口限度。
杂项(论文第7节):讨论了各种普通且有价值的方法,这些方法不容易纳入前面四类,为推动LLM的长高低文才干提供了更宽泛的视角。
未来方向
论文的第3、4、5、6节中讨论了该畛域取得的清楚停顿,但依然存在一些应战。上方是对一些关键应战的讨论以及未来在增强基于Transformer的LLM的长高低文才干方面启动钻研和开发的潜在方向,重点关注架构的增强。
留意力Trade-off。在第3节,作者讨论了高效留意方法往往触及在坚持全尺度留意力依赖性(例如部分留意力)或经过近似留意力提高留意力分数精度以减轻规范留意内核的计算需求之间的巧妙掂量。但是,随着高低文的延伸,话语结构和互关系联的消息变得越来越复杂,须要捕捉全局、长距离的依赖性,同时坚持准确的关系性。
处置这一应战须要在计算效率和尽或许保管留意形式精度之间找到最佳平衡。因此,在长高低文LLM畛域,这依然是一个继续谋求的指标。最近的翻新如FlashAttention,探求了算法级别之外的IO感知处置打算,极大地提高了运转时和记忆开支的效率,而不会丢失留意精度。这是在实践运行中处置这个疑问的一个激动人心的潜在路径。此外,可以探求在「即插即用」代替打算中集成先前的高效战略,应用弱小的GPU内核编程工具(如CUDA)或更轻量级的Triton。
记忆效果和效率。正如在文章第2.1、2.2节中前面讨论的,作者曾经概述了由于缺乏明白的记忆机制,仅依赖高低文内上班记忆以及在延伸高低文交互时期KV缓存记忆消耗清楚参与而发生的限度。这些应战独特强调了在基于Transformer的LLM畛域须要更有效和高效的记忆机制。虽然第4节中引入了各种常年记忆机制,但它们遭到其复杂启示式设计引入的额外记忆开支的限度,因此随着时期的推移或许造成性能降低。为了处置这一应战,钻研人员可以从最近的停顿中吸取灵感,比如PagedAttention,研发更有效的记忆存储战略,增强读/写吞吐量。
长度外推开掘。在第5节中,作者对与基于Transformer的模型的长度外推关系的应战启动了彻底的剖析,重点关注了位置嵌入的普遍设计。文章提供了对最近打破的片面概述,特意是运行于RoPE的裁减战略,作者置信这在处置外推限度方面具有关键的前景。值得留意的是,这些提高往往依赖于对复杂高维位置嵌入属性的简化观察,并蕴含便捷的启示式调整。作者对经常使用高维嵌入来建模序列性的通常基础提出质疑,并探求在这些启示式设计的指点下疏导具有许多超参数的可学习嵌入的潜在复苏。作者以为未来的钻研应该深化讨论这一畛域,尤其是在Transformer设置下为建模序列性开发强健的通常框架方面,比如CLEX所成功的内容。
特定但通用指标。前文曾经为长文本建模量身定制的详细指标做了讨论,但值得留意的是,许多指标仅限于某些类型的义务,或许仅与MLM指标兼容,而不是如今更普遍的CLM指标。这突显了须要特定但普遍实用的因果言语建模指标,可以在模型训练的早期有效捕捉长距离依赖性。经过与先前提到的指标相分歧,这是或许成功的。
牢靠的度量需求。在评价度量方面,文章的第8节中钻研了许多可选项。依据在评价中的先前阅历,罕用的度量,如ROUGE分数,与人类判别分数存在清楚差异,后者可以看作是「神谕」。随着LLM在事实环球场景中的极速部署,越来越迫切地须要更牢靠的度量来评价长高低文才干,特意是在生成性义务中,其中准确的实在性难以捉摸。一个有宿愿的路径触及应用最先进的LLM(如GPT4)的鲁棒性作为人类评审的代替,虽然关系的高老本依然在更宽泛地在钻研界中驳回方面带来应战。
更多钻研细节,可参见原论文。
NLP基础知识和综述
一种流行的自然语言处理库、自带语料库、具有分类,分词等很多功能,国外使用者居多,类似中文的jieba处理库
为单词序列分配概率的模型就叫做语言模型。
通俗来说, 语言模型就是这样一个模型:对于任意的词序列,它能够计算出这个序列是一句话的概率。或者说语言模型能预测单词序列的下一个词是什么。
**n-gram Language Models **
N-gram模型是一种典型的统计语言模型(Language Model,LM),统计语言模型是一个基于概率的判别模型.统计语言模型把语言(词的序列)看作一个随机事件,并赋予相应的概率来描述其属于某种语言集合的可能性。给定一个词汇集合 V,对于一个由 V 中的词构成的序列S = ⟨w1, · · · , wT ⟩ ∈ Vn,统计语言模型赋予这个序列一个概率P(S),来衡量S 符合自然语言的语法和语义规则的置信度。用一句简单的话说,统计语言模型就是计算一个句子的概率大小的这种模型。
n-gram模型可以减轻单词序列没有在训练集中出现过而引起的问题,即数据稀疏问题
n-gram模型问题 对于n-gram模型的问题,这两页ppt说的很明白
N-gram模型基于这样一种假设,当前词的出现只与前面N-1个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积。这些概率可以通过直接从语料中统计N个词同时出现的次数得到。常用的是二元的Bi-Gram(N=2)和三元的Tri-Gram(N=3)-Gram所满足的假设是马尔科夫假设。
一般常用的N-Gram模型是Bi-Gram和Tri-Gram。分别用公式表示如下:
Bi-Gram:P(T)=p(w1|begin) p(w2|w1) p(w3|w2)***p(wn|wn-1)
Tri-Gram:P(T)=p(w1|begin1,begin2) p(w2|w1,begin1) p(w3|w2w1)***p(wn|wn-1,wn-2)
注意上面概率的计算方法:P(w1|begin)=以w1为开头的所有句子/句子总数;p(w2|w1)=w1,w2同时出现的次数/w1出现的次数。以此类推。
对于其中每项的计算举个例子:
N-gram存在的问题:
举一个小数量的例子进行辅助说明:假设我们有一个语料库(注意语料库),如下:
老鼠真讨厌,老鼠真丑,你爱老婆,我讨厌老鼠。
想要预测“我爱老”这一句话的下一个字。我们分别通过 bigram 和 trigram 进行预测。
1)通过 bigram,便是要对 P(w|老)进行计算,经统计,“老鼠”出现了3次,“老婆”出现了1次,通过最大似然估计可以求得P(鼠|老)=0.75,P(婆|老)=0.25, 因此我们通过 bigram 预测出的整句话为: 我爱老鼠。
2)通过 trigram,便是要对便是要对 P(w|爱老)进行计算,经统计,仅“爱老婆”出现了1次,通过最大似然估计可以求得 P(婆|爱 老)=1,因此我们通过trigram 预测出的整句话为: 我爱老婆。显然这种方式预测出的结果更加合理。
问题一:随着 n 的提升,我们拥有了更多的前置信息量,可以更加准确地预测下一个词。但这也带来了一个问题,当N过大时很容易出现这样的状况:某些n-gram从未出现过, 导致很多预测概率结果为0, 这就是稀疏问题。 实际使用中往往仅使用 bigram 或 trigram 。(这个问题可以通过平滑来缓解参考:)
问题二:同时由于上个稀疏问题还导致N-gram无法获得上下文的长时依赖。
问题三:n-gram 基于频次进行统计,没有足够的泛化能力。
n-gram总结:统计语言模型就是计算一个句子的概率值大小,整句的概率就是各个词出现概率的乘积,概率值越大表明该句子越合理。N-gram是典型的统计语言模型,它做出了一种假设,当前词的出现只与前面N-1个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积。它其中存在很多问题,再求每一个词出现的概率时,随着N的提升,能够拥有更多的前置信息量,可以使得当前词的预测更加准确,但是当N过大时会出现稀疏问题,导致很多词的概率值为0,为解决这一问题,因此常用的为bigram 或 trigram,这就导致N-gram无法获得上文的长时依赖。另一方面N-gram 只是基于频次进行统计,没有足够的泛化能力。
神经网络语言模型
2003年 Bengio 提出,神经网络语言模型( neural network language model, NNLM)的思想是提出词向量的概念,代替 ngram 使用离散变量(高维),采用连续变量(具有一定维度的实数向量)来进行单词的分布式表示,解决了维度爆炸的问题,同时通过词向量可获取词之间的相似性。
结合下图可知它所建立的语言模型的任务是根据窗口大小内的上文来预测下一个词,因此从另一个角度看它就是一个使用神经网络编码的n-gram模型。
它是一个最简单的神经网络,仅由四层构成,输入层、嵌入层、隐藏层、输出层。(从另一个角度看它就是一个使用神经网络编码的n-gram模型)
输入是单词序列的index序列,例如单词‘这’在字典(大小为∣V∣)中的index是10,单词‘是’的 index 是23,‘测’的 index 是65,则句子“这是测试”通过‘这是测’预测‘试’,窗口大小内上文词的index序列就是 10, 23, 65。嵌入层(Embedding)是一个大小为∣V∣×K的矩阵(注意:K的大小是自己设定的,这个矩阵相当于随机初始化的词向量,会在bp中进行更新,神经网络训练完成之后这一部分就是词向量),从中取出第10、23、65行向量拼成3×K的矩阵就是Embedding层的输出了。隐层接受拼接后的Embedding层输出作为输入,以tanh为激活函数,最后送入带softmax的输出层,输出概率,优化的目标是使得待预测词其所对应的softmax值最大。
缺点:因为这是通过前馈神经网络来训练语言模型,缺点显而易见就是其中的参数过多计算量较大,同时softmax那部分计算量也过大。另一方面NNLM直观上看就是使用神经网络编码的 n-gram 模型,也无法解决长期依赖的问题。
它是通过RNN及其变种网络来训练语言模型,任务是通过上文来预测下一个词,它相比于NNLM的优势在于所使用的为RNN,RNN在处理序列数据方面具有天然优势, RNN 网络打破了上下文窗口的限制,使用隐藏层的状态概括历史全部语境信息,对比 NNLM 可以捕获更长的依赖,在实验中取得了更好的效果。RNNLM 超参数少,通用性更强;但由于 RNN 存在梯度弥散问题,使得其很难捕获更长距离的依赖信息。
Word2vec中的CBOW 以及skip-gram,其中CBOW是通过窗口大小内的上下文预测中心词,而skip-gram恰恰相反,是通过输入的中心词预测窗口大小内的上下文。
Glove 是属于统计语言模型,通过统计学知识来训练词向量
ELMO 通过使用多层双向的LSTM(一般都是使用两层)来训练语言模型,任务是利用上下文来预测当前词,上文信息通过正向的LSTM获得,下文信息通过反向的LSTM获得,这种双向是一种弱双向性,因此获得的不是真正的上下文信息。
GPT是通过Transformer来训练语言模型,它所训练的语言模型是单向的,通过上文来预测下一个单词
BERT通过Transformer来训练MLM这种真正意义上的双向的语言模型,它所训练的语言模型是根据上下文来预测当前词。
以上部分的详细介绍在NLP之预训练篇中有讲到
语言模型的评判指标
具体参考:
Perplexity可以认为是average branch factor(平均分支系数),即预测下一个词时可以有多少种选择。别人在作报告时说模型的PPL下降到90,可以直观地理解为,在模型生成一句话时下一个词有90个合理选择,可选词数越少,我们大致认为模型越准确。这样也能解释,为什么PPL越小,模型越好。 一般用困惑度Perplexity(PPL)衡量语言模型的好坏,困惑度越小则模型生成一句话时下一个词的可选择性越少,句子越确定则语言模型越好。
简单介绍 Word2vec是一种有效创建词嵌入的方法,它自2013年以来就一直存在。但除了作为词嵌入的方法之外,它的一些概念已经被证明可以有效地创建推荐引擎和理解时序数据。在商业的、非语言的任务中。
背景 由于任何两个不同词的one-hot向量的余弦相似度都为0,多个不同词之间的相似度难以通过onehot向量准确地体现出来。 word2vec⼯具的提出正是为了解决上⾯这个问题。它将每个词表⽰成⼀个定⻓的向量,并使得这些向量能较好地表达不同词之间的相似和类⽐关系。
word2vec模型 word2vec⼯具包含了两个模型,即跳字模型(skip-gram)和连续词袋模型(continuous bag of words,CBOW)。word2vec的input/output都是将单词作为one-hot向量来表示,我们可以把word2vec认为是词的无监督学习的降维过程。
MaxEnt 模型(最大熵模型): 可以使用任意的复杂相关特征,在性能上最大熵分类器超过了 Byaes 分类器。但是,作为一种分类器模型,这两种方法有一个共同的缺点:每个词都是单独进行分类的,标记(隐状态)之间的关系无法得到充分利用,具有马尔可夫链的 HMM 模型可以建立标记之间的马尔可夫关联性,这是最大熵模型所没有的。
最大熵模型的优点:首先,最大熵统计模型获得的是所有满足约束条件的模型中信息熵极大的模型;其次,最大熵统计模型可以灵活地设置约束条件,通过约束条件的多少可以调节模型对未知数据的适应度和对已知数据的拟合程度;再次,它还能自然地解决统计模型中参数平滑的问题。
最大熵模型的不足:首先,最大熵统计模型中二值化特征只是记录特征的出现是否,而文本分类需要知道特征的强度,因此,它在分类方法中不是最优的;其次,由于算法收敛的速度较慢,所以导致最大熵统计模型它的计算代价较大,时空开销大;再次,数据稀疏问题比较严重。
CRF(conditional random field) 模型(条件随机场模型):首先,CRF 在给定了观察序列的情况下,对整个的序列的联合概率有一个统一的指数模型。一个比较吸引人的特性是其为一个凸优化问题。其次,条件随机场模型相比改进的隐马尔可夫模型可以更好更多的利用待识别文本中所提供的上下文信息以得更好的实验结果。并且有测试结果表明:在采用相同特征集合的条件下,条件随机域模型较其他概率模型有更好的性能表现。
CRF 可以用于构造在给定一组输入随机变量的条件下,另一组输出随机变量的条件概率分布模型。经常被用于序列标注,其中包括词性标注,分词,命名实体识别等领域。
建一个条件随机场,我们首先要定义一个特征函数集,每个特征函数都以整个句子s,当前位置i,位置i和i-1的标签为输入。然后为每一个特征函数赋予一个权重,然后针对每一个标注序列l,对所有的特征函数加权求和,必要的话,可以把求和的值转化为一个概率值。
CRF 具有很强的推理能力,并且能够使用复杂、有重叠性和非独立的特征进行训练和推理,能够充分地利用上下文信息作为特征,还可以任意地添加其他外部特征,使得模型能够 获取的信息非常丰富。
CRF 模型的不足:首先,通过对基于 CRF 的结合多种特征的方法识别英语命名实体的分析,发现在使用 CRF 方法的过程中,特征的选择和优化是影响结果的关键因素,特征选择问题的好与坏,直接决定了系统性能的高低。其次,训练模型的时间比 MaxEnt 更长,且获得的模型很大,在一般的 PC 机上无法运行。
潜在语义分析(Latent Semantic Analysis,LSA)模型 在潜在语义分析(LSA)模型首先给出了这样一个 ‘‘分布式假设” :一个 单词的属性是由它所处的环境刻画的。这也就意味着如果两个单词在含义上比较接近,那么它们也会出现在相似的文本中,也就是说具有相似的上下文。 LSA模型在构建好了单词-文档矩阵之后,出于以下几种可能的原因,我们会使用奇异值分解(Singular Value Decomposition,SVD) 的方法来寻找该矩阵的一个低阶近似。
概率潜在语义分析(Probability Latent Semantic Analysis ,PLSA)模型 概率潜在语义分析(PLSA)模型其实是为了克服潜在语义分析(LSA)模型存在的一些缺点而被提出的。LSA 的一个根本问题在于,尽管我们可以把 Uk 和 Vk 的每一列都看成是一个话题,但是由于每一列的值都可以看成是几乎没有限制的实数值,因此我们无法去进一步解释这些值到底是什么意思,也更无法从概率的角度来理解这个模型。 PLSA模型则通过一个生成模型来为LSA赋予了概率意义上的解释。该模型假设,每一篇文档都包含一系列可能的潜在话题,文档中的每一个单词都不是凭空产生的,而是在这些潜在的话题的指引下通过一定的概率生成的。
在 PLSA 模型里面,话题其实是一种单词上的概率分布,每一个话题都代表着一个不同的单词上的概率分布,而每个文档又可以看成是话题上的概率分布。每篇文档就是通过这样一个两层的概率分布生成的,这也正是PLSA 提出的生成模型的核心思想。
PLSA 通过下面这个式子对d和 w 的联合分布进行了建模:
该模型中的*z * 的数量是需要事先给定的一个超参数。需要注意的是,上面这 个式子里面给出了 P(w, d) 的两种表达方式,在前一个式子里, *d * 和 w 都是在给定 *z * 的前提下通过条件概率生成出来的,它们的生成方式是相似的,因此是 ‘‘对称’’ 的;在后一个式子里,首先给定d,然后根据 P(z|d) 生成可能的话题 z,然后再根据 P(w|z) 生成可能的单词 w,由于在这个式子里面单词和文档的生成并不相似, 所以是 ‘‘非对称’’ 的。
上图给出了 PLSA 模型中非对称形式的 Plate Notation表示法。其中d表示 一篇文档,z 表示由文档生成的一个话题,w 表示由话题生成的一个单词。 在这个模型中, d和w 是已经观测到的变量,而z是未知的变量(代表潜在的话题)。
容易发现,对于一个新的文档而言,我们无法得知它对应的 P(d) 究竟是什么, 因此尽管 PLSA 模型在给定的文档上是一个生成模型,它却无法生成新的未知的文档。该模型的另外的一个问题在于,随着文档数量的增加,P(z|d) 的参数也会随着线性增加,这就导致无论有多少训练数据,都容易导致模型的过拟合问题。这两点成为了限制 PLSA 模型被更加广泛使用的两大缺陷。
潜在狄利克雷分配(Latent Dirichlet Analysis , LDA)模型
为了解决 PLSA 模型中出现的过拟合问题,潜在狄利克雷分配(LDA)模型被 Blei 等人提出,这个模型也成为了主题模型这个研究领域内应用最为广泛的模 型。LDA就是在PLSA的基础上加层贝叶斯框架,即LDA就是PLSA的贝叶斯版本(正因为LDA被贝叶斯化了,所以才需要考虑历史先验知识,才加的两个先验参数)。
从上一节我们可以看到,在 PLSA 这个模型里,对于一个未知的新文档 d,我们对于 P(d) 一无所知,而这个其实是不符合人的经验的。或者说,它没有去使用本来可以用到的信息,而这部分信息就是 LDA 中所谓的先验信息。
具体来说,在 LDA 中,首先每一个文档都被看成跟有限个给定话题中的每一个存在着或多或少的关联性,而这种关联性则是用话题上的概率分布来刻画的, 这一点与 PLSA 其实是一致的。
但是在 LDA 模型中,每个文档关于话题的概率分布都被赋予了一个先验分布,这个先验一般是用稀疏形式的狄利克雷分布表示的。 这种稀疏形式的狄利克雷先验可以看成是编码了人类的这样一种先验知识:一般而言,一篇文章的主题更有可能是集中于少数几个话题上,而很少说在单独一篇文章内同时在很多话题上都有所涉猎并且没有明显的重点。
此外,LDA 模型还对一个话题在所有单词上的概率分布也赋予了一个稀疏形式的狄利克雷先验,它的直观解释也是类似的:在一个单独的话题中,多数情况是少部分(跟这个话题高度相关的)词出现的频率会很高,而其他的词出现的频率则明显较低。这样两种先验使得 LDA 模型能够比 PLSA 更好地刻画文档-话题-单词这三者的关系。
事实上,从 PLSA 的结果上来看,它实际上相当于把 LDA 模型中的先验分布转变为均匀分布,然后对所要求的参数求最大后验估计(在先验是均匀分布的前提下,这也等价于求参数的最大似然估计) ,而这也正反映出了一个较为合理的先验对于建模是非常重要的。
分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。 现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。 按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。
中文分词根据实现原理和特点,主要分为以下2个类别:
(1)基于词典分词算法 也称字符串匹配分词算法。该算法是按照一定的策略将待匹配的字符串和一个已建立好的“充分大的”词典中的词进行匹配,若找到某个词条,则说明匹配成功,识别了该词。常见的基于词典的分词算法分为以下几种:正向最大匹配法、逆向最大匹配法和双向匹配分词法等。 基于词典的分词算法是应用最广泛、分词速度最快的。很长一段时间内研究者都在对基于字符串匹配方法进行优化,比如最大长度设定、字符串存储和查找方式以及对于词表的组织结构,比如采用TRIE索引树、哈希索引等。
(2)基于统计的机器学习算法 这类目前常用的是算法是HMM、CRF(条件随机场)、SVM、深度学习等算法,比如stanford、Hanlp分词工具是基于CRF算法。以CRF为例,基本思路是对汉字进行标注训练,不仅考虑了词语出现的频率,还考虑上下文,具备较好的学习能力,因此其对歧义词和未登录词的识别都具有良好的效果。
常见的分词器都是使用机器学习算法和词典相结合,一方面能够提高分词准确率,另一方面能够改善领域适应性。
随着深度学习的兴起,也出现了 基于神经网络的分词器 ,例如有人员尝试使用双向LSTM+CRF实现分词器, 其本质上是序列标注 ,所以有通用性,命名实体识别等都可以使用该模型,据报道其分词器字符准确率可高达97.5%。算法框架的思路与论文《Neural Architectures for Named Entity Recognition》类似,利用该框架可以实现中文分词,如下图所示:
首先对语料进行字符嵌入,将得到的特征输入给双向LSTM,然后加一个CRF就得到标注结果。
目前中文分词难点主要有三个: 1、分词标准 :比如人名,在哈工大的标准中姓和名是分开的,但在Hanlp中是合在一起的。这需要根据不同的需求制定不同的分词标准。
2、歧义 :对同一个待切分字符串存在多个分词结果。 歧义又分为组合型歧义、交集型歧义和真歧义三种类型。
一般在搜索引擎中,构建索引时和查询时会使用不同的分词算法。常用的方案是,在索引的时候使用细粒度的分词以保证召回,在查询的时候使用粗粒度的分词以保证精度。
3、新词 :也称未被词典收录的词,该问题的解决依赖于人们对分词技术和汉语语言结构的进一步认识。
典型的文本分类过程可以分为三个步骤: 1. 文本表示(Text Representation) 这一过程的目的是把文本表示成分类器能够处理的形式。最常用的方法是向量空间模型,即把文本集表示成词-文档矩阵,矩阵中每个元素代表了一个词在相应文档中的权重。选取哪些词来代表一个文本,这个过程称为特征选择。常见的特征选择方法有文档频率、信息增益、互信息、期望交叉熵等等。为了降低分类过程中的计算量,常常还需要进行降维处理,比如LSI。 2. 分类器构建(Classifier Construction) 这一步骤的目的是选择或设计构建分类器的方法。不同的方法有各自的优缺点和适用条件,要根据问题的特点来选择一个分类器。我们会在后面专门讲述常用的方法。选定方法之后,在训练集上为每个类别构建分类器,然后把分类器应用于测试集上,得到分类结果。 3. 效果评估(Classifier Evaluation) 在分类过程完成之后,需要对分类效果进行评估。评估过程应用于测试集(而不是训练集)上的文本分类结果,常用的评估标准由IR领域继承而来,包括查全率、查准率、F1值等等。
1. Rocchio方法 每一类确定一个中心点(centroid),计算待分类的文档与各类代表元间的距离,并作为判定是否属于该类的判据。Rocchio方法的特点是容易实现,效率高。缺点是受文本集分布的影响,比如计算出的中心点可能落在相应的类别之外。
2. 朴素贝叶斯(naïve bayes)方法 将概率论模型应用于文档自动分类,是一种简单有效的分类方法。使用贝叶斯公式,通过先验概率和类别的条件概率来估计文档对某一类别的后验概率,以此实现对此文档所属类别的判断。
3. K近邻(K-Nearest Neightbers, KNN)方法 从训练集中找出与待分类文档最近的k个邻居(文档),根据这k个邻居的类别来决定待分类文档的类别。KNN方法的优点是不需要特征选取和训练,很容易处理类别数目多的情况,缺点之一是空间复杂度高。KNN方法得到的分类器是非线性分类器。
4. 支持向量机(SVM)方法 对于某个类别,找出一个分类面,使得这个类别的正例和反例落在这个分类面的两侧,而且这个分类面满足:到最近的正例和反例的距离相等,而且是所有分类面中与正例(或反例)距离最大的一个分类面。SVM方法的优点是使用很少的训练集,计算量小;缺点是太依赖于分类面附近的正例和反例的位置,具有较大的偏执。
文本聚类过程可以分为3个步骤: 1. 文本表示(Text Representation) 把文档表示成聚类算法可以处理的形式。所采用的技术请参见文本分类部分。 2. 聚类算法选择或设计(Clustering Algorithms) 算法的选择,往往伴随着相似度计算方法的选择。在文本挖掘中,最常用的相似度计算方法是余弦相似度。聚类算法有很多种,但是没有一个通用的算法可以解决所有的聚类问题。因此,需要认真研究要解决的问题的特点,以选择合适的算法。后面会有对各种文本聚类算法的介绍。 3. 聚类评估(Clustering Evaluation) 选择人工已经分好类或者做好标记的文档集合作为测试集合,聚类结束后,将聚类结果与已有的人工分类结果进行比较。常用评测指标也是查全率、查准率及F1值。
1.层次聚类方法 层次聚类可以分为两种:凝聚(agglomerative)层次聚类和划分(divisive)层次聚类。凝聚方法把每个文本作为一个初始簇,经过不断的合并过程,最后成为一个簇。划分方法的过程正好与之相反。层次聚类可以得到层次化的聚类结果,但是计算复杂度比较高,不能处理大量的文档。
2.划分方法 k-means算法是最常见的划分方法。给定簇的个数k,选定k个文本分别作为k个初始簇,将其他的文本加入最近的簇中,并更新簇的中心点,然后再根据新的中心点对文本重新划分;当簇不再变化时或经过一定次数的迭代之后,算法停止。k-means算法复杂度低,而且容易实现,但是对例外和噪声文本比较敏感。另外一个问题是,没有一个好的办法确定k的取值。
3.基于密度的方法 为了发现任意形状的聚类结果,提出了基于密度的方法。这类方法将簇看作是数据空间中被低密度区域分割开的高密度区域。常见的基于密度的方法有DBSCAN, OPTICS, DENCLUE等等。
4.神经网络方法 神经网络方法将每个簇描述为一个标本,标本作为聚类的原型,不一定对应一个特定的数据,根据某些距离度量,新的对象被分配到与其最相似的簇中。比较著名的神经网络聚类算法有:竞争学习(competitive learing)和自组织特征映射(self-organizing map)[Kohonen, 1990]。神经网络的聚类方法需要较长的处理时间和复杂的数据复杂性,所以不适用于大型数据的聚类。
流域水文模型综述?
当今社会科学技术发展越来越迅猛,人们对于数字化的要求也越来越高。 水文学作为一门历史悠久的学科也越来越趋向于数字化与定量化。 在这样的大背景下,水文模型则应运而生。 水文模型是在防洪与水利工程的实际运用和实践中逐渐发展起来的,它早期用于实时洪水与实时水位预报中。 现在,水文模型的作用范围更加广泛,它在防洪减灾、水库调度、生态环境需水、水资源开发利用、道路、城市规划、面源污染评价、人类活动的流域响应等诸多方面起到了不可或缺的重要作用。 因此,水文模型的研究已经成为水文学的热点问题。 并且相应于河口水文模型,山坡水文模型等其他水文模型而言,流域水文模型的研究更加具有实际意义。 1 定义 根据何长高,董增川等发表的论文,流域水文模拟是用数学的方法描述和模拟水文循环的过程,即将流域概化成一个系统,根据系统输入条件,对流域内发生的水文过程进行模拟计算,求解输出结果。 更进一步,流域水文模型就是用于流域水文模拟的这个系统。 流域水文模型是基于人们对客观世界的长期观测和理解认识所提出能够高度概化现实世界,并用于预测未来的工具。 2 基本架构 不管是何种流域水文模型,以机制为基础还是以模式为基础,流域水文模型都包含着几个必不可少的模型阶段,即坡面产流阶段,坡面汇流阶段和河网汇流阶段。 2.1 坡面产流阶段 1933年霍顿提出了超渗产流理论,相应在国外的产汇流计算中有了超渗产流机制。 霍顿提出:当雨强I大于下渗能力fp时,雨强一部分按照下渗能力fp下渗到土壤当中,另一部分产生地面径流rs;当雨强I小于下渗能力fp时,雨强按照其自身的强度全部下渗到土壤当中。 在实际的勘测与实践中,人们发现在植被覆盖良好,地表疏松的地方即使雨强I小于下渗能力fp,也会存在地面径流。 邓恩在六十年代提出了蓄满产流机制。 邓恩认为:土壤在垂直结构上并不是仅有一个层次,实际上土壤上层是有较大土壤颗粒的淋溶层,而土壤下层是有较小土壤颗粒的淀积层,这两层之间存在一个相对不透水层。 当雨强I小于下渗能力fp时,雨强会在相对不透水层上产生饱水带,随着饱水带厚度逐渐增加直至充满整个上土层,多余的水量会溢出产生地面径流。 超渗产流机制一般适用于包气带较厚,植被覆盖率较差的地区。 而蓄满产流机制则适用于湿润地区。 2.2 坡面汇流阶段 在坡面产流阶段,有的模型会通过两水源或是三水源划分出各径流成分的径流量,如新安江模型;另外一些则一开始就计算出了各径流成分的径流量,如SAC模型。 在坡面汇流常用的方法有单位线法和线性水库法。 单位线法有两个苛刻的假定,即倍比假定和叠加假定。 由于不能考虑降雨和下垫面的时空分布不均匀,使得该法推流的较大误差来源就来自于此。 单位线推流适用于短历时降雨,原因在于如果降雨时段增多,那么对于出流时洪水过程的划分就会相应的增加,计算过程变得麻烦而且计算结果也会变得不准确。 该方法由于测量误差会使单位线后部呈现锯齿形状,此时应该加入控制条件加以修正。 有时净雨时段长与单位线的时段长不一致还要进行单位线的时段转换。 单位线法目前已经是发展成熟的坡面汇流方法,因此被工作单位广泛的使用。 在新安江模型中,地下水的坡面汇流用的一般就是线性水库方法,实际上地面径流也是可以运用线性水库的。 根据不同径流成分的消退系数就可以得到各个径流成分的坡面汇流公式。 2.3 河槽汇流模型 河槽汇流主要有两种方法:一个是水文学方法,一个是水力学方法。 水文学方法主要运用水量平衡方程和槽蓄方程,另以圣维南方程组的简化形式为辅而得出结果,该方法的特点是物理概念性较强,常用的方法有马斯京根法和特征河长法。 而水力学方法主要是以圣维南方程组为基础的一系列河道演算方法,该方法的特点是中间断面的每一个过程都比较清晰,但是方程只能用数值解表示。 水文学方法不适用于流域下游受回水顶托的地方以及河网地区,但是水力学方法的圣维南方程组却可以在河网地区适用。 圣维南方程组是偏微分方程组,所以要引入差分格式来进行数值解代替解析解的计算。 常见的差分格式有蛙跳格式,中心差分格式等,其中普利斯曼隐式格式由于其差分的传播误差很小而广泛应用于水力学方法的计算中。 3 分类 按照模型构建有无物理基础来划分,流域水文模型可以分为物理模型,概念性模型和黑箱子模型。 完全物理化的模型的通用性非常好,这是水文工作者希望提出的理想化模型。 概念性模型就是模型中含有物理意义,但是又不是完全的遵循物理规律,需要提出一定的假设条件。 现在大多数发展起来的概念性模型有新安江模型,SAC模型,VIC模型等等。 黑箱子模型是一种完全没有物理背景的模型,它的大概模式就是:输入-运行-输出。 这样的模型大多数都是随机水文模型,比如BP人工神经网络模型,回归模型,模糊数学模型等等。 按照模型构建的尺度大小可以分为集总式模型和分布式模型。 集总式模型把流域当作一个整体来考虑,统一的进行分析和处理,它存在一个很大的问题,那就是忽略了下垫面和降雨的时空分布不均匀性。 随着科学技术的日益发展,学者们提出的分布式水文模型具有更高的精度。 分布式水文模型有效地解决了集总式模型忽略下垫面和降雨的时空分布不均匀性,它把流域划分成满足精度的网格,并且使用3s技术获取庞大的数据,使每一个单元网格上都有一个出流过程,最后再汇集成总的出流过程。 分布式水文模型还划分为松散耦合型分布式水文模型和紧密耦合型分布式水文模型。 典型的松散耦合型分布式水文模型有新安江模型为基础的分布式模型。 典型的紧密耦合型分布式水文模型TOPKAPI模型,SHE模型。 4 展望 4.1 模型尺度 不管是时间尺度还是空间尺度对于模型研究者来说都是难以把握的问题。 因为在不同时间尺度或是空间尺度的组合上水文情势如何发生变化是水文工作者无法预知的。 另外时间尺度与空间尺度如何耦合也是一个棘手的问题。 4.2 与其他学科的融合 水资源是地球上最庞大的自然资源之一,水文情势也与大气、土壤、植被等有着密切的联系。 因此水文学与其他学科的交叉研究就显得至关重要。 现在广泛研究的问题是气候变化对陆面水文过程的影响,但这是一个单向耦合过程,应该有进一步的研究探讨气候对于陆面过程的响应又是如何的。 在新安江模型中,土壤含水量的模拟对于蒸发和产流的计算影响也是很大的,这说明对于土壤的研究能更好的提高模型预测的精度。 在干旱研究中,归一化植被指数NDVI常作为干旱评估的指标,这也是学科交叉融合的实例。 综上所述,水文学与其他学科的交叉融合已经成为了一个新的待研究方向,其它学科的知识运用到水文中有很大可能出现新的突破。 更多关于工程/服务/采购类的标书代写制作,提升中标率,您可以点击底部官网客服免费咨询:
免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。