Chroma DB默认采用squared L2 norm作为衡量两个向量距离的计算方式,可以在创建collection的时候更改metadata的hnsw:space
字段指定其他距离计算公式,方式如下:
collection = client.create_collection(
name="collection_name",
metadata={"hnsw:space": "cosine"} # l2 is the default
)
支持的全部计算公式,将hnsw:space
字段设置为parameter一栏的标识符即可设置
Distance | parameter | Equation |
---|---|---|
Squared L2 | ‘l2’ | d = ∑ ( A i − B i ) 2 d = \sum\left(A_i-B_i\right)^2 d=∑(Ai−Bi)2 |
Inner product | ‘ip’ | d = 1.0 − ∑ ( A i × B i ) d = 1.0 - \sum\left(A_i \times B_i\right) d=1.0−∑(Ai×Bi) |
Cosine similarity | ‘cosine’ | d = 1.0 − ∑ ( A i × B i ) ∑ ( A i 2 ) ⋅ ∑ ( B i 2 ) d = 1.0 - \frac{\sum\left(A_i \times B_i\right)}{\sqrt{\sum\left(A_i^2\right)} \cdot \sqrt{\sum\left(B_i^2\right)}} d=1.0−∑(Ai2)⋅∑(Bi2)∑(Ai×Bi) |
参考文献
- https://docs.trychroma.com/usage-guide