Post anterior
Pasos para realizar un Keyword Research ProfesionalMachine Learning, aprendizaje automático o de máquinas es una de las ramas de la IA (Inteligencia Artificial) que se basa en el desarrollo de técnicas que permitan a los ordenadores aprender. La idea es proporcionar a una máquina ejemplos de algo, y el programa sea capaz de generar un determinado comportamiento.
Para explicar fácilmente el concepto de Machine Learning los chicos de Safecont se centran en una serie de factores SEO con los que podría trabajar Google (no estaban todos los que ellos usan en ese ejemplo, y comentaron que había varios que probablemente Google no utilizara, pero servía para hacernos a la idea):
- SSL
- longitud de URL
- a nivel de página los términos más frecuentes
- número de palabras únicas
- última fecha en la que crawleó ese documento
- la frecuencia con la que se busca un determinado término
- número de enlaces spam
- factores de contenido como densidad de keyword
- H1
- el comportamiento de usuario como el CTR de usuario
- Etc…
Los factores lo que hacen para el buscador es formar parte de un algoritmo (Pagerank) y sacar un “score“, una puntuación para cada una de las URLs que hace que se ordenen de mejor a peor puntuación, y además implementa una mejora haciendo cada uno de estos análisis dependiendo de una temática, una especie de pagerank por cada keyword o tema, por decirlo de alguna manera.
Y todo esto era como funcionaba antes de la época Machine Learning.
Después de esto, dentro de Google todo fue a parar a un área que lo que hacía es aprender utilizando la información de los factores de forma independiente. Dentro de estos algoritmos que generaban sus propias puntuaciones era posible reutilizar esas puntuaciones como si fueran patrones, de modo que fueran capaces de utilizar la salida de un algoritmo como la entrada del suyo propio. Y todo esto lo analizaban dándole casos de error y entrenándose, para posteriormente ordenar la página de resultados, es decir, evaluar quién sale primero en las búsquedas de los usuarios.
¿Cómo funciona el sistema de Machine Learning de Google?
La parte humana del Machine Learning
Primero se requiere una parte humana para poder entrenar, es fundamental partir de un componente humano. En el caso de Google, una serie de raters (de personas que se dedica a valorar las páginas web indexadas en el buscador y que cogen un set de sitios para considerar si son relevantes o no, por ejemplo páginas grandes que tuvieron problemas con Panda) y entonces apoyadas también por algunas herramientas que eran válidas en su momento (como los +1 de Google o ese botoncito que estuvo saliendo durante un tiempo en el que los usuarios podían marcar qué resultados querían bloquear) servía para entrenar los algoritmos de Google.
Muchas veces el concepto se confunde, la idea no era que por darle a un rater una determinada página esa persona fuera a hacer que posicione peor, sino que servía para decirle a Google que esa página no era buena para los intereses del buscador y de los usuarios, y que a partir de ese momento evalúe los factores de esa página para que el algoritmo aprenda y los aplique cuando analiza otras opciones. De este modo, se sacaban listados buenos y malos, que es lo único que necesita el algoritmo.
El entrenamiento de los algoritmos
Tras el punto anterior, le metemos los datos manuales que hemos sacado al algoritmo y empieza a entrenarse con ellos. Con esa información sigue estos pasos:
- Extrae unos determinados parámetros.
- Decide qué factores de todos los que hay (200 o muchísimos más) debe de tener en cuenta y cuáles debe de ignorar porque no son relevantes.
- Decide qué puntuación tiene cada uno de ellos y el peso que le da dentro de su fórmula total.
- Tras este punto se ofrece al público ese algoritmo entrenado, se le otorgan datos para que empiece a trabajar con todos los dominios indexados en el buscador y empieza a ordenar resultados.
- El proceso proporciona una salida, que es lo que realmente consigue hacer el algoritmo.
- Esa información se vuelve a introducir, se vuelve a validar ya sea por procesos automáticos o manuales, y se va entrenando. Y cada vez que se le da más sitios web, el sistema se vuelve más inteligente, va aprendiendo y va depurando sus resultados.
¿Cómo se entrena un algoritmo en la vida real?
Vamos a ver con un ejemplo ficticio cómo sería, algo similar a cómo lo hace Safecont también.
Lo primero que se hace es comparar un montón de factores de la lista que hemos comentado antes (Safecont incluso cuenta con algún factor un poco especial como un Quality Score y un Panda Quality Score, puntuaciones de lo que los usuarios han considerado que son buenas o malas páginas, e incluso esto también se puede hacer con algún tipo de automatización).
Esto Google lo puede hacer con miles o cientos de miles de sitios web. El algoritmo evalúa que sitios coindicen y en qué valores, detecta posibles patrones y los otros los descarta. Dentro de estos ve que hay X que son positivos (por ejemplo que tienen un Quality Score bastante alto) y otros Y que son negativos (por ejemplo tienen un Quality Score muy bajo), y entonces saca parámetros de los buenos y de los malos.
El algoritmo revisa cuáles de ellos coinciden y cuáles son relevantes, y los otros los ignora. Dentro de ellos, con esta información ya sabe qué factores tiene que mirar y cuáles con los rangos correctos de cada uno de ellos.
Ejemplo: Si un determinado factor está entre este punto y este punto significa que es malo. Pero cuidado, si está fuera de ese rango no significa que sea bueno, simplemente es que no puede evaluarse, para eso mira los factores que evalúan la calidad.
Y con todo esto en proceso de aprendizaje… llegó Google Panda, cuando decidieron que estos desarrollos de Machine Learning tenían un resultado lo bastante bueno (febrero de 2011 en EEUU y se expandió a nivel mundial el 12 Agosto de 2011).
El proceso de Machine Learning en Safecont
Vamos a contar lo que los chicos de Safecont nos contaron acerca del proceso de Machine Learning que se esconde tras esos informes tan bonitos que nos presentan en su herramienta. Según ellos mismos, siguen los siguientes pasos iniciales:
- Lo primero y más importante es extraer la información tal y como está en la web que analizamos y convertirla en información fácilmente procesable por un sistema automático.
- Se eligen una serie de métricas interesantes como las que hemos comentado antes al explicar qué es Machine Learning.
- Se elige un algoritmo que dependerá de la función que se desee realizar y el objetivo que deseemos obtener del sistema.
- Se entrenan una serie de modelos de Inteligencia Artificial
Cuando han conseguido llegar a estar contentos con el resultado que se obtiene de esos modelos, es cuando lo han aplicado a datos reales. Los datos reales son los que han obtenido de los numerosos análisis de dominios que han realizado en el sistema.
Para extraer información usan un crawler que han modificado ellos mismos. Crawlean el dominio y procesan esos datos con un primer proceso de MapReduce y Spark para eliminar datos no interesantes, y mediante diversos procesos de MapReduce extraen una serie de métricas interesantes.
Esa información luego se la pasan a una serie de algoritmos de clasificación no supervisada (división de diversos elementos en grupos según un cierto interés, en el caso de Safecont lo hacen según la peligrosidad de penalización de dichos elementos o según el contenido de los mismos, dado que consideran que URLs peligrosas con contenidos parecidos estarán en los mismos grupos). A continuación aplican una serie de algoritmos de clasificación supervisada para los cuales se basan en información que han sacado de diversas páginas web que saben que han sufrido penalizaciones de Google.
De nuevo, toda esa información se la aportan a un clasificador que han implementado a partir de 4 clasificadores y esto les permite obtener una puntuación final para cada URL (lo que Safecont llama PageRisk, que determina la peligrosidad de que esa URL tenga una penalización) y un Score general similar pero para todo el dominio.
La complejidad computacional (el coste en número de operaciones) crece exponencialmente con el número de URLs a analizar. Por dar un ejemplo: con solo 100 URLs, el sistema ya hace más de 2 millones de cálculos. Para un dominio de 100K URLs, el número de cálculos que realizan es del orden de mil billones. Según aumenta, llegamos a un punto en el que el nivel de cálculo es tan grande que aboca en un cuello de botella, da lo mismo que metas más máquinas al sistema, el nivel de cálculo es irrealizable. Realmente es bastante complejo.