Así es el algoritmo que usa Google para su motor de búsqueda.

3000 millones de búsquedas todos los días. Para esto se requiere un algoritmo bastante complejo y eficiente, y así es el algoritmo que usa Google para su motor de búsqueda, Sin embargo, en los últimos meses y de acuerdo al reporte de la propia empresa ese algoritmo necesitaba ser optimizado para estar a la par con los objetivos de la empresa.

Pandu Nayak, vicepresidente de Google, comunico que lanzaron el Bidirectional Encoder Representations from Transformers (BERT), que es la mayor actualización del buscador en años recientes.

Según Nayak, el 15% de los miles de millones de búsquedas que procesa Google cada día son sobre temas o asuntos que no habían visto antes, es por ello que este algoritmo requería de una actualización.

“Así que estamos construyendo un mecanismo para responder a consultas que no podemos anticipar”

“En su esencia, Google Search se basa en entender el lenguaje. Nuestro trabajo es descifrar qué es lo que quieres buscar en la red, sin importar cómo lo escribas o cómo combines las palabras en el teclado”

Pero un ejemplo vale más que mil palabras.

En la búsqueda “2019 turista brasileño a EE.UU. necesita visa”, la preposición “a” es fundamental. Pero antes de BERT, era totalmente ignorada por el buscador, por lo que los resultados terminaban “entendiendo” que podía tratarse de alguien de EE.UU. que necesitaba a visa para Brasil.

Por eso los resultados de la búsqueda eran por lo general artículos de prensa que hacían reseñas de viaje de estadounidenses a Brasil.

“Con BERT, el buscador es capaz de entender el contexto que le aporta la preposición ‘a’ y de esa manera puede ofrecer unos resultados más óptimos, como por ejemplo la página del Departamento de Estado donde se da esa información”, aclaró Nayak.

¿Qué es BERT?

