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

聊一下Word2vec-训练优化篇

Word2vec 涉及到两种优化方式,一种是负采样,一种是层序Softmax

先谈一下负采样,以跳字模型为例。中心词生成背景词可以由两个相互独立事件的联合组成来近似(引自李沐大神的讲解)。

第一个事件是,中心词和背景词同时出现在窗口中。第二个事件是,中心词和K个噪声词不同时出现在窗口数据中,其中噪声词由噪声分布随机生成。

这里我们就可以知道上一个文章开头说到的,负采样是一种等价操作还是近似操作?我们在第二个事件中,使用了K个噪声词。但是实际上呢?应该远远大于K。

还是那个例子,句子为"我/永远/爱/中国/共产党",中心词为’爱’,我们在选择噪声词的时候,选择了K个,但是实际上,在词汇表中,排除掉’我’,‘永远’,‘中国’,‘共产党’ 这四个词汇的其他词都可以算做我的噪声词,然而为了减少复杂度,我只选择了其中的K个,所以当然应该是近似了。

接下来,我们看层序Softmax。

层序Softmax 对应的就是在输出层使用一个霍夫曼树,代替了原本在输出层统一进行的softmax。

首先,我们需要了解霍夫曼树在这里是如何构建的。

简单讲,霍夫曼树是一个二叉树,以语料中出现过的词当做叶子节点,以各词在语料中出现的次数当做权值进行构造。其中叶子节点有N个,就是词典的大小,非叶子节点有N-1个(包括根节点)。

比如说我的所有文章中,“共产党”这个词出现了 100次,是最大的,那么根节点的左分支(或者右分支)就对应着”共产党“这个词,另一个分支做与根节点相同的操作,找到排除”共产党“这个词之外的所有词中最大的词,比如”中国“作为其中的左分支(或者右分支),以此类推,一个霍夫曼树就成功构建。

霍夫曼树中,我们需要注意的是,每个非叶子节点对应一个向量,每个叶子节点对应一个向量。两种向量都会随着模型的训练进行更新。

其中叶子节点的向量就是我们的词向量,而非叶子节点上的向量就是没有什么实际含义,它的作用就是帮助我们计算模型在霍夫曼树上不断的进行二分类时候的概率。

以上面那句话为例,我们现在中心词为‘爱’,然后,我要预测背景词‘中国’。首先我们要确定的是我的叶子节点是包含所有单词的,也就是包含了我这个简单句子的五个单词(不考虑前期数据清洗低频率词的情况)。

也就是说,在这个霍夫曼树上,有且仅有一条路径,让我从根节点出发,经过多次判断(也就是说走过了多个非叶子节点),最终走到了“中国”这个叶子节点,对应的概率就是每个节点概率的连乘。

然后这个时候,我们想一下霍夫曼树是不是一种近似?

当然,我们每更新一个词向量,只是涉及到了可以到达叶子节点的这一条路径上节点。所以复杂度就是树的高度,也就是 O(log|V|)

相关文章:

聊一下Word2vec-训练优化篇

Word2vec 涉及到两种优化方式,一种是负采样,一种是层序Softmax 先谈一下负采样,以跳字模型为例。中心词生成背景词可以由两个相互独立事件的联合组成来近似(引自李沐大神的讲解)。 第一个事件是,中心词和…...

Julia元组、字典、集合

文章目录 元组字典集合共性 Julia系列:编程初步🔥数组 作为通用编程语言,除了数组之外,julia实现了元组、字典、集合等数据结构。 元组 与向量类似,也是一维的数据结构,并且对数据类型无要求&#xff0c…...

EfficientViT:高分辨率密集预测的多尺度线性关注

标题:EfficientViT: Multi-Scale Linear Attention for High-Resolution Dense Prediction 论文:https://arxiv.org/abs/2205.14756 中文版:【读点论文】EfficientViT: Enhanced Linear Attention for High-Resolution Low-Computation将soft…...

每日一道算法题:26. 删除有序数组中的重复项

难度 简单 题目 给你一个 非严格递增排列 的数组 nums ,请你原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为…...

吴恩达《机器学习》2-2->2-4:代价函数

一、代价函数的概念 代价函数是在监督学习中用于评估模型的性能和帮助选择最佳模型参数的重要工具。它表示了模型的预测输出与实际目标值之间的差距,即建模误差。代价函数的目标是找到使建模误差最小化的模型参数。 二、代价函数的理解 训练集数据:假设我…...

软考 系统架构设计师系列知识点之设计模式(6)

