让机器理解语言,从字词开始,逐步发展到句子和文档理解:独热编码、word2vec、词义搜索、句意表示、暴力加算力

让机器理解语言,从字词开始,逐步发展到句子和文档理解:独热编码、词嵌入、word2vec、词义搜索、句意表示、暴力加算力

    • 独热编码:分类 + 二进制特征
    • Word2Vec 词嵌入: 用低维表示 + 用嵌入学习 + 用上下文信息
      • Skip-gram 跳字模型:准确性
      • CBOW 连续词袋模型:效率
      • 词义搜索
      • 句意表示 Doc2vec
    • 大模型语言理解方式:暴力 + 算力才是王道

 


独热编码:分类 + 二进制特征

让机器理解自然语言,就从语言组成的基本单位开始(字和词)。

通常,将词汇映射为一个固定维度的数值向量是必要的,这种向量表示称为词向量。

假设有4万字词,就开4万维,一个字对应一个维度,当出现这个字,这个维度就标记为1,否则为0。

这种方式叫独热表示,是一种极其简单的词向量表示法(One-Hot)。

独热编码(One-Hot Encoding)有几个缺陷:

  1. 维度爆炸:独热编码要为语料库中的每个唯一词汇分配一个唯一的维度。

    如果词汇量很大,这就会导致非常高维的向量,这些向量大部分都是零值,这对存储和计算都非常不高效。

  2. 缺乏语义信息:独热编码无法表示词与词之间的语义关系。

    比如,“玫瑰”和“花”在语义上有一定的关联性,但是在独热编码中,它们是完全独立的两个向量,无法体现它们的相似性。

  3. 不适合捕捉上下文:由于每个词都被独立编码,独热编码不能捕捉词在不同上下文中的语义变化和顺序,因为每个词的编码都是固定的。

  4. 稀疏性:独热编码产生的向量大多数元素都是0,只有一个位置是1,这导致了向量的极端稀疏性,这种稀疏性在某些机器学习算法中会造成问题。

  5. 扩展性问题:新出现的词汇需要扩展已有的编码方案,对于词汇表的更新也不是很方便。

因此,为了解决这些问题,通常会采用诸如词嵌入(Word Embedding)的技术,比如Word2Vec或GloVe,它们能够生成更低维、稠密、并含有丰富语义信息的词向量。

这些词向量能够表示词语之间的相似性,并且能更好地处理新出现的词汇。

Word2Vec 词嵌入: 用低维表示 + 用嵌入学习 + 用上下文信息

Word2Vec 是一种广泛用于自然语言处理(NLP)的词嵌入技术。

它通过将词转换为在向量空间模型中的向量来捕捉单词之间的语义关系。要理解Word2Vec的解法,我们首先需要了解它主要包含两种架构:连续词袋(CBOW)和跳字模型(Skip-Gram)。

Skip-gram 跳字模型:准确性

用当前的词,预测上下文

在这里插入图片描述
Skip-Gram模型通过目标词来预测其上下文,这种方法虽然在大规模数据集上训练速度较慢,但能更好地处理罕见词或特殊词,从而提高模型的准确性和鲁棒性。

举例:在句子“猫坐在垫子上”中,如果目标词是“坐”,Skip-Gram模型会尝试使用“坐”的词向量来预测“猫”和“在垫子上”的词向量。

CBOW 连续词袋模型:效率

用上下文预测,当前的词

在这里插入图片描述
BOW模型通过取上下文中所有词的向量的平均值来预测目标词,这种方法相对于其他更复杂的处理方式,可以在大规模数据集上提供更快的训练速度。

举例:在句子“猫坐在垫子上”中,如果目标词是“坐”,上下文词是“猫”和“在垫子上”,CBOW会使用“猫”和“在垫子上”对应向量的平均值来预测“坐”。

词义搜索

在 Word2vec 之前的搜索,都是关键词搜索。

Word2Vec通过词向量的方式实现词义搜索,基于向量空间中的位置关系来识别语义相似性。

