2 min readfrom Machine Learning

MS MARCO click-translation expansion tables ("poor man's" DSSM) [P]

TLDR: I made "poor man’s" DSSM (Deep Structured Semantic Model) — the count-based translation table that can enrich the inverted index for full-text search. This trick can improve baseline BM25.

So the idea is the following:

- You have supervised pairs (query, relevant document), e.g., MS MARCO or click logs.

- You tokenize both sides into some units (char n‑grams, wordpieces, words).

- You count cross‑pair co‑occurrences: unit u on the document side vs. unit v on the query side (not co‑occurrence within the same text).

- For each document‑side unit u, you keep the top‑k query‑side units v with the strongest association.

- At indexing time, each document gets postings not only for its own units, but also for the top‑k associated units of each of its units — i.e., document expansion baked into the inverted index.

It’s like mixing synonyms into the search query (but it’s not a synonyms exactly). The one difference from the DSSM is that it can only handle linear dependencies whilst DSSM can do the non-linear one.

And so it improves the performance over BM25 baseline.

I packed it as hf model repo: https://huggingface.co/mirth/msmarco-expansion-tables with a small usage demo script.

I am not claiming that this is a new idea. I made it because it’s fun and I’m planning to use it in my own search engine project.

submitted by /u/SpiritedTrip
[link] [comments]

Want to read more?

Check out the full article on the original site

View original article

Tagged with

#MS MARCO
#DSSM
#BM25
#Inverted Index
#Full-text Search
#Click Logs
#Query Expansion
#Tokenization
#N-grams
#Wordpieces
#Co-occurrence
#Translation Table
#Document Expansion
#Linear Dependencies
#Synonyms
#Supervised Learning
#Hugging Face
#Indexing
#Search Engine
#Postings