SYNTOLOGY HomeExplorerAtlasCodeMethodologyAboutDevelopersFeedPricing
Paper · 2105.03933 · 2021

Joint Learning of Deep Retrieval Model and Product Quantization based Embedding Index

arXiv · PDF · Open in the Atlas

Code that ran

We lifted 3 functions out of this paper's own repositories and ran 1 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.

RepositoryRoleRan
jdcomsearch/poeem canonical 1 of 3
FunctionStatusWhere it lives
compute_distortion Ran jdcomsearch/poeem/src/python/embedding.py
code served (permissive licence) · get_code("06339b9bd192f3e1")
compute_rotation Not yet run jdcomsearch/poeem/src/python/embedding.py
code served (permissive licence) · get_code("6d8bad237377c500")
encode Not yet run jdcomsearch/poeem/src/ops/python/encode.py
code served (permissive licence) · get_code("d3edc68ba2422435")

Repositories linked to this paper

Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.

Abstract

Embedding index that enables fast approximate nearest neighbor(ANN) search, serves as an indispensable component for state-of-the-art deep retrieval systems. Traditional approaches, often separating the two steps of embedding learning and index building, incur additional indexing time and decayed retrieval accuracy. In this paper, we propose a novel method called Poeem, which stands for product quantization based embedding index jointly trained with deep retrieval model, to unify the two separate steps within an end-to-end training, by utilizing a few techniques including the gradient straight-through estimator, warm start strategy, optimal space decomposition and Givens rotation. Extensive experimental results show that the proposed method not only improves retrieval accuracy significantly but also reduces the indexing time to almost none. We have open sourced our approach for the sake of comparison and reproducibility.

For agents

The same record, over MCP at https://syntology.ai/mcp:

get_harvested_code_for_paper("2105.03933")
get_code_for_paper("2105.03933")
have("2105.03933")

Connect an agent — have() is free.