Annoy Indexing の仕組みを理解しようとしています.次のドキュメントを参照しました:
https://github.com/spotify/annoy#how-does-it-work
https://cloud.google.com/solutions/machine -learning/building-real-time-embeddings-similarity-matching-system
これらのドキュメントは annoy からインデックスを取得する方法を説明していますが、インデックスがどのように作成されるかを説明していませんか?
3次元の文埋め込み行列があるとしましょう(簡単にするため)
[[1,2,3]
[4,2,3]
[1,2,3]
[1,1,1]]
多くのリソースを見ると、次の点で混乱しました。
- Annoy は最初にこれらにインデックスを付けてから、最近傍を見つけるために使用しますか?
- 最近隣ツリーを適用してから、隣人に基づいてインデックスを作成しますか? これが最も適切なようです..そうであれば、どのようにインデックスを作成しますか? その背後にあるアルゴリズムを知りたい..