其核心原理是:在训练过程中,将语言中的每个词映射为高维空间中的一个向量,使得语义相似的词在向量空间中彼此接近。

  1. 训练词向量模型
  • 步骤:使用大量文本数据训练Word2Vec模型。可以选择CBOW或Skip-Gram架构,根据上下文信息预测当前词或根据当前词预测上下文词。
  • 目的:通过学习词与其上下文之间的关系,生成能够反映词义相似性的向量。
  1. 构建词向量空间
  • 步骤:训练完成后,每个词都会有一个与之对应的向量表示,所有这些向量共同构成了词向量空间。
  • 目的:在这个空间中,向量之间的距离和方向能够反映出词义之间的关系,如相似性、对立性等。
  1. 实现词义搜索

使用向量相似度计算

  • 方法:计算目标词向量与词汇表中其他词向量之间的相似度,常用的相似度计算方法包括余弦相似度(还有明可夫斯基距离、杰卡德距离)。
  • 结果:相似度高的词在语义上与目标词更接近,因此可以根据相似度得分对词汇进行排序,选择最相似的词作为搜索结果。

举个例子:

  • 相似词查找:给定一个词,找出在向量空间中与之最接近的N个词。
  • 词义推断:利用向量加减的特性来进行类比推理,例如:“国王” - “男人” + “女人” ≈ “女王”。
  1. 优化和应用

为了提高词义搜索的准确性和效率,可以采取以下措施:

  • 增加训练数据:更大、更多样化的数据集可以提高模型的泛化能力。
  • 调整模型参数:如向量维度、上下文窗口大小、训练算法(CBOW或Skip-Gram)、训练迭代次数等。
  • 使用先进技术:比如负采样(Negative Sampling)和层次Softmax,可以提高训练效率,改善词义的捕捉。

句意表示 Doc2vec

Doc2Vec技术是在Word2Vec的基础上发展起来的一种算法,旨在解决Word2Vec只能表示单个词而不能直接应用于更长文本(如句子、段落或文档)的限制。

通过引入文档的唯一标识(通常称为“文档向量”),Doc2Vec能够捕捉整个文档的语义信息。

Doc2Vec的核心目标是生成一个固定长度的向量,这个向量能够代表整个文档的语义内容。

不同于Word2Vec模型生成的词向量,文档向量捕获了文档中所有词的上下文关系以及词之间的交互作用,提供了一个全面的文档表示。

这使得Doc2Vec非常适用于文档分类、文档相似度比较、推荐系统以及作为深度学习模型的特征输入。

Doc2Vec有两种主要的实现方式:分布式记忆(DM)和分布式词袋(DBOW)。

  • DM模型通过预测文档中的词来学习文档向量,类似于Word2Vec中的CBOW模型,但加入了文档向量作为额外的上下文。
  • DBOW模型则忽略上下文词的顺序,直接预测文档中出现的词,类似于Word2Vec的Skip-Gram模型。

DM模型通过结合文档向量和上下文信息来精确地捕捉文档中词的使用,适合于需要理解详细语境的任务。

而DBOW模型则通过直接预测文档中的词来快速捕捉文档的整体主题,适合于对文档进行广泛分类或主题识别的场景。

这两种模型提供了强大的工具,使得计算机能够理解和处理复杂的文本数据。

大模型语言理解方式:暴力 + 算力才是王道

随着技术的发展,更先进的大型模型(如BERT、GPT系列)被开发出来,它们采用了变换器(Transformer)架构,通过自注意力(Self-Attention)机制和大规模语料的预训练,能够捕获词、句子和文档级别的复杂语义关系。

这些模型并不直接使用独热编码或Word2Vec等具体技术,而是通过深度学习的方法学习语言的高级特征表示,从而实现更深层次的语言理解。

世间几乎所有力量的增长都会迅速陷入边际效益递减,从而变慢乃至于停下来,于是都是有上限的。

唯独计算机算力的增长,目前似乎还没有衰减的迹象。

摩尔定律依然强劲,算力每18个月就增长一倍,持续几十年的指数发展。

在这里插入图片描述
所以说,如果这个世界真有神,算力就是神。

GPT-3有1750亿个参数,无疑是非常大的数字,但是在指数增长的算力面前,这些是有限的数字。

