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) 是计算机科学领域与人工智能领域中的一个重要方向.它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和 ...
随机推荐
- EF ——left join
如何在EF中实现left join(左联接)查询_ var TestList = from p in context.PersonalInformation join d in context.Dep ...
- Windows 实用工具(新机、全新系统、重装系统必备)
Windows 实用工具 https://www.lanzoub.com/b0ziu7owh 密码:akoc HEU_KMS_Activator Windows 激活工具. 下载链接: Github: ...
- STM32F407——使用systick定时器裸机制作延时函数
准备工作: 软件:keil5 硬件:STM32F407ZET6芯片,gec6818开发板,st-link调试器 文档:<开发板原理图>,<Cortex M3与M4权威指南>,& ...
- Python 面向对象 之 多继承 MRO
Python 面向对象 之 多继承 MRO 回顾 - 类继承 关于子类的继承. 即子类可以继承父类的所有 方法及属性, 当子类要添加新功能或修改父类方法是, 可以在 子类对私进行 重写 overwri ...
- Python 面向对象 之 @property
Python 面向对象 之 Property 初识 @property Property 是 Python 类的一个内置的 装饰器. @property 的作用是 将一个方法, 变为属性来调用. 装饰 ...
- 详解SLAM中的李群和李代数(中)
1 概述 在上一篇文章<详解SLAM中的李群和李代数(上)>中,我们已经通过对李群求导引出了李代数.在这篇文章中,我们就系统总结一下李代数的相关知识. 2 李代数 2.1 定义 李代数是一 ...
- VUE构建
VUE 渐进式 JavaScript 框架 易学易用 基于标准 HTML.CSS 和 JavaScript 构建,提供容易上手的 API 和一流的文档. 性能出色 经过编译器优化.完全响应式的渲染系统 ...
- dify调用Streamable HTTP MCP应用
一.概述 上一篇文章,介绍了使用python开发Streamable HTTP MCP应用,链接:https://www.cnblogs.com/xiao987334176/p/18872195 接下 ...
- AD 权限维持-金票银票攻击
本文通过 Google 翻译 Domain Persistence – Golden Ticket and Silver Ticket Attacks 这篇文章所产生,本人仅是对机器翻译中部分表达别扭 ...
- Java子类上加lombock注解@Data或者@ToString,日志中不包括父类的属性
问题描述:Java子类上加lombock注解@Data或者@ToString,在翻阅日志的时候,发现不打印父类的属性. 问题分析:@Data在编译时会自动为实体类添加setter.getter和toS ...