让机器理解语言,从字词开始,逐步发展到句子和文档理解:独热编码、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.mzph.cn/news/777139.shtml

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

相关文章

Web Components初探

组件化,标签语义化,是前端发展的趋势。现在流行的组件化框架有React、Vue等,标签语义化在H5中添加的article、dialog等。 Web Components 就是类似的一套技术,允许您创建可重用的定制元素,并且在您的web应用中使用它们…

网约车APP小程序源码代驾顺风拼车货运司乘端安卓苹果源码可二开

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 一、详细介绍 系统是基于Thinkphpuniapp开发的,全开源未加密,这套源码可以拿回去自己做二开 后台用户端司机端 功能详情介绍: 车主实名认证,驾驶证认证,车…

【C++】快速判断元音字母,让代码不在繁琐!!

目录 一、前言 二、判断字符是否为元音字母 ✨ 繁琐的方法 ✨ 神奇又快速的方法 三、常考面试题 四、共勉 一、前言 大家有没有发现,我们在做算法题的时候,经常会碰到让我们判断一个字母是否为 元音字母,可是用通常的 if 条件判断 要繁…

centos7 装 docker-ce

安装必要的系统工具: sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 命令会以超级用户的身份安装三个软件包:yum-utils,device-mapper-persistent-…

Linux线程互斥

1.用线程封装代码测试通过现象引出线程互斥 1.1代码测试 Thread.hpp #pragma once #include<iostream> #include<string> #include<functional> #include<pthread.h> template<class T> using func_t std::function<void(T)>;template…

为什么Python不适合写游戏?

知乎上有热门个问题&#xff1a;Python 能写游戏吗&#xff1f;有没有什么开源项目&#xff1f; Python可以开发游戏&#xff0c;但不是好的选择 Python作为脚本语言&#xff0c;一般很少用来开发游戏&#xff0c;但也有不少大型游戏有Python的身影&#xff0c;比如&#xff1…

【Linux】详解进程程序替换

一、替换原理 用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支)&#xff0c;子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时&#xff0c;该进程的用户空间代码和数据完全被新程序替换&#xff0c;从新程序的启动例程开始执…

Mysql数据库——高级SQL语句补充

目录 一、子查询——Subquery 1.环境准备 2.In——查询已知的值的数据记录 2.1子查询——Insert 2.2子查询——Update 2.3子查询——Delete 3.Not In——表示否定&#xff0c;不在子查询的结果集里 3.Exists——判断查询结果集是否为空 4.子查询——别名 二、视图—…

PointNet++点云处理原理

PointNet点云处理原理 借鉴了多层神经网络的思想 pointnet要么是一个点&#xff0c;要么是所有点进行操作&#xff0c;就不会有局部上下文信息 pointnet基本思想是迭代地应用到局部区域 1.多级别特征学习 2.旋转不变性 3.置换不变性 选取中心点centroid&#xff0c;通过poi…

jconsole jvisualvm

jconsole 打开方式 命令行输入 jconsole双击想要连接的应用 界面展示 jvisualvm 打开方式 命令行输入 jvisualvm双击想要连接的应用 可以安装插件&#xff0c;比如 Visual GC 直观看到 GC 过程

在CentOS7上部署Nginx并测试指南

Nginx部署测试 Nginx简介 Nginx是俄罗斯人Igor Sysoev编写的一款高性能的HTTP和反向代理服务器。 Nginx选择了epoll和kqueue作为网络I/O模型&#xff0c;在高连接并发的情况下&#xff0c;内存、CPU等系统资源消耗非常低&#xff0c;运行稳定。 正向代理与反向代理 正向代…

Java学习记录第十三天

面向对象编程 核心思想就是OOP&#xff08;面向对象编程&#xff09; 面向过程&面向对象 面向过程思想 步骤清晰简单&#xff0c;第一步做什么&#xff0c;第二步做什么... 面对过程适合处理一些较为简单的问题 面向对象思想 物以类聚&#xff0c;分类的思维模式&…

电源噪声的起因及危害

对造成电源不稳定的根源进行简单分析如下,主要在于两个方面:一是器件高速开关状态下,瞬态的交变电流过大;二是电流回路上存在的电感。从表现形式上来看又可以分为三类:同步开关噪声(SSN),有时被称为Δi噪声,地弹(Ground bounce)现象也可归于此类(图1-a);非理想电…

2024.3.21 QT

QT登录界面设计&#xff1a; //头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMovie>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nu…

Linux manim安装

简介 根据文档可知, manim目前分为两个版本, 一个是由3Blue1Brown维护更新的最新版本的manimgl, 另一个是稳定的社区版本manim or manimce. 两个版本在安装和使用上都有些不同, 不要搞混. Linux manim ERROR No package ‘pangocairo’ found Getting requirements to buil…

C++进阶之路---C++11新特性 | lambda表达式

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 前言&#xff1a;简介lambda 在C中&#xff0c;lambda表达式是一种匿名函数的方式&#xff0c;它可以用来解决以下问题&a…

稀碎从零算法笔记Day26-LeetCode:跳跃游戏

断更多天&#xff0c;懒狗ex 题型&#xff1a;数组、模拟、类似双指针&#xff1f; 链接&#xff1a;55. 跳跃游戏 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组…

【Diffusers库】第四篇 训练一个扩散模型(Unconditional)

目录 写在前面的话下载数据模型配置文件加载数据创建一个UNet2DModel创建一个调度器训练模型完整版代码&#xff1a; 写在前面的话 这是我们研发的用于 消费决策的AI助理 &#xff0c;我们会持续优化&#xff0c;欢迎体验与反馈。微信扫描二维码&#xff0c;添加即可。   官方…

uni-app中web-view的使用

1. uni-app中web-view的使用 uni-app中的web-view是一个 web 浏览器组件&#xff0c;可以用来承载网页的容器&#xff0c;uni-app开发的app与web-view实现交互的方式相关简单&#xff0c;应用通过属性message绑定触发事件&#xff0c;然后在web-view的网页向应用 postMessage 触…

遥感卫星影像质量评价指标汇总

1. 主观评价方法 以人为图像的评价者&#xff0c;根据自己的评价尺度和经验对图像质量进行评价。 2. 客观评价方法 1)均方差 2)信噪比 主要用来评价影像经压缩、传输、增强等处理前后的质量变化情况&#xff0c;其本质与均方差类似。 3)方差 反映了图像各个像元灰度相对…