当前位置: 首页 > article >正文

如何理解语言模型

统计语言模型

先看语言模型,语言即自然语言,模型及我们要解决的某个任务。

  • 任务一:判断哪句话出现的概率大

  • 任务二:预判空缺的位置最有可能是哪个词

再看统计,统计即解决上述两个任务的解决方法。先对语句进行分词得到词序列,使用条件概率的链式法则,可以求出每一个词出现的概率,然后连乘,得出这句话的概率。对于任务二,判断每个词是空缺的概率最大。但是计算量非常大!

可以通过n元统计语言模型减少计算量。

如何计算?

image-20250224124348858

平滑策略

防止出现0比0的情况如卡普拉斯平滑策略:

总的来说,就是基于数学统计的方法,来计算概率。

神经网络语言模型

即使用神经网络的方法解决任务。

NNLM的基本原理

NNLM通过神经网络来学习词序列的概率分布,基本流程如下:

  1. 输入层: 输入层通常由一个词汇表的向量表示。对于一个给定的词序列,NNLM首先将每个词转化为一个稀疏的one-hot编码向量,表示该词在词汇表中的位置。

  2. 嵌入层: 然后,将这些one-hot编码的词向量映射到一个低维的连续空间(词向量)。这个低维空间的表示能够捕捉到词与词之间的语义关系,例如“苹果”和“橙子”在某些任务中可能在词向量空间中靠得很近。

  3. 隐藏层: 嵌入层的输出将输入到一个神经网络的隐藏层。隐藏层通常是一个全连接层,神经网络通过非线性激活函数(如ReLU)处理输入数据。

  4. 输出层: 输出层会生成一个预测概率分布,表示在给定上下文(前面的词)下,当前词是每个词汇表中可能的词的概率。

  5. 训练过程: NNLM的训练过程通常通过最大化训练数据中每个词出现的条件概率来进行。具体来说,模型会使用梯度下降等优化方法来调整网络参数,使得给定上下文的情况下,正确词语的概率尽可能大。

这里引入了独热编码,来表示词。这是一开始的表示方法目的是让计算机“认识”单词,但这种方法有缺点,虽然减少了直接存单词,但当词汇量过大时,还是占用很大的空间。

而且还有关联度问题,现实中,词与词之间还有关联度,但是独热编码并不能很好的表示,这里词与词之间的关联度用到了余弦相似度,通过计算两个向量的夹角来判断两个向量是否有关联,不看向量的大小只看方向。为了解决这个词的“关联关系”于是就有了“词向量”这个概念。

余弦相似度(Cosine Similarity)是衡量两个向量相似度的一种常用方法,特别适用于文本分析中。它通过计算两个向量之间的夹角来判断它们的相似性,具体来说,余弦相似度是计算两个向量夹角的余弦值,余弦值越接近 1,表示两个向量越相似;越接近 0,表示两个向量越不相似。

计算公式如下:


神经网络模型的出现是为了解决平滑和计算量过大的问题。

  • tanh 是用于隐藏层的激活函数,能够捕捉输入的非线性特征,且具有对称性,将向量压缩为固定区间的值。

  • softmax 是一种常用于多分类任务中的激活函数,它的作用是将输出的原始分数(logits)转换成一个概率分布。softmax 的输出是一个包含所有类别的概率值,这些概率值的总和为1。

Q是一个参数,是可以学习的,c向量代表每一个单词而不是单独的独热编码,这样可以压缩维度,且可以表示关系,通过训练,Q越来越准,c向量也接代表的更准确!

词向量:用向量表示一个单词,独热编码也算词向量,但神经网络语言模型的副产品Q更佳。通过Q可以控制大小和维度,相似度也能表示!

Word Embedding是什么

Word Embedding(词嵌入)是自然语言处理(NLP)中的一种技术,它通过将单词映射到一个稠密的向量空间中,以便计算机能够更好地理解和处理文本数据。词嵌入的目标是将每个单词转换为一个固定维度的向量,这些向量能够捕捉到词与词之间的语义关系。

词袋模型(Bag of Words,简称BOW)是自然语言处理中的一种基础文本表示方法。它将文本中的每个单词视为一个独立的元素,忽略单词之间的顺序和语法结构,仅关注单词的出现与否及其频率。

有了词向量由此,现在的任务就是找到一个合适的Q!

Word2Vec模型

从这个模型的名字就能看出来,主要目的就是得到词向量,本质上也是一种神经网络模型。

Word2Vec网络架构本身就和NNLM一模一样!

两种模型架构:

  1. CBOW (Continuous Bag of Words):此模型尝试通过上下文中的词来预测中心词。具体来说,CBOW 模型通过上下文窗口内的词语(即周围的词)来预测中心词。例如,在句子“我 爱 吃 苹果”中,如果“爱”和“吃”是上下文词,那么 CBOW 模型会预测中心词“苹果”。

  2. Skip-gram:与 CBOW 相反,Skip-gram 模型通过给定的中心词来预测周围的上下文词。假设给定“苹果”这个中心词,Skip-gram 模型会根据它来预测“我”、“爱”和“吃”这几个上下文词。

NNLM和Word2vec的区别:NNLM目的是预测下一个词,Word2Vec是为了获得词向量。不需要使用tanh来保持预测准确性,所以少了 一层激活函数,只考虑Q矩阵的训练效果。

缺点:当有一词多意的情况 ,不能通过一个Q 准确表示出来。比如”苹果“这个词只能表示水果苹果,不能表示苹果手机的苹果。


http://www.kler.cn/a/569703.html

相关文章:

  • 微服务学习(1):RabbitMQ的安装与简单应用
  • Ubuntu 下查看进程 PID 和终止进程方法
  • 【实战 ES】实战 Elasticsearch:快速上手与深度实践-1.3.1单节点安装(Docker与手动部署)
  • C#核心(20)密封函数和命名空间
  • DNS的解析流程
  • Ubuntu 22.04 安装Nvidia驱动加速deepseek
  • (下:补充——五个模型的理论基础)深度学习——图像分类篇章
  • 【C】链式二叉树算法题1 -- 单值二叉树
  • Pytorch 第六回:AlexNet卷积神经网络模型
  • 使用sam-vit-base 模型在caltech256 数据集上实现图片召回
  • FPGA开发,使用Deepseek V3还是R1(5):temperature设置
  • MySQL中的行级锁
  • Linux内核配置与构建原理
  • P8654 [蓝桥杯 2017 国 C] 合根植物---并查集!!!
  • 力扣1462. 课程表 IV
  • SpringSecurity的配置
  • AIGC(生成式AI)试用 26 -- 跟着清华教程学习 - DeepSeek与AI幻觉
  • 数字人技术再超越,TANGO 可生成与音频匹配的全身手势视频
  • Ubuntu20.04下各类常用软件及库安装汇总(联想Y9000P24款)
  • AI产品经理W1D4埋点设计数据采集