Ads Searching System Description
Ads Searching is a multi-billion dollar business. In this project, we will implement a simplified search ads stack which selects ads for a given query and returns sorted ads based on some ranking criteria.
Basic process flow: Query understanding -> Select Ads Candidates -> Rank Ads ->Filter Ads -> Pricing -> Allocate Ads
*This is an open-ended challenge. Do your best to come up with your own implementation
First stage: Build query understanding module using a basic Natural Language Processing algorithm: query cleaning, tokenize.
Second stage: Build an index for Ads Data including an inverted index and a forward index. We may use a key value store such as memcached.
Schema of reverted index – Key: word, Value: list
Schema of forward index
Third stage: Implement Ads selection and rank logic
Suggested Prerequisite Knowledge
Basic knowledge of key value storage
Please upload your final code to your Github account
Please record a video explaining the design choices you made including: the overall structure of the application, how you chose to index and retrieve ads, and any other features you would like to highlight. Please keep the video under 5 minutes.
Inverted Index: https://en.wikipedia.org/wiki/Inverted_index
Key Value Storage: https://en.wikipedia.org/wiki/Key-value_database