173 词转换成向量形式

news/2025/2/23 5:12:26/文章来源:https://www.cnblogs.com/dingxingdi/p/18718795

介绍一下\(\text{Skip-Gram}\)算法。非常简单的一个算法,训练集由\(\text{context}\)\(\text{target}\)组成,前者是一个句子中的某一个单词,后者是这个句子中这个单词临近的某个词。举例如下
image
我们获得单词的嵌入向量后,就放入神经网络中去跑,再利用\(\text{Softmax}\)如下
image
损失函数就是交叉熵损失函数
\(\text{context}\)的抽样方法:一般不采取均匀抽样,因为这个样子会让and,a,so等词出现很多次,所以一般会自己定义一个分布
上面的算法在训练嵌入矩阵这一块的效果非常好,但是存在一个问题,就是计算速度太慢,主要瓶颈是分母的求和计算
一个解决方法是不使用\(\text{Softmax}\),而是使用分层\(\text{Softmax}\).具体来说,建立一个二叉树,每个节点都是一个二元分类器,告诉我们预测词在每一个儿子中的概率,如下
image
比如说现在要预测,根节点有一个二元分类器告诉我们输出的单词在前面五千个词和后面五千个词的概率,我们选择概率更大的节点,然后重复上述过程
注意分层\(\text{Softmax}\)使用的不是完美平衡树(上面的五千/五千只是随便列举的一个数字),一般使用的启发式方法是让出现频率很高的单词尽量出现在顶部,频率不高的单词尽量出现在底部(这样期望查找次数变少),于是树可能相当不平衡(因为频率出现低的单词种类远远多余频率出现高的单词种类),如下
image

再介绍一下负采样法。此时我们新定义训练集。我们像上面一样抽取\(\text{context}\),同时按照抽取\(\text{target}\)的方法抽取\(\text{word}\),就得到了一个单词对,然后将这个单词对的\(\text{target}\)标记为\(1\),同时我们再创造\(k\)(超参数,数据集越大\(k\)越小)个单词对,\(\text{context}\)不变,\(\text{word}\)从字典中随机抽取若干个,然后将这些单词对的\(\text{target}\)标记为\(0\)(这样子做就是想让模型努力区分单词对是来自一个句子还是随机抽取的).如下
image
然后将\(\text{context}\)\(\text{word}\)作为特征,\(\text{target}\)作为模型的标签。这个问题是一个二分类,我们使用逻辑斯蒂回归预测。见下
image
假设\(\text{context}\)定了,那么\(\text{word}\)的选择最多有词表大小这么多种,所以我们最多只需要训练词表大小这么多种二元分类器即可。总的训练成本很高,但是单个训练成本非常低
那么随机抽取应该如何抽取呢,也就是说应该以什么分布去抽取呢?均匀分布显然那不太好,但是如果按照出现频率来抽取,也会得到很多and,the等词。论文作者使用的是如下分布来做一个折中
image
其中\(f\)是单词的频率。这种启发式方法效果还不错

嵌入矩阵其实有很多已经训练好了的开源的,可以直接下载

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

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

相关文章

对象

Array:数组 定义 var 变量名 = new Array(元素) var arr = new Array(1,2,3); var 变量名 = [元素] var arr = [1,2,3]; arr[索引]=值; 可以变长变类型

《操作系统真相还原》实验记录2.9——完善内存管理系统

本文章实现内容如下: ① 完成了更细粒度的内存分配机制——arena机制的建立 ② 完成了内存分配系统调用 malloc() 的实现 ③ 完成了内存释放系统调用 free() 的实现一、malloc 底层原理之前我们虽然已经实现了内存管理,但显得过于粗糙,分配的内存都是以 4KB 大小的页框为单位…

智能化客户画像构建管理:AI视频监控在大型商场的技术方案介绍(part5)