而就是这样有限的模型,竟然就抓住了人类几乎所有平常的知识。

这说明「人」其实是简单的,简单到这么有限的算力就能把你搞明白。

以前的研究者搞的那些知识 —— 什么句法分析、语义分析、自然语言处理(NLP)—— 全都没用上,GPT直接把海量的语料暴力学一遍,就什么都会了。

在无穷的算力面前,人类的知识都只不过是一些小聪明而已。

  1. 人类研究者总想构建一些知识教给AI;

  2. 这些知识在短期内总是有用的;

  3. 但是从长远看,这些人类构建的知识有个明显的天花板,会限制发展;

  4. 让AI自行搜索和学习的暴力破解方法,最终带来了突破性进展。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JavaScript】数组 ② ( JavaScript 数组索引 | JavaScript 遍历数组 | 使用 for 循环遍历数组 )

文章目录 一、JavaScript 数组索引1、数组索引2、数组索引 - 代码示例 二、JavaScript 遍历数组1、使用 for 循环遍历数组2、使用 for 循环遍历数组 - 代码示例 一、JavaScript 数组索引 1、数组索引 在 JavaScript 中 , 数组 的 " 索引 " 又称为 " 下标 "…

ssm 房屋销售管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 ssm 房屋销售管理系统是一套完善的信息系统,结合springMVC框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模…

JAVAEE——线程池

文章目录 线程池的概念什么是线程池? 标准库中的线程池线程池的创建工厂模式工厂模式的用途线程池涉及到的类有哪些Executor接口ExecutorService接口Executors工厂类AbstractExecutorService虚类ThreadPoolExecutor普通类ThreadPoolExecutor内部的实现4个拒绝策略 线…

Linux 系统 CentOS7 上搭建 Hadoop HDFS集群详细步骤

集群搭建 整体思路:先在一个节点上安装、配置,然后再克隆出多个节点,修改 IP ,免密,主机名等 提前规划: 需要三个节点,主机名分别命名:node1、node2、node3 在下面对 node1 配置时,先假设 node2 和 node3 是存在的 **注意:**整个搭建过程,除了1和2 步,其他操作都使…

VMware vSAN OSA存储策略 - 基于虚拟机的分布式对象存储

简介 博客:https://songxwn.com/ 存储策略 (Storage Policy) 是管理员定义的一组规则,这组规则定义了数据对象在 vSAN 存储上是如何保存的,存储策略定义了数据存储的可靠性、访问性能等特性。vSAN 提供了基于存储策略的存储管理 SPBM (Stor…

TheMoon 恶意软件短时间感染 6,000 台华硕路由器以获取代理服务

文章目录 针对华硕路由器Faceless代理服务预防措施 一种名为"TheMoon"的新变种恶意软件僵尸网络已经被发现正在侵入全球88个国家数千台过时的小型办公室与家庭办公室(SOHO)路由器以及物联网设备。 "TheMoon"与“Faceless”代理服务有关联,该服务…

Leetcode 128. 最长连续序列

心路历程: 这道题一开始没想出来该怎么做,以看到要求O(N)的时间复杂度,第一反应是用双指针,但是后来发现双指针很难和连续这个概念联系起来。后来发现集合的查询复杂度是O(1)的,在一次遍历中可以进行任意次数的查询。…

【python】flask模板渲染引擎Jinja2中的模板继承,简化前端模块化开发

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

aws 入门篇 01.aws学习的方法论

aws入门篇 01.aws学习的方法论 第1章 aws学习的方法论 aws的服务很多,现在应该有100多个服务了,怎么来学习aws呢? 这几年也使用了一些aws的服务,谈谈自己对学习aws的理解。 1.先横向,后纵深 比如说,aws最…

LLM之RAG实战(三十五)| 使用LangChain的3种query扩展来优化RAG

RAG有时无法从矢量数据库中检索到正确的文档。比如我们问如下问题: 从1980年到1990年,国际象棋的规则是什么? RAG在矢量数据库中进行相似性搜索,来查询与国际象棋规则问题相关的相关文档。然而,在某些情况下&#xff0…

