La primera patente de Google: ¿BackRub?

·

Por norma general cuando hablas con alguien sobre los orígenes de Google y en qué está basada su tecnología siempre se habla de PageRank, pero no se suele hacer mención de BackRub (algo así como el «frota-espaldas»). Y es que sin duda el pensador máximo de Google siempre ha sido Larry Page, y de ahí que la application 60/035,205 del 10 de enero de 1997 no sea muy conocida. Su nombre: Improved Text Searching in Hypertext Systems. Sin duda difiere bastante de la 6.285.999, la más conocida como Pagerank y que en realidad lleva por nombre: Method for node ranking in a linked database. Además, es curioso porque Larry le hace referencia en 4 patentes posteriores a la primera.

La primera diferencia es clara: la primera patente hace referencia a formas de buscar y la segunda hace referencia a la forma en la que se relaciona la base de datos. Además, en el documento habla de la demostración de BackRub en la dirección http://zam.stanford.edu:1972/.

El documento comienza con:

Existing search engines on the Web produce very poor results when the query matches large numbers of documents. Yet, these simple queries are very frequently issued by users. Described here is a system which yields radically improved results for these queries using the additional information available from a large database of Web links. This database of Web citations is used to determine a citation importance ranking for every web page, which is then used to sort the query results. This system has been implemented, and yields excellent results, even on a relatively small database of four million web pages. Not only does the system yield better results, but it does so at significantly reduced computational cost, which can be a very large expense for Web search engines1. Demonstrating the improvement is as easy as picking a general query, for example «weather», and comparing the results to the results from a traditional web search engine, like AltaVista (the results section shows some sample queries).
1 AltaVista is run on several large computers that each cost around a million dollars. And, every time they add another machine, the demand increases instantly to fully utilize the new equipment.

Sin duda las intenciones eran claras. En la época en la que el único buscador que podía encontrar entre los contenidos era AltaVista, su objetivo era demostrar que se podía hacer un sistema mejor y más barato.

Los primeros datos que se ofrecen es que, en base a la descarga de 30 millones de contenidos que había descargado BackRub, larry calculaba que el índice de AltaVista tenía 60 millones de contenidos y ocupaba unos 480 GigaBytes, teniendo 23 millones de usuarios/mensuales. Su preocupación era que cuando hacías una consulta genérica se mostraban decenas de miles de resultados y que eso sería un problema según la web fuera creciendo y que, teniendo en cuenta que la mayor parte de buscadores ordenaba las páginas según la frecuencia de la cadena de búsqueda, eso era un sistema muy aleatorio y de baja calidad.

La solución era clara:

By analyzing all the links on every web page we can compute a useful ranking that approximates a «quality» or «importance» criteria.

La comparación entre BackRub y el resto de buscadores se daba ya no palabras genéricas sino buscando un profesor de universidad. La comparación daba que el resto de buscadores mostraban unos cuantos artículos que hablaban de esa persona, en cambio BackRub ponía en primer lugar la web «oficial» del profesor.

PageRank — An Aproximation to «Importance»
The reason why my system works so sell, is that it decides which documents to return, and in what order, by using an approximation to how well cited, or «important» the matching documents are. I will call this aproximation to importance PageRank from now on. Web pages get a higher PageRank from being mentioned on other pages. But, the PageRank a page gains from a citation is based on the PageRank of the page that cites it. This definition may sound circular because it is in fact circular. But, it turns out with a few small modifications, we can still compute a PageRank of this form. So a page can have high PageRank even if it only has one citation, such as from an ad on the Yahoo home page, which of course has high PageRank. Or, a web page can get a high PageRank by being pointed to from thousands of other pages, like the Netscape download page which has 31,284 pages that point to it in my system. The intuition is that if your query matches tens of thousands of documents, you would be happier looking at documents that many people thought to mention in their web pages, or that people who had important pages mentioned at least a few times.

Tras esta explicación bastante clara del funcionamiento del sistema, comienza una serie de detalles sobre el funcionamiento. El modelo es el que todos conocemos: asumiendo que una página tiene un peso, este se distribuirá por sus hijos, y toda página tendrá como peso la suma del peso de todos los hijos. El ejemplo vendría a ser que si tu vas navegando aleatoriamente por la red, es muy probable que acabes en la página de descargas de Netscape y no en BackRub.

También se habla de los ciclos a la hora de re calcular el peso en el grafo, sobre todo porque no está todo interconectado. Y para solventar esto se usa el cyclotron effect de forma que se vuelve a dar energía a todo el grafo. En este caso este efecto vendría a ser que, una vez se ha visitado un enlace, se vuelve atrás en el navegador para seguir navegando por otro lugar. Un detalle interesante es que los usuarios van dejando de navegar, por lo que se ha de implementar un factor (15%) que haga que el peso de un enlace pierda fuerza dependiendo de la distancia a la que se encuentra del origen. El problema de esto es que se perdería fuerza general, por lo que las iteraciones acabarán siendo limitadas.

