【如何用大语言模型快速深度学习系列】从word2vec、SVD到GloVe

news2024/11/25 7:22:33

三天热度果然名不虚传,写作的效率有所下降,但是只要坚持二十一天就能养成习惯啦!冲冲冲!

上一节回顾 文章链接

在上一章我们将词的概念,通过n-gram组合成了n个词的切片,终于将前后词之间建立了一个联系,可以根据词的关系,逐步看见句子之间的相似度,以及根据高频词能够判断文章之间的关联程度。

上一节todo

  1. 相关代码未补充完整预计明后两天停更新新内容,将前面进行代码补全。
  2. 编辑距离忘了补充。
  3. jieba的详细介绍以及如何自己制作词典没有介绍。

写在第四节和第五节前面的引入部分

one-hot向量表示文本的不足之处

  1. one-hot太稀疏
    回到1-gram和2-gram的例子:
  • 我喜欢看电影
    用单词出现次数来表示:【“我”:1.“喜欢”:1,“看”:1,“电影”,1】

  • 我喜欢看电影。
    用2-词片段出现次数来表示:【“我喜欢”:1.“喜欢看”:1,“看电影”:1】

现在我们对“我”,“喜欢”,“看”,“电影” 进行编码,最简单的其实是我们一直以来的,按照索引,[1,0,0,0]第0个是“我”,[0,1,0,0]这是“喜欢”,而在不同的文章和规则下,比如2-gram下的,[1,0,0]表示“我喜欢”,在很长的文章里,则有数千甚至过万的词,编码格式为 [1,0,0…0],即为one-hot编码,为此,英文采用了基础词+前缀+后缀进行编码等奇思妙想来充分利用一些“0”,但这依然很稀疏

  1. one-hot近义词同义词很难体现
    如果按abc顺序进行排序,则“爱戴”,“尊敬”很难体现其应用场景相似相近,因为点乘永远是0。
    如果按偏旁部首排序,则“抵达”和“到达”很难体现其意义相近,同理
    如果按出现频率排序,按上一节tfidf,我们明白,高频词只有出现在少部分文章的时候,才具有意义,否则我们是会将其判断为停用词,即没有意义的词。
    如果用哈希表和预先拥有的知识构建词典,我觉得这个想法不错,但工作量巨大。

总之,one-hot的最大优点在于简单灵活、清晰明了,对于指定的、小文本任务中,依然发挥着十分重要的作用。而为了解决稀疏问题和词之间的语义联系等,我们可以阅读第四节 word2vec 和第五节 SVD 啦!


第四节 word2vec

概念

大模型对word2Vec
这个概念写的不是很符合我的心意,我们试试inscode
inscode结果
inscode字写得多,其实就会更加全面一些,但是单从回答依然可能看的是一头雾水,因此我还是会用通俗易懂的方式理解一下概念。

理解

还是从例子引入
设x1 = 苹果, x2 = 水果 x3 ≈ 中华田园犬,x4 = 狗
由苹果与水果的关系,中华田园犬与狗的关系都是被包含关系,于是理论上我们能确定一个关系式:word2vec (x2) - word2vec(x1) =(≈) word2vec(x4) - word2vec(x3)

  1. word2vector的目标将原本的一个词/词切片,经过编码就会变成一个低维度的向量(一个word 变成了 vector)比如有1万词,可能降低到16维,然后通过向量唯一表示该词
  2. word2vector的向量应用这个向量可以描述词于词之间的关系,比如水果到苹果的向量之差就等于中华田园犬到狗之差。
  3. word2vector的向量的进一步推理自然而然的,苹果换成香蕉,仍然成立
    f(水果) - f(香蕉) ≈ f(狗) - f(中华田园犬) ≈ f(水果) - f(苹果),我们发现word2vector居然完成了f(香蕉) ≈ f(苹果),可以得到向量空间上两个向量的距离是靠近的!同时他们是唯一表示的,因此不会是等号。
  4. 关于距离与相似度 描述向量之间的距离有很多种,有多少种距离,就有更多种相似度的度量方法!

