首页 > 其他分享 >词向量的维度应该怎么选择

词向量的维度应该怎么选择

时间:2024-01-29 14:55:05浏览次数:37  
标签:log 选择 logN 8.33 Embedding 维度 向量

在之前的文章《最小熵原理(六):词向量的维度应该怎么选择?》中,我们基于最小熵思想推导出了一个词向量维度公式“n>8.33logN�>8.33log⁡�”,然后在《让人惊叹的Johnson-Lindenstrauss引理:应用篇》中我们进一步指出,该结果与JL引理所给出的O(logN)�(log⁡�)是吻合的。

既然理论上看上去很完美,那么自然就有读者发问了:实验结果如何呢?8.33这个系数是最优的吗?本文就对此问题的相关内容做一个简单汇总。

词向量 #

首先,我们可以直接,当N�为10万时,8.33logN≈968.33log⁡�≈96,当N�为500万时,8.33logN≈1288.33log⁡�≈128。这说明,至少在数量级上,该公式给出的结果是很符合我们实际所用维度的,因为在词向量时代,我们自行训练的词向量维度也就是100维左右。可能有读者会质疑,目前开源的词向量多数是300维的,像BERT的Embedding层都达到了768维,这不是明显偏离了你的结果了?

事实上,像FastText之类的开源词向量是300维,也没法否定128维能够达到类似效果的可能性。至于BERT,它本身并不是一个词向量模型,所以它选多少维跟词向量维度的选择也没有直接关系,何况ALBERT已经表明,将Embedding层进行低秩分解(降到128维)几乎不会改变模型效果,因此BERT的768维Embedding多多少少是有冗余的。

关于词向量的评价,2015年有一篇比较全面的论文《How to Generate a Good Word Embedding?》可以参考,文中显示其实词向量在超过50维之后的提升就比较弱了,这也算是n>8.33logN�>8.33log⁡�的一个佐证吧~

 

https://kexue.fm/archives/8711

标签:log,选择,logN,8.33,Embedding,维度,向量
From: https://www.cnblogs.com/ExMan/p/17994531

相关文章

  • 在Python的Tkinter库中,`ttk.Combobox`是一个组合框控件,它允许用户从下拉列表中选择一
    在Python的Tkinter库中,`ttk.Combobox`是一个组合框控件,它允许用户从下拉列表中选择一个选项,也可以让用户输入内容。以下是一些主要的参数和方法:1.**创建Combobox**¹²:  ```python  importtkinterastk  importtkinter.ttkasttk  root=tk.Tk()  ......
  • 名企测试管理大咖解析沟通管理,多维度经验分享
    沟通管理在测试开发中扮演着至关重要的角色,它不仅是团队协作的基石,也是项目成功的关键因素之一。有效的沟通管理能够促进信息传递、问题解决以及团队协同工作,为测试开发的顺利进行提供坚实支持。但在实际工作中却有很多的问题,你是否在工作中遇到过以下问题呢?在团队会议上,需要分享自......
  • 向量数据库简介
    学习一下什么是向量数据库,原文地址:https://www.percona.com/blog/an-introduction-to-vector-databases/ 设想一下,地球的南半球即将进入冬季,而你想要去Patagonia旅行,因此你需要买几件舒适的衣服。你打开谷歌浏览器,并在搜索框输入"适合Patagonia天气的夹克衫",并没有考虑特......
  • 坚持与努力的背后:从校园到职场,我选择奋斗
    人生逐梦正当时我本不是天赋异禀的人,在茫茫人海之中甚至有些平庸,可我的人生不是潦草诗,这一次的我想为自己改写航线。时节如流,奋斗以恒回忆起大一的时候,在学长的带领下,我加入了学院的网络安全协会,在这一年将Linux操作系统做了一个基础的学习,为以后的课程打下了基础。我并不是......
  • RC4Drop加密:提升数据保护的新选择
    摘要:RC4Drop是一种基于RC4算法的加密技术,通过将明文数据分成多个部分并进行加密,实现了对数据的高效保护。本文将对RC4Drop加密技术的优缺点进行详细分析,并给出一个Java完整demo示例。RC4Drop加密解密|一个覆盖广泛主题工具的高效在线平台(amd794.com)https://amd794.com/r......
  • 分期部署运维项目:系统整合与产品选择的策略
      在IT领域,运维一直是确保系统稳定、高效运行的关键环节。然而,随着企业IT系统的日益复杂,传统的运维模式已逐渐暴露出诸多不足。在这样的背景下,一体化运维应运而生,成为当前企业IT运维的主流趋势。那么,一体化运维究竟有何魅力?它的未来又将走向何方?  一体化运维的兴起,源于企业......
  • 【QT】选择和打开中文路径文件目录
    场景:Qt选择和打开目录,支持中文、空格等实现:#选择目录QStringstrDir="D:\\";QStringqslPath=QFileDialog::getExistingDirectory(this,"",strDir);ui->l_path->setText(qslPath);#打开目录QStringpath=ui->l_path->text();if(!path.isEmpty())QDe......
  • 为了生成latex如何在sympy中自定义向量函数?适用于自定义类的latex生成。
    在sympy.printing.Printer的_print函数中可以看到一个hook,使得对于每一个类都会尝试寻找对应的_print_{class}函数来处理,因此我们只要利用好这个hook就可以为自定义类创建latex生成逻辑,我试图创建了一个_print_BoldUndefinedFunction函数,但发现它捕获不到(其实是因为BoldUndefinedF......
  • 【板子】冒泡/选择/插入 排序
    #include<bits/stdc++.h>usingnamespacestd;#defineN101inta[N];voidsort_mp(){for(inti=1;i<100;i++){for(intj=1;j<100;j++){if(a[j]>a[j+1]){swap(a[j],a[j+1]);......
  • Python_numpy-增加以及修改维度
    gradio组件输入组件-输出组件输入输出组件 多输入和多输出组件gr.State是一个不可见的组件,目的是在后台存储一些变量方便访问和交互BlockcomponentsTextbox:interactiveinteractive=TrueEventlistenerchange()e......