Bidirectional Encoder Representations from Transformers, es una red neuronal basada en la arquitectura transformer. El modelo se entrena con un corpus de 3.300 millones de palabras (800 m de palabras de BooksCorpus y Wikipedia (2.500M de palabras). Para que te hagas una idea, BERT es capaz de descubrir relaciones y secuencias dentro de la frase para una entidad, es donde el concepto transformer marca la diferencia.

«El transformer es el primer modelo de transducción (conversión de secuencias de entrada en secuencias de salida) que se basa completamente en la auto atención para calcular las representaciones de su entrada y salida sin utilizar RNNs o convolución alineados con la secuencia».
«La auto-atención, a veces llamada intra-atención, es un mecanismo de atención que relaciona diferentes posiciones de una sola secuencia para calcular una representación de la secuencia».
Prateek Joshi

¿Bert sustituye o reemplaza a RankBrain?

BERT es un método adicional para depurar y entender el contenido, consultas y por ende mejorar el sistema de clasificación en el índice. RankBrain seguirá activo, Google utilizará un método más, como por ejemplo las correcciones ortográficas, utiliza entre otros un método que se basa en la distancia de edición ponderada (distancia de Damerau – Levenshtein), usando un número mínimo de modificaciones posibles para encontrar una alternativa escrita correctamente, también corrige errores de origen fonético, generalmente sustituye una parte de la palabra incorrecta con una secuencia de caracteres fonéticamente equivalente, hasta que localiza la ortografía correcta, o probabilidades de escribir mal en un teclado (Modelo Oculto de Markov) etc..

1 de cada 10 búsquedas aproximadamente son afectados por BERT, este algoritmo está diseñado para pre entrenar representaciones bidireccionales profundas de texto. Es capaz de procesar palabras en cada oración, y no palabra por palabra como hasta ahora lo hacía, lo que implica un mejor entendimiento del contexto completo de cada oración, ya que las preposiciones cambian lo que queremos expresar y/o buscar, en teoría debería mejorar estos resultados por la mejora en la comprensión.

Uno de los desafíos más grandes del NLP (procesamiento del lenguaje natural), era la escasez de datos para entrenarlos ya que eran unos pocos miles o cientos de miles de ejemplos etiquetados por humanos, luego llegaron los modelos de NLP basados en aprendizaje profundo ya que se entrenan con cantidades mucho mayores, llegando a millones o miles de millones de datos web sin anotaciones (pre entrenamiento), este pre entrenamiento puede ser ajustado con pequeños conjuntos de datos como la respuesta a preguntas, análisis de sentimientos, lo que da como resultado grandes mejoras en la precisión en comparación con el entrenamiento de estos conjuntos desde cero. Aquí justamente es donde entra BERT, es un nuevo técnico para el entrenamiento previo de NLP. Google implementa BERT en su propio sistema y también lo lanza de forma que cualquiera pueda entrenar su propio sistema ya que es de código abierto.

Aquí la liga para que te lo descargues y lo implementes en tu sistema

BERT Más a fondo

El pre entrenamiento ocurre con dos tareas que deben aprender en la red al mismo tiempo el significado de los tokens y la estructura de sus entradas. Acepta un vector de hasta 512 tokens que puede dividirse en dos segmentos (a y b).

El salto está en la relación y dirección de las palabras, en vez de izquierda a derecha o de derecha a izquierda, usan dos tareas no supervisadas. En la primera tarea enmascaran un porcentaje de tokens (un 15% normalmente) al azar de la oración/es y luego predicen (descodifican).

Las palabras enmascaradas no siempre fueron reemplazadas por los tokens enmascarados porque el token nunca aparecería durante el ajuste fino.

Entonces, los investigadores utilizaron la siguiente técnica:

  • El 80% de las veces las palabras fueron reemplazadas por el token enmascarado
  • 10% del tiempo las palabras fueron reemplazadas por palabras aleatorias
  • 10% de las veces las palabras no se modificaron

Procedimientos generales de Pre- Entrenamiento y ajuste de Bert

A diferencia de los descodificadores automáticos en vez de reconstruir toda la entrada, solo lo hacen sobre las palabras enmascaradas. Es decir, oraciones con tokens enmascarados y se le pide que produzca el ID de vocabulario de la palabra que falta. Es «similar» a los saltos de n-gramas de Word2Vec, exceptuando que este último nunca se representa en una oración, solo la palabra central de la ventana donde se elige la palabra objetivo.

La segunda tarea se basa en la predicción de la siguiente oración (NSP), que se basa en la comprensión de la relación entre dos oraciones. Esto es muy importante para la parte de QA (Question Answering) y NLI (Natural Language Inference) consiguiendo el modelo final entre un 97-98% de precisión en la predicción de la siguiente oración. Aquí el modelo BERT se presenta con dos oraciones, codificadas con incrustaciones de segmento A y B como parte de una entrada. Otras veces, el modelo se presenta con dos oraciones consecutivas del corpus, a veces una segunda oración no es un secuenciador, y es escogido al azar del conjunto de datos. Esta tarea de pre entrenamiento está destinada a mejorar el rendimiento del componente de doble segmento del modelo.

En todas las tareas de pre entrenamiento las entradas están representadas por un vector que contiene una inserción de token, segmento y posición.

  • Las incrustaciones de tokens ayudan a transformar palabras en representaciones vectoriales.
  • Las incrustaciones de segmentos ayudan a comprender la similitud semántica de diferentes partes del texto.
  • Las incrustaciones de posición significan que palabras idénticas en diferentes posiciones no tendrán la misma representación de salida.

Además de las capas de salida, usan las mismas arquitecturas en el pre entrenamiento como en el ajuste.

Diferencias entre BERT vs OPENAI GPT vs ELMo

BERT como se ha mencionado utiliza un transformador bidireccional profundo, OpenAI GPT usa un transformador de izquierda a derecha (unidireccional), ELMo (superficialmente bidireccional) usa la concatenación de LSTM de izquierda a derecha y de derecha a izquierda entrenados independientemente para luego generar funciones para tareas posteriores.

BERT a parte es el único que funciona relacionando contextos en ambas direcciones en cada capa. BERT y OpenAI GPT son de ajuste fino y ELMo está basado en características de aproximación.

Las diferencias a parte de las tareas de pre entrenamiento y bidireccionalidad también está en el entrenamiento:

  • GPT está entrenado con BooksCorpus (800m de palabras) y BERT con BooksCorpus y Wikipedia (2.500M de palabras).
  • GPT fue entrenado por 1 millón de pasos en lotes de 32.000 palabras y BERT por 1 millón de pasos en lotes de 128.000 palabras.
  • GPT usa la misma ratio de aprendizaje en todos los experimentos de ajuste fino y BERT elije la tasa de aprendizaje que mejor sea para el conjunto de desarrollo (Cabe señalar que, para cada uno de estos ajustes, todo el modelo debe ajustarse, no solo las capas superiores)
  • GPT usa un separador de oraciones () y token clasificador () que solo se introducen en el momento de ajuste. Mientras que BERT aprende () y () y las incrustaciones de oración A/B durante el pre entrenamiento.

Ejemplos BERT en acción

La diferencia de la comprensión entre el sentido de la búsqueda con el resultado.

Actualización

BERT es un gran paso en cuanto a mejora de la comprensión, pero por ahora solo está disponible en idioma Inglés, se irá replicando en otros idiomas.

“Este es el cambio más grande, más positivo que hemos tenido en los últimos cinco años y quizás uno de los más grandes desde el principio”. Señalo Payak

Fuente: Uni Stanford, arxiv, Google blog

Articulos relacionados:
Ahora le toco al El equipo de Microsoft mostrar el potencial de su fuerza de
A muchos de nosotros nos encanta la tecnología, razón por la cual, muchos leemos, vemos
Desde hace muchos años hemos tenido la posibilidad de bloquear WhatsApp, y cuando apareció la
Tradicionalmente, la mayoría de los investigadores habían propuesto robots “biohíbridos” compuestos por tejido muscular moldeado
La piel humana es la mejor interfaz para la interacción. Esta tecnología propone adaptar a
Los recuerdos con el tiempo desaparecen otros perduran por más tiempo, hoy en dia contamos
¡Quién lo hubiera dicho hace tan sólo unos años! Para solaz de Mohammed Ibn Musa-al-Khwarizmi
Hablemos un poco sobre teoría de grafos y sus implicaciones en la relación directa entre

Último mes de promoción para obtener tu descuento en Azul School. Como ya lo hemos comentado anteriormente, en enero...

Publicado por Azul Web en Martes, 22 de octubre de 2019

Canal en Telegram de Azul Web

Te recomendamos seguirnos en nuestras redes para estar al tanto de noticias, cursos gratuitos y memes: Clic aquí para seguirnos en Facebook | Clic aquí para seguirnos en Instagram | Clic aquí para seguirnos en YouTube.

Descargar este artículo en PDF

Lo sentimos, esta opción solo está disponible para los socios. Más información de nuestro grupo de socios.

Ernesto Mota on EmailErnesto Mota on FacebookErnesto Mota on LinkedinErnesto Mota on Twitter
Ernesto Mota
Nací en el d.f., sigo siendo defeño, hoy radico en la hermosa ciudad de Cuernavaca, Morelos, soy Ing. en Sistemas computacionales, con un posgrado en Tecnologías de información, Doctorando en ambientes virtuales de aprendizaje y realidad aumentada, Tecnólogo es mi categoría laboral, y mi linea de investigación es la realidad aumentada aplicada a nuevos entornos de aprendizaje.

Déjanos un comentario:

Deja un comentario

LO MAS HOT DE AZUL WEB

APRENDE A PROGRAMAR (DA CLIC AQUÍ)