自然语言处理——语言模型

news2025/6/9 20:42:59

语言模型

  • n元文法
  • 参数估计
  • 数据平滑方法
    • 加1法
  • 神经网络模型
    • 提出原因
    • 前馈神经网络(FNN)
    • 循环神经网络

n元文法

大规模语料库的出现为自然语言统计处理方法的实现提供了可能,统计方法的成功应用推动了语料库语言学的发展。
语句 𝑠 = 𝑤 1 𝑤 2 … 𝑤 𝑚 𝑠=𝑤_1𝑤_2…𝑤_𝑚 s=w1w2wm的先验概率

  • p ( s ) = p ( w 1 ) × p ( w 2 ∣ w 1 ) p(s)=p(w_1) \times p(w_2|w_1) p(s)=p(w1)×p(w2w1)
  • p ( s ) = p ( w 1 ) × p ( w 2 ∣ w 1 ) × p ( w 3 ∣ w 1 w 2 ) p(s)=p(w_1) \times p(w_2|w_1) \times p(w_3|w_1w_2) p(s)=p(w1)×p(w2w1)×p(w3w1w2)
  • p ( s ) = p ( w 1 ) × p ( w 2 ∣ w 1 ) × p ( w 3 ∣ w 1 w 2 ) × ⋯ × p ( w m ∣ w 1 … w m − 1 ) p(s)=p\left(w_{1}\right) \times p\left(w_{2} \mid w_{1}\right) \times p\left(w_{3} \mid w_{1} w_{2}\right) \times \cdots \times p\left(w_{m} \mid w_{1} \ldots w_{m-1}\right) p(s)=p(w1)×p(w2w1)×p(w3w1w2)××p(wmw1wm1)

𝑤 𝑖 𝑤_𝑖 wi 可以是字、词、短语或词类等,统称为统计基元。通常以“词”(token)代之; 𝑤 𝑖 𝑤_𝑖 wi 的概率取决于 𝑤 1 𝑤_1 w1,…, 𝑤 𝑖 − 1 𝑤_{𝑖−1} wi1,条件序列 𝑤 1 𝑤_1 w1,…, 𝑤 𝑖 − 1 𝑤_{𝑖−1} wi1 称为 𝑤 𝑖 𝑤_𝑖 wi 的历史。

随着历史基元数量的增加,不同的“历史”组合构成的路径数量指数级增长。对于第𝑖(𝑖 > 1)个统计基元,历史基元的个数为𝑖−1,如果共有𝐿个不同的基元,如词汇表,理论上每一个单词都有可能出现在1到𝑖 −1的每一个位置上,那么,𝑖基元就有 𝐿 𝑖 − 1 𝐿^{𝑖−1} Li1 种不同的历史组合。我们必须考虑在所有𝐿𝑖−1种不同的历史条件下产生第𝑖个基元的概率。那么,对于长度为𝑚的句子,模型中有 𝐿 𝑚 𝐿^𝑚 Lm个自由参数 p ( w m ∣ w 1 … w m − 1 ) p\left(w_{m} \mid w_{1} \ldots w_{m-1}\right) p(wmw1wm1),如果L=6763,m=3,自由参数的数目为 3.09 × 10 11 3.09\times10^{11} 3.09×1011,这是一个很大的问题。

解决方案:设法减少历史基元的个数,将 𝑤 1 , 𝑤 2 , … , 𝑤 𝑖 − 1 𝑤_1,𝑤_2,…,𝑤_{𝑖−1} w1,w2,,wi1映射到等价类S( 𝑤 1 , 𝑤 2 , … , 𝑤 𝑖 − 1 ) 𝑤_1,𝑤_2,…,𝑤_{𝑖−1)} w1,w2,,wi1),使等价类的数目远远小于原来不同历史基元的数目。

那么如何划分等价类呢?将两个历史映射到同一个等价类,当且仅当这两个历史中的最近𝑛−1个基元相同,即:
在这里插入图片描述

这种计算语言(通常指句子)概率的模型称为语言模型(language model)。由于通常只考虑历史基元与当前词构成𝑛元词序列(即只考虑前𝑛−1个词的历史情况),因此这种模型又称为n
元文法模型(n-gram model)。𝑛为整数,通常𝑛=1~5。

  • 当𝑛=1时,出现在第𝑖位置上的基元𝑤𝑖独立于历史,称为一元文法,记作uni-gram或monogram;
  • 当𝑛=2时,出现在第𝑖位置上的基元𝑤i只与𝑖−1位置上的基元相关,称为2元文法(2-gram或bi-gram)。2元文法序列又被称为1阶马尔可夫链,2元文法很常见
  • 当𝑛=3时,出现在第𝑖位置上的基元𝑤i与𝑖−2和𝑖−1位置上的基元相关,称为三元文法(3-gram或tri-gram)。三元文法序列又被称为2阶马尔可夫链。

为了保证条件概率在𝑖 = 1时有意义,同时保证句子内所有字符串的概率为1,即 ∑ s p ( s ) = 1 \sum_sp(s)=1 sp(s)=1,可以在句子首尾两端增加两个标志: < B O S > 𝑤 1 𝑤 2 ⋯ 𝑤 𝑚 < E O S > <BOS>𝑤_1𝑤_2⋯𝑤_𝑚<EOS> <BOS>w1w2wm<EOS>

参数估计

收集、标注大规模样本,我们称其为训练数据/语料,利用最大似然估计(maximum likelihood evaluation, MLE) 方法计算概率。

p ( w i ∣ w i − n + 1 i − 1 ) = f ( w i ∣ w i − n + 1 i − 1 ) = c ( w i − n + 1 i ) ∑ w i c ( w i − n + 1 i ) p\left(w_{i} \mid w_{i-n+1}^{i-1}\right)=f\left(w_{i} \mid w_{i-n+1}^{i-1}\right)=\frac{c\left(w_{i-n+1}^{i}\right)}{\sum_{w_{i}} c\left(w_{i-n+1}^{i}\right)} p(wiwin+1i1)=f(wiwin+1i1)=wic(win+1i)c(win+1i)

举个简单的例子:
在这里插入图片描述

数据平滑方法

定义:调整最大似然估计的概率值,使零概率增值,使非零概率下调,“劫富济贫”,消除零概率,改进模型的整体正确率。

目标是为了让测试样本的语言模型困惑度越小越好。

平滑的n-gram概率为 p ( w i ∣ w i − n + 1 i − 1 ) p\left(w_{i} \mid w_{i-n+1}^{i-1}\right) p(wiwin+1i1),句子𝑠的概率为: p ( s ) = ∏ i = 1 m + 1 p ( w i ∣ w i − n + 1 i − 1 ) p(s)=\prod_{i=1}^{m+1} p\left(w_{i} \mid w_{i-n+1}^{i-1}\right) p(s)=i=1m+1p(wiwin+1i1)

假定测试语料𝑇由 𝑙 𝑇 𝑙_𝑇 lT个句子构成:( s 1 , s 2 . . . s l T s_1,s_2...s_{l_T} s1,s2...slT),共含有 w T w_T wT个词,那么整个测试集的概率为: p ( T ) = ∏ i = 1 l T p ( s i ) p(T)=\prod_{i=1}^{l_{T}} p\left(s_{i}\right) p(T)=i=1lTp(si)

困惑度可以定义为: P P P ( T ) = 2 − 1 w T log ⁡ 2 p ( T ) P P_{P}(T)=2^{-\frac{1}{w_{T}} \log _{2} p(T)} PPP(T)=2wT1log2p(T) ,不难看出,P(T)越接近0,困惑度会特别大。n-gram对于英语文本的困惑度范围一般为10~1000,语言模型设计的任务就是寻找困惑度最小的模型,使其最接近真实的语言。

加1法

基本思想: 每一种情况出现的次数加1。

例如,对于 uni-gram,设 𝑤 1 , 𝑤 2 , 𝑤 3 𝑤_1,𝑤_2,𝑤_3 w1,w2,w3三个词, 𝑤 1 𝑤_1 w1出现1次, 𝑤 2 𝑤_2 w2出现0次, w 3 w_3 w3出现两次,概率分别为:1/3,0,2/3,加1后情况就变为: 2/6,1/6,3/6

对于二元文法有:

p ( w i ∣ w i − 1 ) = 1 + c ( w i − 1 w i ) ∑ w i [ 1 + c ( w i − 1 w i ) ] = 1 + c ( w i − 1 w i ) ∣ V ∣ + ∑ w i c ( w i − 1 w i ) \begin{aligned} p\left(w_{i} \mid w_{i-1}\right) & =\frac{1+c\left(w_{i-1} w_{i}\right)}{\sum_{w_{i}}\left[1+c\left(w_{i-1} w_{i}\right)\right]} \\ & =\frac{1+c\left(w_{i-1} w_{i}\right)}{|V|+\sum_{w_{i}} c\left(w_{i-1} w_{i}\right)}\end{aligned} p(wiwi1)=wi[1+c(wi1wi)]1+c(wi1wi)=V+wic(wi1wi)1+c(wi1wi)

在前面的例题中,原来的概率存在0值:
在这里插入图片描述
同样我们还可以求到句子“John read a book”的概率,计算过程如下所示:
在这里插入图片描述
在这里插入图片描述

神经网络模型

提出原因

首先我们来回顾一下上文提出的n-gram,假设现在有一个句子“这本小说很枯燥,读起来很乏味。”主要会存在以下两个问题:
在这里插入图片描述
我们来分析一下原因:在n元文法中,“词”以词形本身表示,是离散的符号,这等价于one-hot 向量,这会导致任意两个词之间的相似度都为0。维度太高!
在这里插入图片描述
我们需要连续空间的分布式表示赋予词向量!
在这里插入图片描述

前馈神经网络(FNN)

FNN是最早发明的简单人工神经网络,也经常被称为多层感知(Multi-Layer Perceptron, MLP)。前馈网络中各个神经元按接收信息的先后分为不同的组,每一组可以看作一个神经层,每一层中的神经元接收前一层神经元的输出,并输出到下一层神经元,整个网络中的信息是朝一个方向传播,没有反向的信息传播,可以看作是一个有向的无环图。在这里插入图片描述
网络表示:𝐿为神经网络的层数;𝑀𝑙为第𝑙层的神经元个数;𝑓𝑙(∙)为第𝑙层神经元的激活函数;
参数学习:确定网络中所有的𝑾和b

基于反向传播(Back Propagation)算法的随机梯度下降参数训练过程
在这里插入图片描述
关于词向量的表示,也就是图中的 L T L_T LT,通常先随机初始化,然后通过目标函数优化词的向量表示(如最大化语言模型似然度)。
在这里插入图片描述
V表示训练集中的词个数,如果训练集很庞大,可以考虑取前V个频率最高的词。
D则表示词向量的维度,一般来说词向量维度越大,模型效果会更好,当然训练难度也会加大。

在这里插入图片描述

  • Softmax 回归(regression) 也称为多项(Multinomial) 或多类(MultiClass) 的Logistic回归,是Logistic回归在多分类问题上的推广,它也可以看作是一种条件最大熵模型。
  • 对于多类问题,类别标签$𝑦∈ 1,2, ⋯,𝐶 $可以有𝐶个取值,给定一个样本𝒙, Softmax回归预测的属于类别𝑐的条件概率为:
    p ( y = c ∣ x ) = Softmax ⁡ ( w c T x ) = exp ⁡ ( w c T x ) ∑ c ′ = 1 C exp ⁡ ( w c ′ T x ) \begin{aligned} p(y=c \mid \boldsymbol{x}) & =\operatorname{Softmax}\left(\boldsymbol{w}_{c}^{T} \boldsymbol{x}\right) \\ & =\frac{\exp \left(\boldsymbol{w}_{c}^{T} \boldsymbol{x}\right)}{\sum_{c^{\prime}=1}^{C} \exp \left(\boldsymbol{w}_{c^{\prime}}^{T} \boldsymbol{x}\right)}\end{aligned} p(y=cx)=Softmax(wcTx)=c=1Cexp(wcTx)exp(wcTx)
    其中, 𝒘 𝑐 𝒘_𝑐 wc是第𝑐类的权重向量

举个例子来看,我们给出 L T L_T LT和输入词串:
在这里插入图片描述
暂时不考虑偏置b,分三步进行计算。
在这里插入图片描述
再得到最后的结果向量(0.38,0.44 ) T )^T )T后经过tanh激活函数:
在这里插入图片描述
最后我们得到的向量和原来的 L T L_T LT进行处理,再送入softmax找到概率最大的一项,如此就可以找到出现概率最大的词了。
在这里插入图片描述
问题

  • 仅对小窗口的历史信息进行建模
  • n-gram语言模型仅考虑前面𝑛−1个词的历史信息

我们需要一种对所有的历史信息进行建模的方法!

循环神经网络

在这里插入图片描述
输入:从开始到𝑡−1时刻的历史 𝒉 𝑡 − 1 𝒉_{𝑡−1} ht1;当前位置𝑡的词向量 𝒘 𝑡 𝒘_𝑡 wt
输出:到𝑡位置时的历史积累 𝒉 𝑡 𝒉_𝑡 ht及其该位置上词的概率
模型训练时需要保证当前词的概率最大
在这里插入图片描述
举个例子:以“这本书很好看”为例
在这里插入图片描述
问题梯度消失或爆炸:参数W经过多次传递后有可能导致梯度消失(小于1)或者爆炸(大于1)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2405817.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库管理与高可用-MySQL高可用

目录 #1.1什么是MySQL高可用 1.1.1MySQL主主复制keepalivedhaproxy的高可用 1.1.2优势 #2.1MySQL主主复制keepalivedhaproxy的实验案例 1.1什么是MySQL高可用 MySQL 高可用是指通过技术手段确保 MySQL 数据库在面临硬件故障、软件错误、网络中断、人为误操作等异常情况时&…

免费工具-微软Bing Video Creator

目录 引言 一、揭秘Bing Video Creator 二、轻松上手&#xff1a;三步玩转Bing Video Creator 2.1 获取与访问&#xff1a; 2.2 创作流程&#xff1a; 2.3 提示词撰写技巧——释放AI的想象力&#xff1a; 三、核心特性详解&#xff1a;灵活满足多样化需求 3.1 双重使用模…

【笔记】解决MSYS2安装后cargo-install-update.exe-System Error

#工作记录 cargo-install-update.exe-System Error The code execution cannot proceed because libgit2-1.9.dll wasnot found. Reinstalling the program may fix this problem. …

银行卡二三四要素实名接口如何用PHP实现调用?

一、什么是银行卡二三四要素实名接口 输入银行卡卡号、姓名、身份证号码、手机号&#xff0c;验证此二三四要素是否一致。 二、核心价值 1. 提升风控效率 通过实时拦截冒用身份开户&#xff0c;银行卡二三四要素实名接口显著降低了人工审核成本&#xff0c;效率提升50%以上…

itvbox绿豆影视tvbox手机版影视APP源码分享搭建教程

我们先来看看今天的主题&#xff0c;tvbox手机版&#xff0c;然后再看看如何搭建&#xff1a; 很多爱好者都希望搭建自己的影视平台&#xff0c;那该如何搭建呢&#xff1f; 后端开发环境&#xff1a; 1.易如意后台管理优化版源码&#xff1b; 2.宝塔面板&#xff1b; 3.ph…

网页抓取混淆与嵌套数据处理流程

当我们在网页抓取中&#xff0c;遇到混淆和多层嵌套的情况是比较常见的挑战。混淆大部分都是为了防止爬虫而设计的&#xff0c;例如使用JavaScript动态加载、数据加密、字符替换、CSS偏移等。多层嵌套则可能是指HTML结构复杂&#xff0c;数据隐藏在多层标签或者多个iframe中。 …

高性能MYSQL:复制同步的问题和解决方案

一、复制的问题和解决方案 中断MySQL的复制并不是件难事。因为实现简单&#xff0c;配置相当容易&#xff0c;但也意味着有很多方式会导致复制停止&#xff0c;陷入混乱并中断。 &#xff08;一&#xff09;数据损坏或丢失的错误 由于各种各样的原因&#xff0c;MySQL 的复制…

大话软工笔记—架构模型

1. 架构模型1—拓扑图 &#xff08;1&#xff09;拓扑图概念 拓扑图&#xff0c;将多个软件系统用网络图连接起来的表达方式。 &#xff08;2&#xff09;拓扑图分类 总线型结构 比较普遍采用的方式&#xff0c;将所有的系统接到一条总线上。 星状结构 各个系统通过点到…

javaweb -html -CSS

