Yelp provides a service I really need in a way and from a company that I really don't like, so I'm delighted to hear about competition!
Yelp provides a service I really need in a way and from a company that I really don't like, so I'm delighted to hear about competition!
My current local demonstration of the pointlessness of crowdsourced reviews:
http://www.urbanspoon.com/r/71/1709549/restaurant/Melbourne/...
A cafe that's not open yet, has 9 votes including 2 "I didn't like it" votes.
It's interesting that St Ali's other café seems to have a string of recent poor reviews (many written in a suspiciously similar style). Surely it'd be easy for UrbanSpoon to do a quick "sanity check", identify the 9 voters who've voted on a venue they couldn't possibly have been to to form a valid opinion, then remove all their votes and reviews across the board?
That's what _I'd_ do if my objective was a fair and balanced review site. Of course if my objective was a Yelp-like advertising service using poor reviews as a way to blackmail small businesses into paying protection/advertising, I'd obviously _welcome_ poor reviews and vindictive downvotes for businesses that haven't even opened yet… UrbanSpoon, like Yelp, is clearly signalling their intentions to me, and calibrating my expectations of their usefulness...
There is no such thing as an objectively good restaurant. In my town, there are famous pizza places which people absolutely love and then others who think it's an overrated, pretentious mess.
Nevermind attempting to control for different waiters, chefs, people having a bad day, etc. The problem isn't Yelp-specific.
The problem is entirely human.
(That said, the venue ratings product we announced today is globally consistent: everyone will see the same rating for a given place. Our Explore product, however, does make personalized recommendations.)
Imagine if they could build up a ratings profile of people who rate the same place similarly, and then network that out... for instance:
Person 1 likes A and B, dislikes C, and hasn't been to D Person 2 dislikes A, likes B, and C, hasn't been to D Person 3 likes B, C, and D, and hasn't been to A Person 4 likes A and D, hasn't been to B or C
So, A has 2 likes, 1 dislike , B has 3 likes, C has 2 like, 1 dislike, and D has 1 like.
That's the start of a rating scale.
But what if an algorithm could identify that, say, Person 1 and Person 4 have similar tastes... so it could recommend D to 1, and B to 4. It can also see that 2 and 3 have similarity, and recommend D to 2.
Now, here's where it gets a bit tricky. The algorithmn can tease out that A and C are opposites - maybe one has great food, but with bad atmosphere/service, and the other is the opposite.
Thus with that deduction, it can recommend B, but not C to 4.
1. Sparsity of data. People surprisingly rate much less than you think they would. In fact, negative ratings are way less sparse than positive ratings (This to me is unintuitive because this is not how I would act but it is what it is).
2. Lack of features for similarity computation. Sometimes, the rating matrix is all you have to compute similarities or you have crappy metadata. You may turn out to be lucky and pull down a facebook open graph and have enough coverage to work with, it depends on your model.
3. The problem of high variance due to latent features (which you alluded to in the last part): Your model gets harder to track due to in sufficient information as to why a place is good or bad. Maybe, there is a correlation between seasonal variations and special cuisines, maybe they had a shitty chef that one time Person 4 came there.
I am not saying it is not do-able, I am just saying it is hard and sometimes ML fairy dust is not enough. :)
A not-quite-as-good but easier statement to make: People who like place X also like places Y, Z... etc.
Absolutely. So one part of the solution is to stop putting restaurants on an "objective" 1-5 scale, and averaging every human together.
Instead, cluster restaurants so you can "people who liked the overrated, pretentious mess also liked X..."
Low weights: new users, numerous reviews (spamming), low rated reviews
High weights: older users, high rated reviews
Let me guess, you live in Phoenix?
Sometimes there are places that I've known forever to be a hidden gem. Now they've become Yelp 5-star and the place gets great business but wait times are always an hour.
Sometimes I'm in a new city and I just Yelp for the latest and greatest. This can lead me to some of the best food I've had, complete with menu suggestions and tips from other users. This is where Yelp really excels. It gives great businesses the business they deserve.
Where Yelp fails me is when restaurants get hurt by harsh and poorly written reviews. A few one stars will even make people avoid a business. I've been to a ton of 3 star restaurants personally recommended to me by a friend and they've been fantastic. When I read the Yelp reviews people will rate 1 star for entirely subjective reasons, even worse for poor service when the explained situation seems completely one-sided. It's one thing to give a highly rated place a second opinion, saying it's overrated. It's another thing to harm an innocent small business and in a way preventing other people from giving the place a chance.
And even with well-reviewed places, for large cities there are hundreds of great places buried in the 4-star <100 reviews list. How many people really scroll past the 5 or 6th page when viewing Most Reviewed and Highest Rated?
The last straw would have to be the extortionist behavior of their sales team. But, that's an entirely different story.
I treat Yelp reviews like I do any online review, say Amazon for an example. Stars don't mean too much but if a place has a ton of reviews and very low average that is probably a good signal. I find a few places that fit the bill and then read the reviews in detail and sometimes the other reviews by people who have outlying reviews. Then I usually cross check at places like OpenTable, Zagat and Chowhound.
I don't recall being disappointed and have found some very excellent spots. I was in Atlanta last week and hit up Kevin Rathbun Steak (http://www.yelp.com/biz/kevin-rathbun-steak-atlanta) and JCT Kitchen & Bar (http://www.yelp.com/biz/jct-kitchen-and-bar-atlanta). Both were great.
Update: I'd say that with Yelp I probably miss out on some great spots that don't have much of a presence there, but I also don't strike out. False positives are worse to me than false negatives. Especially if I'm only in town for a few days.
If Google maps would integrate this then I wouldn't have to deal with Yelp's UI.
I live in NYC, and so when my wife and I want to go out to eat or enjoy some activity, factoring in the time it takes to travel (usually 40+ minutes each way to any place interesting in the city), we truly can't afford to tenuously choose the places we dine because we want to hedge our bets that the place we'll be at will be great. If it's not, we just spent several hours going to/at a subpar place when we know there are actually hundreds of really incredible places in the city that we could have gone to instead given we had the knowledge.
It doesn't help that we're both programmers who love to program in our spare time together so even during non-work periods we're also "working" to some extent, so usually on a daily basis the only free time we have is when we're eating or right before bed.
But I digress, TL;DR - Not everyone has the luxury of time and the social prowess to curate locations themselves.