Singhal: Everyone, thank you for setting this up,
and guys, thank you for putting up
with all the inconvenience we are putting you through.
It so happens that this meeting is the heart of what we do.
What we approve, how we run Search.
This is an experiment.
We will see how the tape comes out.
If I look bad, we will not put it out.
[laughter]
Okay?
If Gomes looks bad,
we will put it on the front page.
[laughter]
Huffman: All right. Spell-correcting long queries.
Singhal: Lars.
Lars: So, to keep our latency low,
spelling has always just corrected
10 terms in long queries,
and we decided to use the first 10 terms,
which was sort of arbitrary,
and so this is a change by Euro in Zurich,
who decided that we could be
a little bit more intelligent about this.
And so we're going to pick the two words
that we think are most likely to be misspelled in the query,
and form intervals of five words around each,
so we're still correcting only 10 words.
And this is just a smarter way
of deciding which words to correct.
Gomes: So, your context is the five words
rather than the whole 10 words.
So, you're more likely to find a match.
man: Well, in general, the context is only three words,
because we use trigrams for this thing,
but they correct five words at a time,
rather than simply the first 10 words.
man: So, if you take a look at the mean scores...
man: This is huge.
man: This is very, very positive.
man: We send both fragments to spelling separately,
or is it strung together?
Lars: No, they're sent together.
We have a way of marking which terms we correct,
and which terms we won't correct.
Cutts: But roughly what percentage
of queries have more than 10 terms?
Lars: Not a lot. So...
[laughter]
man: But it is very annoying
when your misspelling is towards the end of a long query,
and you don't-- you don't get it.
And it's so obviously wrong.
Paul: We've seen these where it was pasted quotes
and the last word is mangled.
Singhal: Why would anything ever go wrong with this?
man: Yeah. man: It does, because you try
to correct something late in the query,
and you'll see some examples
where early in the query
there's also a misspelling which you failed to correct.
Singhal: Oh, so, because of your two-word selection,
you end up picking--
if there are more than two misspellings in a query...
man: Or there's a very rare word that makes you believe
that that's a potential misspelling.
'Cause you don't know it's a misspelling.
Gomes: Why wouldn't you apply the misspelling
across the whole query?
The same misspelling, you're saying,
would get corrected in one place, because of context?
man: No, no, no, it's a different
misspelling at the beginning.
The problem is we--if we could just correct the whole thing,
but then you'd pay in cost.
Right, latency and things, so they don't want to do that.
man: It's mostly the latency, right?
Like, why? I don't know, it seems a little like--
We could do, you know, hundreds of--thousands of QPS,
right, why can't we send--
break the query up into multiple chunks,
and then send them all through parallel so that--
so we can correct the entire query, right?
Lars: we could do that, but I think the traffic effect
would just be a really small slice.
Singhal: So...
But why not just do that right?
Mean, like, take overlapping five-word windows,
and send runs of 10-word queries,
as many as you can make out of a query,
and send them all in parallel?
man: Actually 'cause there's only a 0.1% change.
Singhal: And, you know-- And by the way,
in most cases, you'll be pretty much done.
You will cover up to 15-word queries
with just two.
Paul: I think we should certainly launch this.
I think [indistinct] gets points for a clever idea on it,
but I think it is driving the same--
the idea of splitting it.
That's probably more infrastructure work.
man: I'm sorry, I just want to jump back to this problem
with the beginnings of the queries.
So, these situations where--
if you look at the second one in the second block there.
"Int he book 'Julius Caesar,'" et cetera, et cetera, et cetera,
we don't catch--we catch all sorts of misspellings
about Caesar and differences,
but we miss the fact that "int he" should be "in the."
We have another query
about sponsoring a child living in Tenerife,
and we want to figure out
whether "Tenerife" is misspelled,
but we miss the fact that it's "cam" instead of "can."
Gomes: By the way, are you doing this--
but in the course of Suggest--
So, the same thing will work with Suggest?
When we have live-spelling Suggest?
man: I'm sure if-- once you launch this,
Suggest will do the same thing, right?
Gomes: So, Suggest will be actually all from--
man: This is all inside the Spell server,
so there are no multiple calls being made.
It's all embedded inside the Spell server.
Singhal: So, on the sponsor, did we send the context,
left and right?
man: We did.
man: And then why didn't we correct the context?
Lars: Actually, this is sort of
an issue with the current implementation.
If there are--
if there are two intervals that are close enough together,
then we merge them into one,
so what's actually happening is we're correcting, I think,
from "I" to "credit."
Paul: So, we just missed one.
Lars: Yeah, so...
Paul: Picked--We picked slightly the wrong window.
Look, that's gonna happen with any of these.
man: I mean, certainly, the original thing
of picking the first 10 was missing a lot of words.
man: That's right, that's right.
Paul: The averages say this is clearly an improvement.
Cutts: But if this is, like, .01% of queries,
why not just correct--
man: No, it's .1. Not .01, it's .1.
Cutts: But how much, resource-wise--
Paul: I think it's more just the--
the infrastructure work on doing it.
Because you now have to have the Spell servers call out
to other Spell servers.
Cutts: Okay.
man: It seems good.
Gomes: I mean, to a large extent, you will be seeing
those spell corrections happening in Suggest,
because you're going to get that initial window...
Paul: I think a lot of these are just pasted queries, though.
Singhal: This is cut and pasted.
These are cut and paste. No one's typing these.
man: We're seeing a lot of people's--
Paul: "Cam I sponsor--" man: "Cam I sponsor."
Cutts: The Caesar one is--that's a kid just doing his homework.
Paul: "Stein, S. et al amino acid analysis"
is a pasted query.
Cutts: Yeah.
Paul: So, I mean--So... man: Not all of them.
Paul: But not all of these.
Cutts: Like "how long do you have to wait
to wash your hair after a perm?"
man: "Int he book" is almost certainly not.
Singhal: It may hap--
plenty of pastes do all kinds of funky things.
man: And if you look at the wins,
a lot of those are definitely typed queries.
Paul: Okay.
Anyway, I--Look, this is clearly a good change.
man: Maybe a great change.
Paul: Let's give a recommendation to the team
to actually give up the 10-word limits.
Singhal: No, but I want some follow-up
on that recommendation.
Paul: Yeah.
Singhal: So, how are we gonna get that follow-up?
man: Your recommendation is issuing multiple...
Singhal: Just do it. All of it.
Right in that, by chunking.
man: Yeah, I just think we should have some system
that can handle 100-word queries, right?
I don't know. Singhal: Yeah.
man: We shouldn't die on, like, the hardest query.
Paul: Right, but I think we end up doing that on the front end
and not in--
Singhal: No, but I don't--Paul.
Paul: We don't care. Singhal: I'm sorry.
You're defending something that--
you know, the design is not perfect.
Don't defend it.
Okay?
Paul: I think it's fine to do the recommendation,
but I think this is a good step,
and I think Euro gets points
for getting us to look at that again.
Singhal: No, that's fine, but, you know,
I want to make sure that the team comes back,
or we put some kind of exploding deadline
that, you know, we won't do this.
If you don't do it right within, say, three months,
Gomes: Your Spell server is being used
for running text in other places too?
man: Now they're being used in--
for red underline also, isn't that right?
Lars: We don't use--
We use the same servers-- Yes and no.
man: But a different set-up?
Lars: For part of--
one of the red underline clients is using them, yeah.
man: So, that must be much longer chunks of text.
man: No, no, but I think they break it up into smaller chunks.
Singhal: Treat this as someone's typing an email.
man: Email, right. That's what I was...
man: And bring in all the red underlines.
Gomes: Right.
Singhal: Okay, we can launch this, but...
man: I mean, remember,
we may still have problems even there
because of context and things, if you break things up.
So, they'll always be--
Gomes: Yeah, treat it as running text, right?
Singhal: Okay. man: Okay.