埋一个坑:做一个向量距离、相似度的整理与总结

实现方法

上面是一些理论性的东西, 相信有了上面四个点的例子和推理,我们能对word2vector有了一个清晰的认识,而具体如何找到这个函数f(x),达到所需效果,现在更多会使用神经网络实现,我们可以忘记所有方法,把握两个关键点即可使用任何方法实现。

  1. 将10000个字用16个维度表表示

  2. 解决 f(香蕉) ≈ f(苹果)的方法:
    训练数据:基于大量的文本,用词语的前后词语来判断,如1:我去上海玩耍;2:我去南京玩耍,此时,上海和南京会被判断为类似,此时通过f(上海) = f(南京) 来调整权重。


第五节 SVD


第六节 GloVe

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

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

相关文章

MySQL授权操作

目录 授权和撤销授权 创建用户 授权 撤销授权 授权其他用户与撤销权限 授权和撤销授权 创建用户 create user 用户名% identified by 密码; 示例:create user tom% identified by 123456; 授权 GRANT ALL ON 库名.表名 TO 用户名’客户端主机 ; 示例&a…

【动手学习深度学习--逐行代码解析合集】08模型选择、欠拟合和过拟合

【动手学习深度学习】逐行代码解析合集 08模型选择、欠拟合和过拟合 视频链接:动手学习深度学习–模型选择、欠拟合和过拟合 课程主页:https://courses.d2l.ai/zh-v2/ 教材:https://zh-v2.d2l.ai/ 1、生成数据集 import math import numpy a…

ROS:参数名称设置

目录 一、前言二、rosrun设置参数三、launch文件设置参数四、编码设置参数4.1C实现4.1.1ros::param设置参数4.1.2ros::NodeHandle设置参数 4.2python实现 一、前言 在ROS中节点名称话题名称可能出现重名的情况,参数名称也可能重名。 关于参数重名的处理&#xff0c…

Css:浮动相关

1.为什么需要浮动? 多个块级元素纵向排列找 标准流,多个块级元素横线排列找 浮动 2.浮动的特性 浮动会脱离标准流(脱标) 浮动的盒子不再保留原来的位置 3.清除浮动

BM68-矩阵的最小路径和

题目 给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。 数据范围: 1≤n,m≤500,矩阵中任意值都满足 0≤ai,j…

T100新程序的开发【完整步骤】

简易程序的开发 记录T100中一个简易程序的开发完整步骤。 一、程序基本数据设置作业 打开作业 azzi900,弹出作业详情。 新增一个程序编号。 一些属性概念 程序编号:手动输入你建立的新程序。程序名称:手动输入你建立的名称。归属模块:取决于你程序编号的第一个字母。归属…

C语言判断当前目录下是否存在某一个文件

要判断当前目录下是否存在文件A&#xff0c;可以使用C语言中的标准库函数access来实现。access函数用于检查指定文件是否存在及是否具有指定的访问权限。 #include <stdio.h> #include <unistd.h>int main() {const char* filename "fileName";// 检查…

MongoDB【Springboot访问MongoDB、MongoDB安全认证、MongoDB内置角色 】(五)-全面详解(学习总结---从入门到深化)

目录 Springboot访问MongoDB MongoDB安全认证 MongoDB内置角色 Springboot访问MongoDB MongoTemplate方式 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId>…

【裸机开发】SPI 通信接口(一)—— SPI 通信流程及四种工作模式

目录 一、SPI 简介 二、SPI 的基本通信流程 三、SPI 的四种工作模式 1、极性和相位 2、四种工作模式 一、SPI 简介 SPI 采用主从的方式工作&#xff0c;可以一个主设备对应一个从设备&#xff0c;也可以一个主设备对应多个从设备。虽然是一个主设备对多个从设备的关系&am…

如何建立一套完整的人事管理制度?