接前一篇文章:软考 系统架构设计师系列知识点之设计模式(5) 所属章节: 老版(第一版)教材 第7章. 设计模式 第2节. 设计模式实例 相关试题 1. 设计模式描述了一个出现在特定设计语境中的设计再现问题&…...

use renv with this project create a git repository

目录 1-create a git repository 2-Use renv with this project 今天在使用Rstudio过程中,发现有下面两个新选项(1)create a git repository (2) Use renv with this project. 选中这两个选项后,创建新项目,在项目目…...

摄像头种类繁多,需要各自APP

老外报怨吾APP不能用之后,吾按照提供的图片买了一个。昨天到货以后,心想这下你小子可被我逮住了,非解决你不可…… 吾APP当然不能用。老外声称能用的APP也不能用。又下载了一个,还是不能用。 最后只能老老实实的想办法从Google P…...

Openssl数据安全传输平台010:jasoncpp 0.10.7的编译 - Windows-vs2022 / Ubuntu/ Centos8 -含测试代码

文章目录 0. 代码仓库1 安装1.1 windows 下的安装1.2 Linux 下的安装1.2.1 相关环境配置问题1.2.2 准备安装1.2.2.1 安装scons1.2.2.2 安装jsoncppUbuntu系统下Centos8系统下 2 编译 c 测试文件: json-test.cpp2.1 配置库文件2.2 配置VS2.3 Winsows系统下cpp文件测试…...

GSCoolink GSV6182 带嵌入式MCU的MIPI D-PHY转HDMI 2.0

Gscoolink GSV6182是一款高性能、低功耗的MIPI D-PHY到HDMI 2.0转换器。通过集成基于RISC-V的增强型微控制器,GSV6182创造了一种具有成本效益的解决方案,提供了上市时间优势。MIPI D-PHY接收器支持CSI-2版本1.3和DSI版本1.3,每条通道最高可达…...

ABBYY FineReader PDF15免费版图片文件识别软件

ABBYY全称为“ABBYY FineReader PDF”, ABBYY FineReader PDF集优秀的文档转换、PDF 管理和文档比较于一身。 首先这款软件OCR文字识别功能十分强大,话不多说,直接作比较。下图是某文字识别软件识别一串Java代码的结果,识别的结果就不多评价…...

如何使用手机蓝牙设备作为电脑的解锁工具像动态锁那样,蓝牙接近了电脑,电脑自动解锁无需输入开机密码

环境: Win10 专业版 远程解锁 蓝牙解锁小程序 问题描述: 如何使用手机蓝牙设备作为电脑的解锁工具像动态锁那样,蓝牙接近了电脑,电脑自动解锁无需输入开机密码 手机不需要拿出来,在口袋里就可以自动解锁&#xff…...

几道面试题记录20231023

1, JVM优化 -Xms-Xmx -Xmn -Xss -XX:PermSize -XX:MaxPermSize -NewRatio -SuvriorRatio 收集器配置: 一般:串行收集 Serial 吞吐优先:并行收集Pramllel 响应优先:并发收集Conc 2,支付掉单如何解决? 因为网络等原…...

c++ 线程安全的string类

非安全string 说明 c标准未规定stl容器以及字符串的线程安全性&#xff0c;故std::string在多线程下是不安全的。 代码示例 #include <iostream> #include <stdio.h> using namespace std;std::string *sp nullptr;void Read() {for(int i 0; i < 100000;…...

linux上安装apktool反编译apk解析AndroidManifest.xml得到首页Activity

需求 在linux系统上反编译安卓app, 有些应用需要知道其主页Activity用于adb指令打开其主页。 安装 自动安装脚本 #!/bin/bashwget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool -O ./apktool wget https://bitbucket.org/iBotPeac…...

代码随想录算法训练营第4天| 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交 、142.环形链表II

JAVA语言编写 24. 两两交换链表中的节点 谷歌、亚马逊、字节、奥多比、百度 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。…...

【面向对象程序设计】Java大作业 汽车租赁管理系统V4.0

前言 自己大二时候使用JavaMysql写的租车系统大作业V4.0黑窗口版的一个记录&#xff0c;简简单单的黑窗口&#xff0c;不是炫酷的前后端分离也没用GUI&#xff0c;但功能完善&#xff0c;该有都有&#xff0c;当时得分也还是挺不错的 技术栈 Java (jdk8)Mysql 资源包内容 …...

golang模拟QQ退出后自动重启

模拟QQ退出后自动重启&#xff0c;go build xxx.go 打包成exe运行。 processName 为你所需要的进程exe processNamePath 为你所需要的进程路径 package mainimport ("bytes""errors""fmt""os""os/exec""regexp"&…...

jQuery中ajax如何使用