HTML是一种超文本标记语言 超文本&#xff1a;超过了文本的限制&#xff0c;比普通文本更强大&#xff0c;除了文字信息&#xff0c;还可以定义图片、音频、视频等内容。 标记语言&#xff1a;由标签"<标签名>"构成的语言。 CSS:层叠样式表&#xff0c;用于…

spring task定时任务快速入门

spring task它基于注解和配置&#xff0c;可以轻松实现任务的周期性调度、延迟执行或固定频率触发。按照我们约定的时间自动执行某段代码。例如闹钟 使用场景 每月还款提醒&#xff0c;未支付的订单自动过期&#xff0c;收到快递后自动收货&#xff0c;系统自动祝你生日快乐等…

搭建nginx的负载均衡

1、编写一个configMap的配置文件 events {worker_connections 1024; # 定义每个worker进程的最大连接数 }http {# 定义通用代理参数&#xff08;替代proxy_params文件&#xff09;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-F…

Appium+python自动化(八)- 认识Appium- 下章

1、界面认识 在之前安装appium的时候说过我们有两种方法安装&#xff0c;也就有两种结果&#xff0c;一种是有界面的&#xff08;客户端安装&#xff09;&#xff0c;一种是没有界面的&#xff08;终端安装&#xff09;&#xff0c;首先我们先讲一下有界面的&#xff0c;以及界…

LabVIEW的MathScript Node 绘图功能

该VI 借助 LabVIEW 的 MathScript Node&#xff0c;结合事件监听机制&#xff0c;实现基于 MathScript 的绘图功能&#xff0c;并支持通过交互控件自定义绘图属性。利用 MathScript 编写脚本完成图形初始化&#xff0c;再通过LabVIEW 事件结构响应用户操作&#xff0c;动态修改…

每日Prompt:治愈动漫插画

提示词 现代都市治愈动漫插画风格&#xff0c;现代女子&#xff0c;漂亮&#xff0c;长直发&#xff0c;20岁&#xff0c;豆沙唇&#xff0c;白皙&#xff0c;气质&#xff0c;清纯现代都市背景下&#xff0c;夕阳西下&#xff0c;一位穿着白色露脐短袖&#xff0c;粉色工装裤…

6.8 note

paxos算法_初步感知 Paxos算法保证一致性主要通过以下几个关键步骤和机制&#xff1a; 准备阶段 - 提议者向所有接受者发送准备请求&#xff0c;请求中包含一个唯一的编号。 - 接受者收到请求后&#xff0c;会检查编号&#xff0c;如果编号比它之前见过的都大&#xff0c;就会承…

面试心得 --- 车载诊断测试常见的一些面试问题

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…

跟进一下目前最新的大数据技术

搭建最新平台 40C64G服务器&#xff0c;搭建3节点kvm&#xff0c;8C12G。 apache-hive-4.0.1-bin apache-tez-0.10.4-bin flink-1.20.1 hadoop-3.4.1 hbase-2.6.2 jdk-11.0.276 jdk8u452-b09 jdk8终于可以不用了 spark-3.5.5-bin-hadoop3 zookeeper-3.9.3 trino…

系统模块与功能设计框架

系统模块与功能设计框架&#xff0c;严格遵循专业架构设计原则&#xff0c;基于行业标准&#xff08;如微服务架构、DDD领域驱动设计&#xff09;构建。设计采用分层解耦模式&#xff0c;确保可扩展性和可维护性&#xff0c;适用于电商、企业服务、数字平台等中大型系统。 系统…

我爱学算法之—— 前缀和(中)

一、724. 寻找数组的中心下标 题目解析 这道题&#xff0c;给定数组nums&#xff0c;要求我们找出这个数组的中心下标。 **中心下标&#xff1a;**指左侧所有元素的和等于右侧所有元素的和。 如果存在多个中心数组下标&#xff0c;就返回最左侧的中心数组下标。 算法思路 暴…

Elasticsearch从安装到实战、kibana安装以及自定义IK分词器/集成整合SpringBoot详细的教程ES(三)

DSL官方地址&#xff1a; DSL查询分类 Elasticsearch提供了基于JSON的DSL&#xff08;https://www.elastic.co/docs/explore-analyze/query-filter/languages/querydsl&#xff09;来定义查询。常见的查询类型包括&#xff1a; 查询所有&#xff1a;查询出所有数据&#xff0…