前言:某商家为了优化卖场服务与营销策略,希望通过非侵入式手段获取客户画像,不仅可以帮助卖场提升服务质量、优化营销策略,还能通过数据驱动的方式提升销售业绩和顾客满意度,为卖场的长期发展奠定坚实的基础。具体需求 1、性别分析:识别顾客的性别比例,为产品布局和服务…

169 使用词嵌入

以判断人名为例。如果我们只使用独热编码,那么我们的训练集不能太大(否则维度爆炸),所以遇到了下面这种情况我们没有在训练集中坚果durian和cultivator,导致我们没有判断出来Robert Lin是人名 但是如果我们使用词嵌入,我们的训练集就可以很大(从网上下载即可),然后通过…

简单的Java程序 HelloWorld

HelloWorld谁便新建一个文件,存放代码 新建一个Java文件文件后缀名为.java Hello.java 系统可能没有显示文件后缀名,需要手动打开编写代码 public class Hello{public static void main(String[] args){System.out.print("Hello,World");} }1. 编译 javac java文…

『ubuntu使用」在桌面建立一个文件夹的快捷方式

ubuntu 24.04 可能是我笨,这个原本觉得非常简单的操作,竟然还有陷阱。我想把主文件夹中的一个目录,放到桌面的快捷方式,希望可以快速访问。试了很多操作都不行,只能百度了…… 问题复述: 我想把“工作目录”这个文件夹在桌面建立一个快捷方式,在查到使用ln -s 命令以后,…

【保姆级教程】DeepSeek R1+RAG,基于开源三件套10分钟构建本地AI知识库

一、总体方案 目前在使用 DeepSeek 在线环境时,页面经常显示“服务器繁忙,请稍后再试”,以 DeepSeek R1 现在的火爆程度,这个状况可能还会持续一段时间,所以这里给大家提供了 DeepSeek R1 +RAG 的本地部署方案。最后实现的效果是,结合本地部署的三个开源工具,包括 1Pane…

【保姆级教程】DeepSeek R1+RAG,基于开源三件套10分钟构建本地AI知识库(文末附笔记及材料)

一、总体方案 目前在使用 DeepSeek 在线环境时,页面经常显示“服务器繁忙,请稍后再试”,以 DeepSeek R1 现在的火爆程度,这个状况可能还会持续一段时间,所以这里给大家提供了 DeepSeek R1 +RAG 的本地部署方案。最后实现的效果是,结合本地部署的三个开源工具,包括 1Pane…

[2025.2.10~16 鲜花] 仆は可怜な少女にはなれない

人間になりたい[2025.2.10~16 鲜花] 仆は可怜な少女にはなれない 要省选了,和以前相比,确实可以确定的是,我的\(oi\)水平还是很有进步的,但是我依旧不会考试,考试的心态依旧不好 平时的模拟赛根本做不到像正式考试一样打,正式考试似乎只要卡壳一下,脑子就钝住了,很奇怪…

【ABP】项目示例(3)——仓储

仓储 在上一章节中,已经完成了领域层的聚合根和实体设计,在这一章节中,实现仓储层的部分功能 仓储作为领域模型和数据模型的桥梁,领域层不关注仓储是怎么实现持久化数据的。对于领域层,仓储层隐藏了持久化数据的细节,所以只需要将仓储接口定义在领域层,而具体的仓储实现…

ZUC算法

1. 算法概述 ZUC(祖冲之密码算法)是我国发布的商用密码算法中的序列密码算法。可用于数据保密性保护、完整性保护等。 ZUC算法密钥长度为128比特,由128比特种子密钥和128比特初始向量共同作用产生32比特位宽的密钥流。 ZUC算法标准包括三个部分,相对应的国家和密码行业标准…

【API】终极 API 学习路线图

API 是 Internet 通信的主干。每个开发人员都需要了解 API。以下是涵盖最重要主题的路线图:API 简介API 是一组用于构建应用程序的协议和工具。存在不同类型的 API,例如 public、private 和 partner。 2. API 术语 需要了解各种 API 术语,例如 HTTP 版本、Cookie 和缓存。 3…