Alternative Local Search Algorithm Designs
Our Search Engineering team has been researching alternative algorithms for delivering highly relevant local search results for web and mobile users, and we’re pretty excited about our progress.
The existing approaches, in a simplified sense, rely upon matching keywords and/or category names based on just the name, keyword and category data associated with the available business listings. While we’ve implemented a fair number of mechanisms to identify near matches, related matches and possible disambiguation choices, there were things that we felt we could do to search our data in a more effective way.
This current round of development has yielded an approach based on a couple of interesting methods: Free Search and Geo Density. Free Search is our TF-IDF (Term Frequency and Inverse Document Frequency) based algorithm that includes all available data in our listing index and applies weights to fields based on our internal search logic. This gives our searches much greater penetration into our data set than the existing search method, providing for an information retrieval method that is more responsive to how people might casually describe what they are searching for.
If Free Search represents our approach to delivering a better “what” component of our searches, Geo Density is our new approach to improving the “where” component. When we build our indexes of our listing data, we are also calculating the relative density of various listing types in the named geographies we can search in. For this beta example, we are calculating these densities against the geography of California, but we will soon expand this to support a much more granular breakdown of density of information (i.e., the search model will be able to understand that the density of coffee shops in Santa Monica, CA is different than the density of coffee shops in Mojave, CA). This density value allows us to dynamically set the radius of our search and apply a weighting (not a hard filter) to results within that radius.
This sort of smart and dynamic distance determination is key to a friendly local search system, as it provides a more intuitive scaling of the results, based on the availability of the thing being searched for and the specificity of the search.
For example, a search for “furniture” in Pasadena, CA will return a focused and relevant list of results in and around Pasadena, while a search for “IKEA” in Pasadena, CA will automatically scale out to include more IKEA stores in the results. The search system can do this quickly and efficiently because it understands the relative density of stores of this type in California and can infer the specificity of the search from the search term used.
As another example, take this search for “coffee shop” in Pasadena, CA and compare it to a similar search for “Starbucks” in Pasadena, CA. Both searches remain well focused on the intended geography, though the area will change slightly due to the specificity of the search term used.
It is important to note that, as can be seen in the examples above, businesses of related categories sometimes occur in the result sets. This is due to the way the system includes and weights the first few categories associated with the initial query. This expansion of the search domain is an experiment to determine whether or not we can provide a more intuitive scope for searches, and will be evolving as we update the system in the near future.
We will be updating the engine in the near future to increase its accuracy and sensitivity, so please leave us feedback and check back soon for an update.
Note: Only California listings are included in our testing at this time.
14 Responses to “Alternative Local Search Algorithm Designs”
January 13th, 2009 at 4:57 pm
Cool stuff. Your algo returns much better results for hair extensions:
http://webbeta.yellowpages.com/free_search/search?search_request%5Bsearch_terms%5D=hair+extensions&search_request%5Bgeo_location_terms%5D=pasadena%2C+ca&commit=FIND#map_results
compared to:
http://www.yellowpages.com/mc/Pasadena-CA/Beauty-Salons–Day-Spas–Hair-Supplies-Accessories–Hair-Weaving–Wigs-Hair-Pieces?search_terms=hair+extensions&sort=distance
(I was generous and invoked distance sort :p )
When I search for Chinese restaurants in Grass Valley, however, I get an Arby’s and a McDo. Are you retrieving from related categories when the density is low? A hierarchy would help you pull only from related cats that are relevant…
January 13th, 2009 at 5:16 pm
Thanks for the feedback, Carlo!
We are indeed expanding our searches based on the related categories, and the inclusion of external categories will increase if there is a lower density of results in the primary category. I believe that you are right in your statement that a hierarchy or taxonomy would help improve this category expansion, as long as the traversal of the hierarchy was modulated properly by the relevance and geo-density (in order to determine how far to traverse the tree).
We’ll iterate quickly, so check back soon for improvements!
January 16th, 2009 at 4:04 pm
The first search url posted by Carlo
http://webbeta.yellowpages.com/free_search/search?search_request%5Bsearch_terms%5D=hair+extensions&search_request%5Bgeo_location_terms%5D=pasadena%2C+ca&commit=FIND#map_results
runs off the page when viewed with the Chrome browser.
January 16th, 2009 at 10:16 pm
Zachary,
I’m sorry you had a bad experience with Beta Labs while using the Chrome browser. I’ll take a look at it with Chrome and see why our application is not rendering properly.
January 22nd, 2009 at 11:44 am
Looks like the beta search app only has search results from Cali right now.(as I see on finishing the blog post!) Be sure to make a new blog post when you’ve populated the data with businesses from other states.
(curiously enough, I get search results from California Africa) Good luck folks and keep us up to date on your progress.
January 22nd, 2009 at 11:57 am
Dave,
We’ll be updating both the index of data available and the search engine itself in the coming weeks. Stay tuned!
January 23rd, 2009 at 12:25 pm
I’ll stay tuned for the changes to come.
Meanwhile back in the cave, I searched for hair extensions in Chicago, IL… and got the results in California….and Nigeria Africa. Some bug in the algorithm must be producing this curious result which shows Africa on the map.
Maybe it will be washed out once you have populated the full listings from across the country. Take it easy guys.
March 19th, 2009 at 11:19 am
COOL
April 23rd, 2009 at 4:21 pm
I aim to try… not for business. Home use
April 23rd, 2009 at 4:25 pm
Am sure that tech “savies” will come up with solution that I am looking forward to experience. Also be more than glad [if i know what] to coment
July 7th, 2009 at 4:03 pm
I just tried to find the name of an automotive paint supplier in my area – I couldn’t remember their name. I searched on automotive paint – THEY WERE NOT FOUND!!! Only paint shops and repair shops were found! I resorted to looking in an old phone book yellow pages – and they they were, listed under, yeah that’s right, paint automotive.
What kind of crap service is this!!!
July 8th, 2009 at 12:39 am
@m sorry to hear that. what’s the business you were looking for, and what area were you searching in?
October 31st, 2009 at 7:17 am
Other variant is possible also
December 3rd, 2009 at 8:16 am
I have been searching for sites related to this. Glad I found you. Thanks
Leave a Reply