Proximity Search Algorithms – 411 Mobile & Voice Search
Free 411 mobile and voice search uses a sophisticated set of algorithms to determine the order in which results are returned to the caller. By default these algorithms are configured to provide highly relevant results for any type of category while also factoring in placement and ranking information from the merchant data base. In fact, the relative importance of proximity vs. ranking data is configurable on a per-category basis. This allows the mobile platform to effectively support categories where proximity is very important (i.e. coffee shops and restaurants), services that are mobile (i.e. taxis, plumbers), and everything in between. Results are presented in a weighted random order, providing preferred merchants with preferential placement while simultaneously ensuring fair representation for all.
Details
Proximity is the first criteria in the search – it is calculated as the distance from the merchant to the search location. If the search is specified for a region (e.g. a neighborhood) and not a specific location, the distance is measured to the boundary of the region, or is considered zero if the merchant is actually in the region.
In general, proximity information is used to identify sets of relevant merchants, grouped by their distance from the search location or region. For example, a given search might return all merchants within the specified region as the first group, merchants who are 0.01 – 0.5 miles from the region as the second group, and so on.
Within each of these groups, the actual ordering of the merchants is performed by a weighted random generation algorithm, where the weights are based on the ranking information from the merchant database. This is very similar in concept to a weighted lottery (like a weighted sports draft lottery, for example), that increases the probability of a high selection for a more heavily-weighted merchant.
Examples
Consider the case where a caller is searching for a coffee shop in XYZ neighborhood. There are a total of 5 coffee shops in the area, with the following information:
- Coffee Shop #1, in XYZ neighborhood, merchant value score (“MVS”)= 6
- Coffee Shop #2, in XYZ neighborhood, MVS= 4
- Coffee Shop #3, <0.5 miles from XYZ neighborhood, MVS = 1
- Coffee Shop #4, <0.5 miles from XYZ neighborhood, MVS = 8
- Coffee Shop #5, <0.5 miles from XYZ neighborhood, MVS = 1
The purple area represents the XYZ neighborhood, while the green area represents the first search expansion area (0.01 – 0.5 miles from the neighborhood). Note that this diagram is not exactly to scale.
In this case, the platform will group Coffee Shops 1 and 2 together as group A (in the search region), and Coffee Shops 3, 4, and 5 together as group B (first area outside the search region). Within each group the weighted random algorithm is used to determine the actual results:
Order | Result | Notes |
1 | Coffee Shop #1 – 60% probability (6/10)Coffee Shop #2 – 40% probability (4/10) | MVS = 6 MVS = 4 |
2 | Coffee Shop #1 – 40% probability (4/10)Coffee Shop #2 – 60% probability (6/10) | |
3 | Coffee Shop #3 – 10% probability (1/10)Coffee Shop #4 – 80% probability (8/10)Coffee Shop #5 – 10% probability (1/10) | MVS = 1MVS = 8MVS = 1 |
…and so on. Stated another way, if this same search is run 100 times, on average Coffee Shop #1 would be returned as the first choice 60 times and Coffee Shop #2 would be listed first 40 times.
Now consider the case where the caller performs a similar search for a category where proximity is not relevant:
- Taxi Company #1, MVS= 6
- Taxi Company #2, MVS= 4
- Taxi Company #3, MVS= 1
- Taxi Company #4, MVS= 8
- Taxi Company #5, MVS = 1
We will assume that these are the only five taxi companies servicing the region. In this case all five companies are grouped together, and the only sorting criterion used is the merchant ranking score. Our results now look like this:
Order | Result | Notes |
1 | Taxi Company #1 – 30% probability (6/20)Taxi Company #2 – 20% probability (4/20)Taxi Company #3 – 5% probability (1/20)Taxi Company #4 – 40% probability (8/20)Taxi Company #5 – 5% probability (1/20) | MVS (#1) = 6MVS (#2) = 4MVS (#3) = 1MVS (#4) = 8MVS (#5) = 1 |
…and so on
Configuration Options
Proximity vs. Merchant Value Ranking
One of the key configuration options is the relative importance of proximity vs. merchant value ranking in the search algorithm. This option should be configured on a per-category basis:
Conceptually, increasing the importance of merchant value ranking has the effect of increasing the size of each proximity grouping – for example, instead of the first search area encompassing up to 0.5 miles from the search area, increasing the importance of merchant value ranking might increase the first area up to 1.0 miles. This would put more merchants into the same proximity group – and remember that within each group, the merchant value ranking is used to determine the order of the results.
As previously discussed, the most extreme manifestation of this is in the “mobile” categories, where proximity is configured to be completely unimportant, thereby placing all merchants into one proximity group. Since the system uses data from a business listings publisher, the platform defines “all” merchants as any merchant that is listed in the book that services the target area. Note that there is some special handling required when a search region maps to multiple books.
Optimal Number of Merchants
Another key configuration consideration is the “optimal” number of merchants to return. This is normally a system-level configuration parameter that is used by the platform to decide when and how often to expand the search region. The handling is as follows:
- The search is performed on the initial (smallest) area (for a search region, this is typically simply the region itself)
- If the search returns fewer than the optimal number of merchants, the next largest area is searched and the process is repeated up to a set maximum number of times
The concept of “Anywhere”
“Anywhere” is mapped to a region that encompasses the entire region in question – for example, a search for “Anywhere” in Calgary maps to the entire city of Calgary. This effectively treats “anywhere” as a non-proximity search, as all merchants are considered to be within the initial search region. This means that merchant listings for an “Anywhere” search are sorted by merchant ranking only.
Feel free to reach out if you want to learn more about this topic or how to implement mobile, social media; interactive voice based services; have mobile app development needs or require assistance with your mobile marketing strategy and execution. Your comments on mobile marketing are most welcome. You can leave comments below. David Langdon (905) 483-1100 – about me contact me
Related Articles
Local Search: Voice-Enabled Mobile Search
Local Search: BlackBerry and iPhone
Local Search: Instant Messaging
Other Articles
Top 8 most frequently searched and most popular read articles on this site
Other Articles