Why do we convert documents into vectors before re-ranking?
ABecause vectors remove all meaning from documents
BBecause vectors make documents shorter
CBecause vectors let the model compare documents numerically
DBecause vectors are easier to read by humans
Key Insight
Re-ranking improves search by using a model to score and reorder results, making the best matches appear first. This step refines initial broad retrieval to a focused, relevant list.
Practice
(1/5)
1.
What is the main purpose of re-ranking retrieved results in a search system?
easy
A. To sort the initial search results again using a better scoring method
B. To remove duplicate results from the search output
C. To speed up the initial search query processing
D. To translate results into different languages
Solution
Step 1: Understand the role of re-ranking
Re-ranking means sorting results again after the first search to improve order.
Step 2: Identify the goal of re-ranking
The goal is to use a smarter scoring method to show the most relevant results at the top.
Final Answer:
To sort the initial search results again using a better scoring method -> Option A
Quick Check:
Re-ranking = better sorting [OK]
Hint: Re-ranking means sorting results again for better relevance [OK]
Common Mistakes:
Confusing re-ranking with removing duplicates
Thinking re-ranking speeds up initial search
Assuming re-ranking translates results
2.
Which of the following code snippets correctly represents a simple re-ranking step that sorts a list of results by their score in descending order?
D. results.sort(key=lambda x: x['score'], reverse=True)
Solution
Step 1: Identify sorting by score descending
We want to sort by 'score' in descending order, so reverse=True is needed.
Step 2: Check each option
results.sort(key=lambda x: x['score'], reverse=True) sorts by 'score' with reverse=True, which is correct. Others either sort by 'id' or ascending score or missing key.
Final Answer:
results.sort(key=lambda x: x['score'], reverse=True) -> Option D
Quick Check:
Sort by score descending = results.sort(key=lambda x: x['score'], reverse=True) [OK]
Hint: Sort with key and reverse=True for descending order [OK]
Common Mistakes:
Forgetting reverse=True for descending sort
Sorting by wrong key like 'id'
Using sort without key causing error
3.
Given the following code that re-ranks search results by a new score, what will be the output after re-ranking?
results = [
{'id': 'a', 'score': 0.3},
{'id': 'b', 'score': 0.8},
{'id': 'c', 'score': 0.5}
]
# New scores from a re-ranker
new_scores = {'a': 0.9, 'b': 0.4, 'c': 0.7}
for r in results:
r['score'] = new_scores[r['id']]
results.sort(key=lambda x: x['score'], reverse=True)
print([r['id'] for r in results])
Sorted order by score: 0.9 ('a'), 0.7 ('c'), 0.4 ('b').
Final Answer:
['a', 'c', 'b'] -> Option B
Quick Check:
Sort by new scores descending = ['a', 'c', 'b'] [OK]
Hint: Replace scores then sort descending by score [OK]
Common Mistakes:
Sorting by old scores instead of new
Sorting ascending instead of descending
Mixing up ids and scores
4.
Identify the error in this re-ranking code snippet and select the fix:
results = [{'id': 1, 'score': 0.2}, {'id': 2, 'score': 0.5}]
new_scores = {1: 0.7, 2: 0.9}
for r in results:
r['score'] = new_scores[r['id']]
results.sort(key=lambda x: x['score'], reverse=True)
print(results)
medium
A. Use sorted() instead of sort() to avoid in-place sorting
B. Change new_scores keys to strings to match 'id' type
C. No error; code runs correctly and sorts results
D. Add a try-except block to handle missing keys
Solution
Step 1: Check key types in new_scores and results
Both use integer keys for 'id', so lookup works correctly.
Step 2: Verify sorting and printing
Sorting by updated 'score' descending is valid and prints sorted list.
Final Answer:
No error; code runs correctly and sorts results -> Option C
Quick Check:
Matching key types = no error [OK]
Hint: Check key types match for dictionary lookups [OK]
Common Mistakes:
Assuming string keys when they are integers
Thinking sort() causes error without reason
Adding unnecessary try-except blocks
5.
You have a list of 5 retrieved documents with initial scores. You want to re-rank them using a machine learning model that outputs a relevance score. Which approach best improves the final ranking?
Use the model scores to replace initial scores and sort descending.
Combine initial and model scores by averaging, then sort descending.
Sort only by initial scores, ignoring model scores.
Randomly shuffle results to avoid bias.
hard
A. Combine initial and model scores by averaging, then sort descending
B. Use the model scores to replace initial scores and sort descending
C. Sort only by initial scores, ignoring model scores