JAVA使用POI实现Excel单元格合并-02

JAVA使用POI实现Excel单元格合并 实现效果 解释&#xff1a;只要是遇见与前一行相同的数据就合并 引入jar <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.2</version></depe…

乐维更改IP地址

1.1 系统IP调整 vim /etc/sysconfig/network-scripts/ifcfg-ens1921.2 Web相关服务IP变更 1.2.1 编辑/itops/nginx/html/lwjkapp/.env文件,更改ZABBIXSERVER、ZABBIXRPCURL、DB_HOST中的IP 1.2.2 进入/itops/nginx/html/lwjk_app/目录下,执行php bin/manager process-conso…

Intellij IDEA安装配置Spark与运行

目录 Scala配置教程 配置Spark运行环境 编写Spark程序 1、包和导入 2、定义对象 3、主函数 4、创建Spark配置和上下文 5、定义输入文件路径 6、单词计数逻辑 7、输出结果 8、完整代码&#xff1a; Scala配置教程 IDEA配置Scala&#xff1a;教程 配置Spark运行环境 …

HTTP

HTTP 概念&#xff1a;HyperTextTransferProtocol&#xff0c;超文本传输协议&#xff0c;规定了浏览器和服务器之间数据传输的规则 HTTP协议特点&#xff1a; 1.基于TCP协议&#xff1a;面向连接&#xff0c;安全 2.基于请求-响应模型的&#xff1a;一次请求对应一次响应 …

【计算机网络】第 9 问:四种信道划分介质访问控制?

目录 正文什么是信道划分介质访问控制&#xff1f;什么是多路复用技术&#xff1f;四种信道划分介质访问控制1. 频分多路复用 FDM2. 时分多路复用 TDM3. 波分多路复用 WDM4. 码分多路复用 CDM 正文 什么是信道划分介质访问控制&#xff1f; 信道划分介质访问控制&#xff08;…

RabbitMQ 实验消费原始队列消息, 拒绝(reject)投递死信交换机过程

如果你想通过 RabbitMQ 的死信队列功能实现消费者拒绝消息投递到死信交换机的行为&#xff0c;你可以按照以下步骤操作&#xff1a; 创建原始队列&#xff0c;并将其绑定到一个交换机上&#xff1a; export RABBITMQ_SERVER127.0.0.1 export RABBITMQ_PORT5672 export RAB…

WordPress Git主题 响应式CMS主题模板

分享的是新版本&#xff0c;旧版本少了很多功能&#xff0c;尤其在新版支持自动更新后&#xff0c;该主题可以用来搭建个人博客&#xff0c;素材下载网站&#xff0c;图片站等 主题特点 兼容 IE9、谷歌 Chrome 、火狐 Firefox 等主流浏览器 扁平化的设计加响应式布局&#x…

Xcode删除原本的Git,再添加新的git

本文参考&#xff1a;Xcode怎么删除原本git,在重新设置新的git地址_ios xcode 删除原本git-CSDN博客 开发中会有一个问题。Xcode项目A 提交到Git服务器server1&#xff0c;此时项目A内部已经存在一个Git文件&#xff0c;与server1相关联。 此时你想将项目A提交到 另一个Git…

verilog设计-cdc:多比特信号跨时钟域(DMUX)

一、前言 多比特一般为数据&#xff0c;其在跨时钟域传输的过程中有多种处理方式&#xff0c;比如DMUX&#xff0c;异步FIFO&#xff0c;双口RAM&#xff0c;握手处理。本文介绍通过DMUX的方式传输多比特信号。 二、DMUX同步跨时钟域数据 dmux表示数据分配器&#xff0c;该方…

GPT-1原理-Improving Language Understanding by Generative Pre-Training

文章目录 前言提出动机模型猜想模型提出模型结构模型参数 模型预训练训练的目标训练方式训练参数预训练数据集预训练疑问点 模型微调模型输入范式模型训练微调建议微调疑问点 实验结果分析 前言 首先想感慨一波 这是当下最流行的大模型的的开篇之作&#xff0c;由OpenAI提出。…