最近邻搜索vs近重复检测



我正在为"近重复检测"寻找一些AI/ML和非AI/ML解决方案。问题(文本,图像,音频),我发现有一个类似的/确切的问题I,e,"最近邻搜索";这似乎与"近重复检测"的处理方式完全相同。我想知道这两个问题或它们的解决方法是否有什么不同。

从英语的角度来看,这两个问题的名称在语义上似乎是相同的。

在最近邻搜索中,你有一组元素,给定一个参考元素,你想在集合中搜索一个相对于给定度量最接近参考的元素。

在近重复检测中,你有一组元素,给定一个参考元素,你想在集合中搜索一个元素,它是相对于给定度量最接近于引用的重复的元素。

话虽如此,在文献中,当集合中的元素是文本文档时,我看到人们通常使用后一个名称。在这种情况下,一个示例算法包括获取文本文档(k-shingles)的大小为k的窗口集,并在每个文档的k-shingles集之间使用Jaccard度量(两个文档中共有的瓦片数除以不同瓦片数)比较两个文档。为了避免显式地计算雅卡德度规,有一个定理。如果您将所有k-shingles散列为64位整数(例如),并考虑从64位整数到64位整数的随机排列,那么,如果您将该排列应用于每个文档的散列k-shingles集合,则两个排列值集合中每个最小元素相等的概率等于两个文档之间的Jaccard度量。

另一方面,如果元素集合是R^n的子集(例如),我看到人们通常使用名字。在这种情况下,存在许多技术。例如,一些有用的数据结构是八叉树,kd树。

话虽如此,人们也使用向量化技术将一些元素集合转换成R^n的子集。例如signal2vec, word2vec等

最新更新