veerMe (my major) finds locations in a database that are within a certain proximity of any given route and then suggests the ‘best’ of these to the user. The trouble is that if, for example, ten points of interest are close to a journey route then how do you know which of these the user might actually want to visit, and which of these are shit and unlikely to be of much use?
The answer, in my mind, is to order all of the POI (points of interest) by a rank and then iterate through these items checking for proximity starting at the highest ranked until you have found a reasonable amount to suggest (for example’s sake, 6) or until every POI has been checked – whichever comes first. This can prevent having to go through every single POI unnecessarily (which is a welcome bonus, I’m a bit worried the strain this might put on a browser as number of POI increases). It also means that you can just suggest the POI to the user in the order you find them and its likely to be the best.
This then creates another problem that I am now attempting to solve – how to rank these POI to reflect their popularity. I do not want to burden, or indeed have to rely on, the user having to rate locations because it adds another hurdle for the user and might not actually create an accurate way to rank the POI. If you think a place is awesome but don’t actually want to add it to your journey then chances are other people might not either.
veerMe gives the user four options when presented with a POI:
- Add this to the route and finish
- Add this, show me another
- Don’t Add, show another
- Don’t add, finish
This gives the user sufficient control over their journey preparation whilst also giving me feedback that can be used to help determine a POI’s route. (If a POI is recommended and the user clicks the 3rd option is might show that the POI is not suitable, whereas if they click the 4th option maybe they just don’t want to add a diversion to their route).
That’s all well and good but it still doesn’t help me actually rank the points, to do this I am going to need to use maths. Initially the idea was to simply start with a number (10) and increase the by an arbitary number (0.1) if a suggested POI is used, and decrease by 0.1 if it is not. The thinking behind this is that the higher the number the better the POI is perceived to be. A draw back to this, however, is that if a point simply hasn’t been suggested because it is hasn’t yet been close enough to a route it will remain on a lower number regardless of how good it might be and thus never really get recommended when in competition with POI that are more likely to be within the proximity of popular routes.
The alternative to this is to work on a percentage. The number of times it is used divided by the number of times it has been suggested – giving you a number between 0 and 1 that seems to work a bit better and be a bit more proportional. Again in this case, the higher the number, the more likely it will be suggested.
What do you think, any suggestions are more than welcome! I am currently thinking the latter option is how I will do it but I can still think of a few drawbacks. The number of times it is used will have to start at 1 instead of 0 to stop them having a rating of 0 and never being suggested, for example.
