Weaviate的KNN分类算法背后的逻辑是什么?
What is the logic behind Weaviate's KNN classification algorithm?
我正在使用Weaviate的KNN引擎进行multiclass class化,但我不明白:
- 它使用什么样的 KNN?
- 是使用简单投票还是距离加权投票?
- 是否使用余弦距离?
- 它是使用某种方法找到可能的邻居还是使用蛮力找到所有真正的最近邻居?
- 什么是 winning/losing 组,它们如何用于预测新向量的 class?
很好的问题,让我一一回答:
What kind of KNN is it using?
我不完全确定你所说的“什么样的”是什么意思,但我认为这将通过剩下的问题得到解答。要记住的一件事是,Weaviate 的 kNN classification 使用特定 class 的现有向量索引。因此,根据您是自带向量还是使用向量化模型,输入参数将决定 classification 运行的对象。例如,如果您在 text
属性 上使用名称为 description
的 text2vec
模块,则这些描述将用于查找最接近的匹配项。
is it using simple voting or distance weighted voting?
从 v1.8.0
开始,这是简单的投票。距离加权投票可能是未来的一个很好的补充。
is it using cosine distance?
如第一个答案中所述,您为 class 选择的任何设置也将适用于 class 化。从 v1.8.0
开始,Weaviate 通常使用余弦距离,但有计划在不久的将来添加 other distance metrics。
does it use a method to find possible neighbors or use brute force to find all true nearest neighbors?
与上面类似,它遵循class的设置。通常它使用 HNSW approximate index。您可以在 class 级别调整其参数。
what are winning/losing groups and how are they used to predict the class of a new vector?
它们是一种工具,可以深入了解为什么 class化会产生这样的结果。获胜组是获得最高票数的结果“组”,因此导致该项目被 class 如此确定。失败的组(可能有多个)是未获得最高选票的替代“组”。了解每个组可能是调整 k
以便将来 class 化的一个很好的见解。
我正在使用Weaviate的KNN引擎进行multiclass class化,但我不明白:
- 它使用什么样的 KNN?
- 是使用简单投票还是距离加权投票?
- 是否使用余弦距离?
- 它是使用某种方法找到可能的邻居还是使用蛮力找到所有真正的最近邻居?
- 什么是 winning/losing 组,它们如何用于预测新向量的 class?
很好的问题,让我一一回答:
What kind of KNN is it using?
我不完全确定你所说的“什么样的”是什么意思,但我认为这将通过剩下的问题得到解答。要记住的一件事是,Weaviate 的 kNN classification 使用特定 class 的现有向量索引。因此,根据您是自带向量还是使用向量化模型,输入参数将决定 classification 运行的对象。例如,如果您在 text
属性 上使用名称为 description
的 text2vec
模块,则这些描述将用于查找最接近的匹配项。
is it using simple voting or distance weighted voting?
从 v1.8.0
开始,这是简单的投票。距离加权投票可能是未来的一个很好的补充。
is it using cosine distance?
如第一个答案中所述,您为 class 选择的任何设置也将适用于 class 化。从 v1.8.0
开始,Weaviate 通常使用余弦距离,但有计划在不久的将来添加 other distance metrics。
does it use a method to find possible neighbors or use brute force to find all true nearest neighbors?
与上面类似,它遵循class的设置。通常它使用 HNSW approximate index。您可以在 class 级别调整其参数。
what are winning/losing groups and how are they used to predict the class of a new vector?
它们是一种工具,可以深入了解为什么 class化会产生这样的结果。获胜组是获得最高票数的结果“组”,因此导致该项目被 class 如此确定。失败的组(可能有多个)是未获得最高选票的替代“组”。了解每个组可能是调整 k
以便将来 class 化的一个很好的见解。