首页 > 其他分享 >为什么点积可以计算相似性

为什么点积可以计算相似性

时间:2023-09-02 15:33:25浏览次数:32  
标签:点积 维度 计算 相似性 长度 夹角 向量

点积又称内积,就是一种向量操作,把两个向量的元素对应相乘,然后把结果相加即可。

它可以计算相似性,还要从向量空间说起。向量就是一列数字,这一列有多少元素,就看成是多少维度的空间。

如向量a

array([[1],
       [2],
       [3],
       [4],
       [5],
       [6]])

那么我就可以把 a 看成是在一个6维空间的一个点。这么做的好处是点最简单啊,如果是一个二维的图像,你想有多少分类(三角形、长方形、菱形。。。),这些分类的每一种又有多少性质?总之,问题就复杂了,而一个点就简单了,独一无二,没有啥性质,唯一的性质就是它的坐标了,把问题简单化就是这么做的目的。

如果 a 点的坐标数据表示一个事物的属性值,那么如果事物 b 的属性值和 a 特别相似,就可以认为 a 和 b 特别相似。

这和点积有啥关系?这就是点积的另外一个公式: a·b=|a||b|cosθ   ,其中|a| 代表空间中点 a 到原点的长度 |b|也类似。θ代表0a 和 0b的夹角,0代表原点。

如果两个点的长度相近,夹角接近0,那么就认为相似。

在夹角的区间[0,pi]中,cos的值在[-1,1]取值。

而长度那就没边了,可以取整个实数域。要把长度和夹角的权重都差不多才行,否则长度过大,就会不准。

解决办法就是把长度映射到区间[0,1]上,用指数函数,以e为底 e^{-x},当然这是原型,实际还要复杂一点。这样长度和夹角都有相等的权重,它们相乘的结果才会有相似度的度量功能。

这样,点积就可以度量相似性了,即点积值越大的,相似性越高。

上面虽然已经解决了,但有时长度过大,再加上指数函数的性质,导致点积值飞快的接近0,甚至出现下溢出的问题。

看指数的图像也可以看出来:

到 -5 的时候已经很接近 0 了,最好是把 x 的取值区间也控制一下,比如数值的取值范围大多在10万以内,维度是6,则除以 72 这样 x 数值就控制在1400以内了,这个 72 就是维度的平方乘以 2,故最后的归一公式这个样子:

np.exp(-0.5 * x^2/d^2)

参数也不宜过大,这样是指就都接近 1 了,总之一言以蔽之,中庸之道最好。

 

标签:点积,维度,计算,相似性,长度,夹角,向量
From: https://www.cnblogs.com/litifeng/p/17673730.html

相关文章

  • 银澎云计算 好视通视频会议系统 任意文件下载 CNVD-2020-62437
    漏洞描述银澎云计算好视通视频会议系统存在任意文件下载,攻击者可以通过漏洞获取敏感信息漏洞复现fofa语法:app="好视通-视频会议"登录页面如下:POC:https://xxx.xxx.xxx.xxx/register/toDownload.do?fileName=../../../../../../../../../../../../../../windows/win.inin......
  • 基于Android的校园共享单车租赁管理系统的设计与实现-计算机毕业设计源码+LW文档
    一、选题的目的和意义目的:校园共享单车租赁管理的设计与实现是以解决高校师生课余时间紧张的问题为目的的。在校内设置共享单车,大大减少了师生上课路途所用的时间,从而可以提高学生的学习效率。共享单车操作快捷、方便、经济,对于经济能力较低的大学生而言是一种绝佳的交通工具。相......
  • 基于Java的高校学生请假审批系统的设计与实现-计算机毕业设计源码+LW文档
    一、选题的目的和意义:计算机技术的发展,带来了时代变革,我们的生活方式发生了重大改变。计算机网络的普及使得信息共享成为现实,利用数据库进行信息存储分析,优化了工作方式,提高了工作效率,经过多年的发展,数据库已经应用到社会生活的方方面面,完善的数据库技术和理论基础为计算机软件提......
  • 10个随机粒子的行为计算的软件epc2024下载
    算是一个10粒随机粒子的行为计算的软件,算是一个高级的粒子例子的数据工具,类似与一个好玩的数据玩具。Itisasoftwareforcalculatingthebehaviorof10randomparticles,anadvanceddatatoolforparticleexamples,similartoafundatatoy.本软件是Windows下的64......
  • 如何计算硬盘、RAID组与Ceph的IOPS
    机械硬盘7200硬盘IOPS=1000/(3+1000*(7200/60)/2)=14010k硬盘IOPS=1000/(3+60000/10000/2)=16715k硬盘IOPS=1000/(3+60000/15000/2)=200其中3为寻道延迟,7200/10k/15k为转速(rpm),1000*(7200/60)/2为旋转延迟(旋转延迟一般用转一圈所需时间的1/2表示),结果为理论峰值......
  • 分布式存储FusionStorage将搬迁走的计算节点踢出集群
    1、登录DeviceManager管理界面,在服务-vbs页面下,选中已经异常的VBS,将异常的VBS进行强制删除。2、通过第三方远程连接工具,连接进FSM后台,IP为浮动IP,用fsadmin用户进入,切换到root用户。fsadmin默认密码:IaaS@OS-CLOUD9!2.1执行su- rootroot默认密码:IaaS@OS-CLOUD8!3、执行ism......
  • 计算机体系结构量化学习方法-学习笔记0(i7 存储层次结构)
    1、interi7所用层次结构内容​ 修改处DataDLB(DataTLB).​ 2、Interi7存储器层次结构及指令与数据访问步骤图 3、指令与数据访问步骤:指令地址的页帧(36bit)被发送给指令TLB(①)。同时虚拟地址的12位页内偏移量被发送给指令缓存(ICACHE).对于8路组相连cache来说,缓存需要......
  • 浪潮信息携手《中国金融电脑》,举办金融计算力发展趋势主题沙龙
    背景:今年7月,浪潮信息联合国际数据公司IDC、清华大学全球产业研究院发布了最新的《2022—2023全球计算力指数评估报告》,从15个国家、13个行业和新兴技术三个维度分析算力的需求变化和未来走势。如何从这份报告中进一步解读金融业算力发展趋势及技术方向成为从事金融业算力研究及建设......
  • 5分钟带你回顾大文件分片以及异步计算hash的步骤
    背景  文件上传功能在中后台项目中是最常见的功能,分片上传是一种将大文件分割成多个小片段进行上传的技术,可以有效提高文件上传的速度和稳定性。思路  1.首先就是使用File.slice对文件进行分割产出一个数组用于存储每个小的chunk片段  2.异步计算hash值,可用作标识文......
  • 计算机的可靠性
    计算机系统的可靠性是指从它开始运行(t=0)到某时刻t这段时间内能正常运行的概率,用R(t)表示。所谓失效率,是指单位时间内失效的元件数与元件总数的比例,用λ表示,当λ为常数时,可靠性与失效率的关系为:R(t)=e^(-λt)平均无故障时间:两次故障之间系统能正常工作的时间的平均值称为平均无故障......