一、什么是人事管理制度 人事管理制度是企业为有效管理和运营人力资源而建立的一系列规章制度、流程和政策。它是人力资源管理的基础&#xff0c;旨在确保企业拥有合适的员工队伍&#xff0c;并通过有效的管理和激励机制&#xff0c;使员工能够充分发挥自己的潜力&#xff0c;…

计算机网络 day2 物理层-数据链路层-帧-MAC地址 交换机的工作原理

目录 物理层&#xff08;physical layer&#xff09; 数据链路层&#xff08;Data link layer&#xff09; MAC地址&#xff1a; 网络地址&#xff1a; 帧的格式&#xff1a; MTU&#xff1a;最大传输单元 max transfer unit 1500 &#xff08;ip add可以查看&#xf…

【动态规划算法练习】day16

文章目录 一、完全背包1.题目简介2.解题思路3.代码4.运行结果 二、322. 零钱兑换1.题目简介2.解题思路3.代码4.运行结果 三、518. 零钱兑换 II1.题目简介2.解题思路3.代码4.运行结果 四、279. 完全平方数1.题目简介2.解题思路3.代码4.运行结果 总结 一、完全背包 1.题目简介 …

【百日冲大厂】第二十篇,牛客网选择题+编程题 字符串反转+公共子串计算(dp问题)

前言&#xff1a; 大家好&#xff0c;我是良辰丫&#xff0c;第二十篇,牛客网选择题编程题 字符串反转公共子串计算(dp问题).&#x1f49e;&#x1f49e;&#x1f49e;生活就像一只盲盒&#xff0c;藏着意想不到的辛苦&#xff0c;当然也有万般惊喜的可能。不管是次次都如愿以偿…

初学者一步步学习python 学习提纲

当学习Python时&#xff0c;可以按照以下提纲逐步学习&#xff1a; 入门基础 了解Python的历史和应用领域安装Python解释器和开发环境&#xff08;如Anaconda、IDLE等&#xff09;学习使用Python的交互式解释器或集成开发环境&#xff08;IDE&#xff09;进行简单的代码编写和…

浅谈C++下观察者模式的实现

为什么要有观察者模式 想象一个场景&#xff0c;有一只猫和一群老鼠&#xff0c;当猫出现的时候&#xff0c;每一只老鼠都要逃跑 用最简单的方法实现一个去模拟这一个过程 #include<iostream>class Mouse_1 {public:void CatCome(){std::cout<<"Mouse_1 Ru…

【MyBatis-Plus】DQL编程控制

1&#xff0c;DQL编程控制 增删改查四个操作中&#xff0c;查询是非常重要的也是非常复杂的操作&#xff0c;这块需要我们重点学习下&#xff0c;这节我们主要学习的内容有: 条件查询方式查询投影查询条件设定字段映射与表名映射 1. 条件查询 1. 条件查询的类 MyBatisPlus…

PHP 训练成绩管理系统mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP 训练成绩管理系统 是一套完善的web设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为PHP APACHE&#xff0c;数据库 为mysql5.0&#xff0c;使用php语言开发。 …

css设计表格圆角最简单的方法

代码如下&#xff1a; table {width: 100%;/* border-collapse: collapse; */background-color: #FBFBFB; /* 背景颜色; */border-collapse: separate; /* 让border-radius有效 */border-spacing: 0; /*表格中每个格边距设为0*/border: 1px solid #DFDFDF;/*边框*/border-radi…

软件测试面试简历,三年测试项目经验怎么写?

作为三年左右的测试工程师&#xff0c;简历上有五六个项目经历很正常&#xff0c;那如何设计这几个项目&#xff0c;其实设计好三两个就行&#xff0c;面试官能关注到的也只有最新的三两个&#xff0c;两年前的项目也没有关注的必要啦&#xff0c;所以在这两三个项目中一定要体…

mysql8.0 navicat mysql 2059报错

进入mysql安装目录&#xff1a; 输入用户名密码连接mysql 设置密码 刷新 测试连接&#xff0c;连接成功