jQuery中ajax如何使用及代码详解 1. 引言 在现代Web开发中&#xff0c;使用Ajax进行异步数据交互变得非常普遍。而在jQuery中&#xff0c;提供了便捷的方法来实现Ajax请求&#xff0c;简化了开发过程。本文将介绍jQuery中如何使用Ajax以及通过代码详解其使用方法。 2. Ajax简介…...

redis集群的多key原子性操作如何实现?

1、背景 在单实例redis中&#xff0c;我们知道多key原子性操作可以用lua脚本或者multi命令来实现。 比如说有一个双删场景&#xff0c;要保证原子性同时删除k1和k2。 可以用lua双删 EVAL "redis.call(del, KEYS[1]);redis.call(del, KEYS[2])" 2 k1 k2也可以用事务…...

藏在化橘红里的数字农业隐喻:拼多多将“地方风物”做成了新爆款

图片 2026年两会期间&#xff0c;化橘红因为一个点赞意外“出圈”。 不少人将化橘红的“走红”归结为偶然的流量红利&#xff0c;只要深入化橘红的产业肌理&#xff0c;就会发现并非是一场单纯的“流量造神”&#xff0c;而是电商供应链、新农人回流、产业化升级交织下的必然。…...

SecGPT-14B模型压力测试:验证OpenClaw高并发安全任务的稳定性

SecGPT-14B模型压力测试&#xff1a;验证OpenClaw高并发安全任务的稳定性 1. 测试背景与目标 最近在探索如何将OpenClaw与安全大模型结合&#xff0c;构建一个自动化安全分析助手。SecGPT-14B作为一款专注于网络安全的大模型&#xff0c;理论上可以处理端口扫描、日志分析等任…...

MSF(etasploit Framework)工具使用与实战

MSF工具介绍工具简介全称Metasploit Framework&#xff0c;是漏洞研究、渗透测试、漏洞验证的一体化平台&#xff0c;主要有以下五大核心模块&#xff1a; Auxiliary&#xff08;辅助模块&#xff09;&#xff1a;漏洞扫描、信息收集、端口扫描、服务探测&#xff08;无攻击载荷…...

文字的编码方式————不同UTF之间的区别

目录 1. 编码与字体 A. ASCII&#xff08;American Standard Code for Information Interchange&#xff09; B. ANSI C. UNICODE 2 . UNICODE 编码实现 &#xff08;1&#xff09;UTF-16 a. UTF-16 LE b. UTF-16 BE &#xff08;2&#xff09;UTF-8 &#xff08;3&#xff…...

RocketMQ的“三高”架构设计

RocketMQ的“三高”架构设计&#xff0c;主要围绕高可用、高吞吐、高扩展三个维度展开&#xff0c;分别解决服务不中断、性能不瓶颈、规模不设限的核心问题。1 高可用&#xff08;High Availability&#xff09;高可用的目标是确保部分组件故障时&#xff0c;消息服务依然可用&…...

AI辅助开发:描述需求即可自动生成流程图,比手动visio下载更智能

最近在做一个用户系统的设计&#xff0c;需要画登录注册的流程图。以前用Visio这类工具时&#xff0c;经常要手动拖拽各种图形、调整连线&#xff0c;特别费时间。这次尝试了用AI辅助生成&#xff0c;发现效率提升太多了&#xff01; 需求解析环节 我把需求描述成一段自然语言&…...

【通信】基于UCB的多智能体多臂老虎机算法降低 OBSS 干扰、提升系统吞吐量与公平性附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f447; 关注我领取海量matlab电子书和数学建模资料&#x1f34a;个人信条&#xff1a;格物致知,完整Matl…...

自己做SEO时有哪些容易被忽视的关键点_SEO 自己怎么做

自己做SEO时容易被忽视的关键点 在当今的互联网时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;已经成为每个网站主的必修课。在自己做SEO时&#xff0c;有些关键点往往会被忽视&#xff0c;导致网站的流量和排名并未达到最佳效果。本文将深入探讨这些容易被忽视的关…...

HAL_NVIC

文章目录一、NVIC简介   NVIC 做什么&#xff1f;二、NVIC模块详解   1、NVIC 寄存器   2、优先级的定义     1.优先级寄存器NVIC_IPRx     2.优先级分组3、NVIC 工作完整流程   4、F103中断向量表     1.内核异常向量&#xff08;固定&#xff0c;所有 CM…...

Adobe-GenP 3.0:创新Adobe CC通用补丁解决方案

Adobe-GenP 3.0&#xff1a;创新Adobe CC通用补丁解决方案 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP Adobe-GenP 3.0是一款基于AutoIt脚本开发的Adobe CC通用补…...