SciTech-Mathematics-Probability+Statistics-原创设计与实现“数学模型”与“算法” : “点积、向量 和余弦相似度”的革新: “Dot products, cosine similarity, text vectors”
请参考一下的“点积、余弦相似度 和 文本向量”,
我们会发现:
Cosine Similarity = (A . B) / (||A||.||B||)
以上这个“数学公式”具有“对称性”:
C.S.(A, B) = C.S.(B, A) = (A . B) / (||A||.||B||)
也就表示:
与“向量 A ”的“余弦相似度”为“某一个值”向量“B”,
有“许多个“解向量”。
那怎么解决实现“复数集”上的“N维向量空间”?
- 并且在在“复数集”上的“N维向量空间”, 的任何一维上,
建立“复数集”上的“运算域”及其“运算规则”? - 并且设计实现多维(复数集)之间的“运算”定义与性质?
以上两条是有重要的现实意义的.
例如在“复数坐标系”上:
∠(A, B) 与 ∠(B, A) 是不同的(一个是+正角度,一个是–负角度 )
我们就能用“复数坐标系”的“两个向量的夹角”度量这“两向量”的“Similarity” 。
OR我们也能提取“两个角度”的 “Polarity”(极性,正:1, 负:-1) 与 Cosine Similarity组合来表示Similarity,
既能度量大小,也能度量两个向量的起与止.
坐标系”?
C.S.(A, B) = C.S.(B, A) = (A . B) / (||A||.||B||)
优秀的原创都“开始于一个问题”
例如 Embeding(词向量的嵌入)、Google Transformer的Attention(Q,K,V)和 P.E. Encoding, 都是有原创的数学模型与算法设计的, 当然, 他们也都是“开始于一个问题”。
Dot products, cosine similarity, text vectors
https://dev.to/sayemmh/dot-products-cosine-similarity-text-vectors-2lo4
Sayem Hoque, Posted on Oct 20, 2022
Dot products, cosine similarity, text vectors
Cosine similarity is a measure between two single dimensional vectors that gives us a value ranging 0-1 to inform of the similarity between the vectors. The formula is below:
Cosine Similarity = (A . B) / (||A||.||B||)
Where (A . B) is the dot product between vector A and B. A dot product is the sum of the element-by-element product between A and B. For example,
A = [1, 2, 3]
B = [4, 5, 6]
A . B
>> 32
# (1 * 4) + (2 * 5) + (3 * 6) = 32
Meanwhile, ||A|| is the notation used to denote the L2 Norm of a vector. The L2 norm is a method to calculate the length of a vector in Euclidean space. Think of this as the length of a vector of length N as a "line" if the vector was drawn out on a N-dimensional graph. You sum the squares of the values in each dimension, and take the square root of the sum.
A = [1, 2, 3]
norm(A)
>> 3.7416573
# (1^2 + 2^2 + 3^2)^0.5 = 3.7416573
Numpy has a bunch of helpers so we don't need to run all of these calculations manually:
import numpy as np
from numpy.linalg import norm
# define two lists or array
A = np.array([1,2,3,4])
B = np.array([1,2,3,5])
# cosine similarity
cosine = np.dot(A, B) / (norm(A) * norm(B))
print("cosine similarity:", cosine)
>> 0.9939990885479664
A cosine similarity score near 1 means the vectors are very close to one another if they were projected
SciTech-Mathematics-Probability+Statistics-原创设计与实现“数学模型”与“算法” : “点积、向量 和余弦相似度”的革新: “Dot products, cosine similarity, text vectors”的更多相关文章
- Probability&Statistics 概率论与数理统计(1)
基本概念 样本空间: 随机试验E的所有可能结果组成的集合, 为E的样本空间, 记为S 随机事件: E的样本空间S的子集为E的随机事件, 简称事件, 由一个样本点组成的单点集, 称为基本事件 对立事件/ ...
- 设计AOV网拓扑排序的算法
拓扑排序 对一个有向图构造拓扑序列的过程称为拓扑排序(不唯一) 思想 从AOV网选择一个没有前驱的顶点并输出 从AOV网中删去该顶点,并且删去所有以该顶点为尾的弧 重复上述两步,直到全部顶点都被输出, ...
- 【原创】通俗易懂的讲解KMP算法(字符串匹配算法)及代码实现
一.本文简介 本文的目的是简单明了的讲解KMP算法的思想及实现过程. 网上的文章的确有些杂乱,有的过浅,有的太深,希望本文对初学者是非常友好的. 其实KMP算法有一些改良版,这些是在理解KMP核心思想 ...
- 『算法设计_伪代码』贪心算法_最短路径Dijkstra算法
Dijkstra算法实际上是一个贪婪算法(Greedy algorithm).因为该算法总是试图优先访问每一步循环中距离起始点最近的下一个结点.Dijkstra算法的过程如下图所示. 初始化 给定图中 ...
- 强化学习 CartPole实验的一些启发 有没有可能设计一个新的实验呢?(杆子可以向360度方向倾倒,可行吗?)
最近在看强化学习方面的东西,突然想到了这么一个事情,那就是经典的CartPole游戏我们改变一下,或者说升级一下,那么使用强化学习是否能得到不错的效果呢? 原始游戏如图: 一点个人的想法: ===== ...
- (原创)数据结构之利用KMP算法解决串的模式匹配问题
给定一个主串S(长度<=10^6)和一个模式T(长度<=10^5),要求在主串S中找出与模式T相匹配的子串,返回相匹配的子串中的第一个字符在主串S中出现的位置. 输入格式: 输入有两行 ...
- 算法设计和分析(Prim算法构建最小生成树)
问题: 给定无向图G(N,M)表明图G有N个顶点,M条边,通过Prim算法构造一个最小生成树 分析: 算法流程: 构造好的最小生成树就是step6 运行代码: #include<cstdio&g ...
- 原创:史上对BM25模型最全面最深刻的解读以及lucene排序深入讲解
垂直搜索结果的优化包括对搜索结果的控制和排序优化两方面,其中排序又是重中之重.本文将全面深入探讨垂直搜索的排序模型的演化过程,最后推导出BM25模型的排序.然后将演示如何修改lucene的排序源代码, ...
- PLSA及EM算法
前言:本文主要介绍PLSA及EM算法,首先给出LSA(隐性语义分析)的早期方法SVD,然后引入基于概率的PLSA模型,其参数学习采用EM算法.接着我们分析如何运用EM算法估计一个简单的mixture ...
- NLP 自然语言处理实战
前言 自然语言处理 ( Natural Language Processing, NLP) 是计算机科学领域与人工智能领域中的一个重要方向.它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和 ...
随机推荐
- 【MOOC】华中科技大学操作系统慕课答案-第1~3章单元测试
单选 1 下列说法错误的是 . A. 手工操作阶段,资源利用率低的原因是因为程序的准备和撤销都需要手工完成. B. 单道批处理系统中CPU和外设交替工作和空闲. √C. 单道批处理系统效率之所以比手工 ...
- 国际化利器 Intl Messageformat
我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:霜序 Formats ICU Message string ...
- 物联网之对接MQTT最佳实践
小伙伴们,你们好呀,我是老寇,跟我一起学习对接MQTT 安装EMQX 采用docker-compose一键式启动!!! 还没有安装docker朋友,参考文章下面两篇文章 # Ubuntu20.04安装 ...
- TVM:使用自动调度优化算子
与基于模板的AutoTVM不同(会依赖手动模板定义搜索空间),自动调度器不需要任何模板.用户只需要编写计算声明,而不需要任何调度命令或模板.自动调度器可以自动生产一个大的搜索空间,并在空间中找到一个好 ...
- Windows平台调试器原理与编写05.内存断点
https://www.bpsend.net/thread-274-1-3.html 内存断点 访问断点 写入断点 内存写入断点 简介:当被调试进程访问,读或写指定内存的时候,程序能够断下来. 思考1 ...
- 高德API获取省市区---python3实现
# -*- coding: utf-8 -*- """ Created on Thu Nov 4 15:40:25 2021 @author: 何双新 "&qu ...
- 【附源码】C语言的学生管理系统完整实现方案
以下是一个基于C语言的学生管理系统完整实现方案,结合了结构体.链表.文件存储.菜单驱动等核心技术,参考了多个开源项目与课程设计案例. 系统支持管理员/学生双角色权限.数据持久化存储及完整增删改查功能, ...
- python基础—内置函数
1.数学运算类 (1).abs(x) 求绝对值,参数x可以是整形,也可也是复数,如果是复数,则返回复数的模 abs(-1) >> 1 (2).divmod(x,y) 返回两个数值的商和余数 ...
- centos上redis的安装
官网教程 redis安装官网 https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/ 可以右下方看到安装到各 ...
- DRF之过滤类源码分析
DRF之过滤类源码分析 [一]过滤类介绍及BaseFilterBackend Django REST framework(DRF)中的过滤类允许你在API视图中对查询进行过滤,以根据特定条件筛选结果集 ...