El siguiente paso del que se habla en el documento es sobre las posibles mejoras que se pueden llevar a cabo en el algoritmo. Teniendo en cuenta que sólo se distribuye el 15% del peso real de cada página, se podía falsear el algoritmo añadiendo muchos enlaces desde muchos sitios, para así hacer subir los puestos. This is a problem, because there is a great commercial interest to be at the top of the results of any search engine, and many people try to «beat» the system by this sort of «spamming». I have considered distributing the damping 15% just to the major sites, like Netscape, which would likely completely alleviate this problem, and change the ranking little. But I need to do experiments to verify this. Es curioso que en la versión previa de Google ya se hablase de SEO y sobe todo que ya se hable de una especie de «listas blancas» como sería el caso de Netscape. También se habla de servidores computacionales a la hora de calcular el PageRank, en vez de calcularse por dominios. Hay que tener en cuenta que en aquella época había muy pocas empresas de alojamiento web, por lo que hacer este cálculo era bastante simple. Ahora se basaría en algo como los AS (Sistemas Autónomos). Un ejemplo que se pone sobre este asunto es el de las páginas de copyright que suelen enlazar siempre a la página principal comercial de las compañías, y que esto podría suponer un problema.

Otro detalle que se comenta y que es más sofisticado sería analizar el comportamiento del usuario según los enlaces. Esto podría ser analizar el tamaño del enlace y su posición en pantalla para determinar cuán clicable es. Otra opción sería la de dar más peso a aquellas páginas que se modifiquen con más frecuencia. Con esto se podría ganar más calidad en los resultados de búsqueda.

Un detalle (de sobrado) es que deja claro que el cálculo de este sistema necesita muy poca memoria RAM y que se puede re calcular todo el índice de 30 millones de páginas y 400 millones de enlaces en un ordenador de escritorio en unas pocas horas. hay que tener en cuenta que estamos hablando de máquinas del año 1996-1997.

Tener un alto PageRank, por lo tanto, significaba en ese momento 2 cosas: que el contenido de la página era popular, que a la gente le gustaba y lo guardaba en sus marcadores o lo enlazaba desde sus páginas, y ser la página principal (la homepage) de un sitio que contiene muchos nodos en su interior, algo parecido a lo que pasaba con la página principal de Yahoo!.

Y hasta aquí vendría a ser el funcionamiento de la algorítmica y la forma de ordenarse de los resultados, pero… ¿cómo se busca en un documento? ¿qué factores ha de tener para aparecer en los primeros puestos? A parte de dar explicaciones sobre el funcionamiento del PageRank, Larry también explicaba el funcionamiento del propio buscador BackRub.

BackRub al principio sólo buscaba información en los títulos de las páginas, algo que lo dejaba un paso atrás de AltaVista (que sí analizaba el contenido textual de la página). Detectaba contenidos duplicados y los agrupaba por sitio (los resultados indentados que todavía se siguen utilizando). Esto llevaba a un problema y es que por norma general algún contenido que debía aparecer en primer lugar quedaba relegado a la página principal (por la distribución del PageRank a las páginas principales). Esto se presentaba como una oportunidad ya que, dando la página principal, el usuario podría comenzar a navegar hasta encontrar la información. Sin duda, como mejoras estaba desde el primer día el tener en cuenta el contenido de las propias páginas (y no sólo el título), además de tener en cuenta el título de las páginas desde donde venían los enlaces o el texto que hay alrededor de un enlace puede servir para darle peso.

Es curioso que en este momento se hable del título de la página de destino del enlace y no del anchor-text. En mis presentaciones siempre comento que es importante poner como «title» del enlace el mismo título de la página de destino, y quitarle peso al propio texto del enlace… mi experiencia me decía que eso era mejor y ahora entiendo el porqué (algo que me alegra, la verdad).

En los primeros resultados de BackRub se mostraba una barra que podría representar el PageRank pero no iba de 0 a 10, sino que mostraba el valor de la importancia de la página en sí, además de ir acompañada de la cantidad de enlaces que se habían detectado para esa página concreta.

Sin duda es una buena forma de ver el origen real de Google, las preocupaciones que tenía Larry Page en sus inicios, cómo algunos mitos en los que muchos SEO se basan son totalmente erróneos (por basarse en una patente como la primera del PageRank que no es realmente la primera) y, quizá a mi lo que más me llama la atención es, como en los documentos, se habla de BackRub como «mi modesta página». Sin duda estoy convendido que ni el propop Page sabía lo que estaba haciendo al patentar ese experimento que quería acabar con AltaVista, y lo consiguió gracias a Yahoo!.

Comments

Una respuesta a «La primera patente de Google: ¿BackRub?»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *