Live data from Hacker News

Google's hybrid approach to research

norvig.com

1–10 of 19 posts

Re: Google's hybrid approach to research

#3
From the 4 page paper:

By closely connecting research and development Google is able to conduct experiments on an unprecedented scale, often resulting in new capabilities for the company.

The goal of research at Google is to bring significant, practical benefits to our users, and to do so rapidly, within a few years at most.

Because of the time frame and effort involved, Google’s approach to research is iterative and usually involves writing production, or near-production, code from day one.

Typically, a single team iteratively explores fundamental research ideas, develops and maintains the software, and helps operate the resulting Google services—all driven by real-world experience and concrete data. This long-term engagement serves to eliminate most risk to technology transfer from research to engineering. This

[...] we blur the line between research and engineering activities and encourage teams to pursue the right balance of each, knowing that this balance varies greatly.

Overall, we undertake research work when we feel its substantially higher risk is warranted by a chance of more significant potential impact.

we just try to “factorize” [long-term research] into shorter-term, measurable components.

Even if we cannot fully factorize work, we have sometimes undertaken longer-term efforts. For example, we have started multiyear, large systems efforts (including Google Translate, Chrome, Google Health) that have important research components.

If the discrete steps required large leaps in vastly different directions, we admit that our primarily hillclimbing-based approach might fail. Thus, we have structured the Google environment as one where new ideas can be rapidly verified by small teams through large-scale experiments on real data, rather than just debated.

Organizationally, research is done in situ by the product team to achieve its goals. The most successful high-profile examples of this pattern are systems infrastructure projects such as MapReduce, Google File System, and BigTable.

In our opinion, a research project is successful if it has academic or commercial impact, or ideally, both.

Another potential pitfall of the hybrid research model is that it is probably more conducive to incremental research. We therefore do support paradigmatic changes as well, as exemplified by our autonomous vehicles project, Google Chauffeur, among others.

Our hybrid approach to research enables us to conduct experiments at a scale that is generally unprecedented for research projects, generating stronger research results that can have a wider academic and commercial impact.

While our hybrid research model exploits a number of things particular to Google, we hypothesize that it may also serve as an interesting model for other technology companies.

Re: Google's hybrid approach to research

#4

For me there is nothing quite like doing research in my engineering job. Only two companies I've worked at (one of them being Google) have embraced this concept whole heartedly. I hope more companies learn from this article.

It'd be great to know what the other company was.

Re: Google's hybrid approach to research

#5
post #4

For me there is nothing quite like doing research in my engineering job. Only two companies I've worked at (one of them being Google) have embraced this concept whole heartedly. I hope more companies learn from this article.

It'd be great to know what the other company was.

Well...it's one of these:

>Hashable, Purpose, Gumtree (eBay), Trampoline Systems

Re: Google's hybrid approach to research

#7
post #6

Earlier quoted context omitted.

Well...it's one of these: >Hashable, Purpose, Gumtree (eBay), Trampoline Systems

Heh, didn't think of that. Thanks.

I didn't mention it because they are small and I doubt many people have heard of them, but it's Trampoline System.

Re: Google's hybrid approach to research

#8
post #6

Earlier quoted context omitted.

Well...it's one of these: >Hashable, Purpose, Gumtree (eBay), Trampoline Systems

Heh, didn't think of that. Thanks.

You'd be surprised how often you can impress people with an iota of initiative and forethought / googling.

Hell, I impressed a neuroscientist with a rigorous education in maths the other day (I'm a dropout) by calculating the tip in my head instantly.

Re: Google's hybrid approach to research

#9
The thing is that "MapReduce" is a concept that was in practice, e.g. by LISP programmers, long, long before Google rediscovered it.

Much like Google's many acquisitions that the public perceives as resulting from "Google R&D", things like map-reduce are also viewed as coming from "unparalleled Google capabilities".

Let's get real. Google is a big company that employs thousands upon thousands of overqualified Java and C++ programmers. They are a fat cat. Not necessarily a cunning and agile one.

With the amount of cash they have on hand, indeed they should be producing some interesting research.

But I have a hard time seeing things like map-reduce as state-of-the-art R&D.

That many programmers, who have standards that consistently hover around varying levels of mediocrity, are satisfied with Google's design choices does not necessarily make what they do "state of the art". It just makes it the most popular. (Popularity is of course very important, perhaps all-important, in this business, but has little to do with research and pushing the envelope.)

Re: Google's hybrid approach to research

#10
post #9

The thing is that "MapReduce" is a concept that was in practice, e.g. by LISP programmers, long, long before Google rediscovered it. Much like Google's many acquisitions that the public perceives as resulting from "Google R&D", things like map-reduce are also viewed as coming from "unparalleled Google capabilities". Let's get real. Google is a big company that employs thousands upon thousands of overqualified Java an…

Mapreduce as a concept goes beyond lisp implementations. On the surface it might seem like the point of mapreduce is expressing computations in terms of map and reduce functions. It isn't.

The point of mapreduce is reducing the problem of high-throughput fault-tolerant distributed systems to a very efficient and reliable distributed sorting algorithm (the shuffle phase, which is implemented by the implementations of mapreduce and not by the user code). If you can express all synchronization in your algorithm in terms of sorting, then whatever you do before sorting (map) or after it (reduce) is kind of trivial, as the hard part is taken care of by the framework.

This abstraction is novel, and profoundly useful, and that's the point of mapreduce, not so much the actual map() and reduce() functions.

Post reply on HN