卷积层(Convolutional Layer),卷积运算,全连接层(Fully Connected Layer) ,神经网络 https://jalammar.github.io/illustrated-transformer/
sigmoid
softmax
Deep Learning Playground by Google 网址: https://playground.tensorflow.org/ 谷歌推出的深度学习交互式平台,虽然主要是全连接网络,但适合用来学习基本概念。
判断两个向量相似度的基础方法
在RAG(检索增强生成)系统中,判断两个向量的相似度是核心任务之一。以下是几种常用的向量相似度判断方法:
1. 余弦相似度 (Cosine Similarity)
最常用的方法,衡量两个向量在方向上的相似性,忽略大小差异。
公式:
cos(θ) = (A·B) / (||A|| * ||B||)
其中:
- A·B 是向量点积
- ||A|| 和 ||B|| 是向量的欧几里得范数
特点:
- 范围在[-1,1]之间
- 1表示完全相同方向,0表示正交,-1表示完全相反
2. 点积相似度 (Dot Product)
简单的向量相乘相加,考虑向量的方向和大小。
公式:
similarity = Σ(Ai * Bi)
特点:
- 值越大越相似
- 受向量长度影响较大
3. 欧几里得距离 (Euclidean Distance)
衡量向量之间的直线距离。
公式:
distance = √Σ(Ai - Bi)²
特点:
- 距离越小越相似
- 对向量长度敏感
4. 曼哈顿距离 (Manhattan Distance)
城市街区距离,各维度绝对差之和。
公式:
distance = Σ|Ai - Bi|
5. Jaccard相似度
适用于二元向量(0/1),计算交集与并集的比例。
选择建议
- 文本嵌入:通常使用余弦相似度,因为它对向量长度不敏感,更适合比较语义
- 密集检索:点积运算效率高,常被实际系统采用
- 距离度量:欧几里得距离直观但受维度影响大
在实际RAG系统中,通常会先使用向量数据库进行近似最近邻(ANN)搜索,然后对候选结果进行精确的相似度计算排序。
