viernes, 5 de enero de 2018

El famoso algoritmo de recomendaciones de Youtube

Internet se ha vuelto loco. Lleva loco desde hace algo más de un año. Han sido muchas las quejas, muchas de ellas, por no decir todas, sin sentido y sin conocimiento. Estoy hablando de cuando muchos Youtubers se han quejado sobre la plataforma en la que están trabajando, y es que es cierto que Youtube ha estado realizando cambios, pero no lo que se ha comentado.


No sé ni bien por dónde empezar, ya que han sido muchas las críticas a esta plataforma, y tratar de escoger una de todas y empezar por una para que después se unan todas es complicado, pero allá voy, voy a intentarlo a ver qué sale.

El problema de la monetización

Supongo que sabréis que si llegas a un número de suscriptores en Youtube, puedes cobrar por cada vídeo que subas. Lo que cobres varía mucho de uno a otro, pero yo no quiero hablar sobre cómo ganar más con vídeos ni nada por el estilo, ya que realmente no sé mucho de ese tema. No obstante, de lo que sí sé un poco, es sobre la informática que se está usando en Youtube.

Fue Wismichu, el que en mayo de 2017 habló sobre un problema con la monetización en Youtube. Os resumo muy brevemente el problema en cuestión. Por lo visto Youtube creó un algoritmo que clasificaba a los canales de Youtube en varios grupos en cuestión de una serie de parámetros. Los grupos son-tal y como se comenta en el vídeo-:
  • Family-friendly: Canales de Youtube con un contenido blanco como pueden ser canales de Youtube infantiles.
  • Maquillaje y deportes.
  • Comedia y Gameplays. Comediantes y canales que muestran juegos con contenido más para adultos como puede ser CoD, GTA o videojuegos por el estilo.
  • Terrorismo, racismo, violencia.
  • Youtubers con menos de 100000 suscriptores.
Pues e problema es que muchos canales sobre Comedia y Gameplays, tal y como dicen, han sido clasificados en vídeos sobre Terrorismo, violencia, racismo,etc; por lo que monetizan menos. Lo que me parece extraño es que canales de ese tipo con contenido violento o incluso pornográfico, pueda monetizar algo si quiera, pero mi única fuente es el vídeo de Wismichu en cuestión, por lo que me limito a lo que ahí se comenta aunque no se aporte ninguna referencia.

Pero bueno, puedo entender que pueda ser un fallo o que simplemente Youtube permita la monetización. No obstante, el problema de verdad no es ese, el problema es cuando se comenta, sobre el minuto 4:40 del vídeo de Wismichu, esto tal cual, literal:

"¡Cómo le molan los algoritmos a Youtube!¿Y sabéis por qué? Pues porque los algoritmos son ejecutados por máquinas y no por personas, y a las máquinas no hay que pagarles, sin embargo a las personas sí. Y sólo hay una cosa que a Youtube le gusten más que los algoritmos, y eso es ahorrarse costes"

Vale, aquí hay ya varios problemas muy básicos. Trataré de explicarlo de una forma sencilla y que sea entendible por todos, a pesar de estar en un blog sobre informática.

Un algoritmo informático, no dejan de ser una serie de órdenes y/o preguntas que se realiza un software, un programa para que pueda seguir en ejecución, y por tanto, funcionando correctamente. Por ejemplo, imaginando que nosotros somos máquinas, imaginemos que tenemos un programa que es "Despertarse", su algoritmo será algo como:

-¿Cómo están los ojos? ¿Abiertos o cerrados? Si están cerrados, entonces abrirlos, sino, no hagas nada porque ya está despierto
-¿Está aún tumbado en la cama? Si está tumbado y tiene los ojos abiertos, entonces, destaparse y sacar los pies de la cama y despertarse

Y así con todo lo demás. En el caso de un programa, ocurre lo mismo. Comprueba estados y en función de esos estados o de determinados valores de una variable, hará una cosa u otra.


Como ejemplo os dejo unas líneas de código de un script en Linux. Su algoritmo sería

-¿Cuánto vale la variable1?
-Si la variable vale uno, decir que vale 1
-Si la variable no vale 1, decir que el valor de variable no es 1

Es decir, podemos entender el concepto de algoritmo, como esas órdenes que hacen funcionar a un software o las pautas que sigue un software para saber qué hacer en caso de que ocurra algo. Por ejemplo, uno de los muchos algoritmos de Youtube sería que al pulsar en el botón de play, que se reproduzca el vídeo. Eso ya es un algoritmo, pues de lo contrario, por mucho que pulsemos el play, no haría nada, pues no sabría qué hacer cuando se pulsa ese botón.

Por lo que una vez que se ha visto que los algoritmos son necesarios, lo siguiente es decir que sí, los algoritmos son ejecutados por máquina...en parte. En el caso del código anterior, el algoritmo [como un esquema básico de lo que tiene que hacer el programa] lo he tenido que crear yo, una persona. Lo que pasa es que ese algoritmo se lo paso a una máquina, pues serán las máquinas las que permitan la ejecución de cada vídeo.

Por lo tanto, ese comentario, tratando de mostrar a Youtube como una empresa perversa que sólo le preocupa el dinero, sería un comentario un tanto ingenuo, ya que sin esos algoritmos, cada vez que un usuario quisiera ver un vídeo, tendría que ir un trabajador de Youtube a la casa del usuario y mostrarle el vídeo. Eso sería algo no muy eficiente, ni para los Youtubers, ni para Youtube ni para los usuarios.

No entiendo muy bien las quejas por los algoritmos, ya que sin ellos no podrían vivir de Youtube. Ahora bien, no niego que un algoritmo pueda estar mal formado, ya que esos algoritmos son realizados por personas. Esto de saber lo que es un algoritmo es muy importante para otro de los problemas que comentaré.

De todas formas, con que os quedéis con la idea de que todo sistema informático compuesto por hardware y software, requiere de un algoritmo el cual es programado y diseñado por personas, ya os basta. Y cuando digo todo, es todo, hasta el aire acondicionado tiene un algoritmo para saber que cuando se pulsa el botón de subir temperatura, lo que debe hacer es subir la temperatura. Esto es porque los sistemas que usamos, a menos que usen redes neuronales, son increíblemente tontos en el sentido de que no hacen algo si no se lo decimos, sino se lo programamos. Nuestros sistemas no funcionan por arte de magia.

Por ejemplo, hasta los routers que tenemos en casa funcionan en base a algoritmos, ya que todo el tráfico que reciban -si queremos ir a Youtube.com- lo recibe y lo manda a otro nodo, pero para hacer eso, tiene que tener esa orden en su algoritmo, de lo contrario no haría absolutamente nada.


En el ejemplo del vídeo os muestro la diferencia entre "usar" y "No usar" algoritmo. Por ejemplo, yo he usado un botón, pero claro, no le especifico a dónde tiene que ir después de pulsar el botón, no sabe qué hacer. No obstante, una vez que le especifico a dónde ir, como se observa, ya sí que funciona todo correctamente.

¿Qué pasa con las recomendaciones?

Aquí sí que entiendo el lío, pues el sistema es más complejo, incluso para muchos informáticos esto puede resultar realmente difícil de entender en un principio. Así que esto sí que lo explicaré poco a poco y de una manera muy simplificada para que se entienda por el mayor número de personas.



Una de las muchas personas que no entendía el nuevo sistema de recomendaciones era la Cantante y Youtuber Raquel Eugenio[De la cual os recomiendo su canal de Youtube pues hace cover muy muy buenas]. Y es que entiendo la confusión perfectamente, es más, entendí tanto su confusión que incluso le redacté un documento donde se lo explicaba todo.


Tengo que agradecer a Raquel Eugenio que tras el trabajo que hice [tampoco fue mucho] para redactar el documento, respondiese con gratitud. Gracias, porque hay muchas empresas que ante reportes de seguridad, se lo toman mal y Raquel agradeció el gesto, así que gracias a ti, Raquel.

Aún así lo explicaré todo de nuevo. Como he dicho, todo sistema o programa informático utiliza un algoritmo para saber qué tiene que hacer en cada momento. Los algoritmos son tan importantes que incluso nosotros, los humanos, los utilizamos diariamente. Diariamente utilizamos algoritmos. Por ejemplo, si queremos comer, lo primero que hacemos es preguntar "¿Hay comida en el plato?" si la respuesta es afirmativa, entonces miro qué tipo de comida es y pregunto "¿Necesito tenedor, cuchara o puedo con las manos?", posteriormente sería agarrar esa comida con el utensilio adecuado, realizar la suficiente fuerza para que no ceda y caiga al de nuevo al plato o al suelo por culpa de la fuerza gravitatoria,etc.

Por supuesto, Youtube también tenía un algoritmo donde, en función de esas órdenes que se ejecutaban tras cada pregunta, se realizaban las recomendaciones a canales y/o vídeos. Esas órdenes son programadas por personas con conocimientos en programación, por lo que sería ingenuo decir que Youtube lo hace para ahorrarse dinero. No, lo hace simplemente para que sus sistemas funcionen, ya que de lo contrario, asuntos como la clasificación de usuarios, lo tendrían que hacer personas que deberían estar pendiente de cada usuario de Youtube y clasificarlos, y ya no sólo eso, estar pendiente por si su contenido cambia y clasificarlo en otro grupo. Eso sería ineficiente para la plataforma y para cualquier trabajador. La informática es automatizar tareas y realizarlas en menos tiempo, de ahí que se use la tecnología.

El algoritmo de recomendaciones de Youtube sería algo como lo que le pasé a Raquel. Son una serie de preguntas que te puntuarían.



Esto se hace por un motivo, y es que si tienes una canal de Youtube con muchos suscriptores, con vídeos largos y retienes hasta el final a tu audiencia, entonces, se podrán poner más anuncios que verán un gran número de personas y por lo tanto, a más anuncios, más dinero para Youtube.

Así pues, con este algoritmo se podría conseguir una gestión más o menos correcta de los canales, aunque todo puede estar abierto a fallos que en caso de encontrarlos, se deberían corregir y listo. Pues bien, eso era ANTES, y es que AHORA Youtube no utiliza ningún algoritmo para realizar las recomendaciones ¿Eso quiere decir que Youtube no debería funcionar? Pues nope, solamente es que ya no usa algoritmos, solamente utiliza otra tecnología mucho más potente. Las redes neuronales. Sobre redes neuronales tendría que hacer otra entrada a parte donde las explique en profundidad, pero en esta lo voy a reducir mucho.



Tal y como se muestra en la imagen, una red neuronal es un sistema con una o más entradas de datos que pasarán por capas intermedias con el objetivo de llegar a una neurona final mostrando un resultado. En cada neurona se realizan cambios a los valores numéricos que les llegan y posteriormente se pasa a la siguiente capa y se hace lo mismo.

Es como si quisiéramos tener una red neuronal que aprenda a hacer sumas. Cada neurona realizará una serie de operaciones y se las pasará a la siguiente capa. Lo que deberemos hacer es comprobar el resultado final. Imaginemos que le pasamos 2 números, uno es el 2 y el otro es el 3 y queremos que realice la suma. Si vemos que de resultado saca un 6, es que ha multiplicado en lugar de sumar, por lo que no estaría haciendo lo que queremos ¿Qué tendríamos que hacer?

Tendríamos que modificar las flechas azules que conectan una capa con otra. Esas fechas son algo irreal, ya que en lugar de flechas, es una fórmula que cuando trabajamos con redes neuronales la denominamos Peso y se suele representar con la letra W. Pero eso no es relevante para esta entrada. Lo importante es que tenemos nuestra fórmula del peso mal establecida, simplemente la ajustamos, metemos los mismos datos y si saca un -1 es que ha restado. No es lo que queremos. Volvemos a ajustar el peso hasta que nos muestre un 5. Tras eso, metemos otros número para cerciorarnos de que funciona correctamente. Si le pasamos varios números y hace la suma correctamente en la gran mayoría, entonces decimos que la Red ha aprendido a sumar.

Y aquí el concepto más importante, los programadores no programamos nada de una red neuronal, por lo que no sabemos cómo piensa la red neuronal que creamos.

Cuando explico esto, mucha gente me dice que en realidad sí programamos, ya que esa fórmula del peso, la estamos modificando. Bueno, eso en realidad no es programar la red, eso es crear la red pero ¿por qué? Por varios motivos, aunque el más importante es que solamente estamos uniendo neuronas. Recuerdo que esa fórmula del peso es la unión entre neuronas, no las neuronas. Las neuronas reciben valores que cambian en función de "esas conexiones", en función de la fórmula del peso. Otro argumento importante es que eso de "en realidad estamos programando" solamente podríamos aplicarlo si le damos muchas vueltas y entramos en terrenos filosóficos, si hablamos de proyectos pequeños. No todo es hacer una suma, por ejemplo, Instagram utiliza una red neuronal también y que todos los usuarios de Instagram o la han usado o saben lo que es.


Por ejemplo, que tú subas un vídeo a tus Stories de Instagram con las orejas de perrito, eso implica que tienes una Inteligencia Artificial en tu smartphone, ya que de lo contrario sería muy laborioso o casi imposible saber dónde está exactamente tu cabeza en cada momento, y más teniendo en cuenta que una Storie lo más normal es que la haga uno con el móvil y donde se mueve bastante. Si ocurre esto es porque la red neuronal ha recibido una gran cantidad de información de cómo es una cara humana y sus proporciones y gracias a esa información puede colocar las orejas de perrito.

Y es que esa es la clave, con las redes neuronales los programadores no saben nada sobre cómo piensa la red, por lo tanto ahora mismo Youtube no sabe nada sobre cómo recomienda la red neuronal. Es como la Turbomix, tú metes los ingredientes tal cual, le das al play y cuando lo paras ya ha salido la comida que desees, pero no tiene por qué seguir la receta y el cocinero no sabe cómo la Turbomix está elaborando la comida.

Es por esto que acusar a Youtube de que está "controlando" las recomendaciones es algo un poco absurdo, pues una red neuronal hace que cualquier humano no sepa cómo la red está pensando.


Aunque en realidad Youtube no es que utilice una red neuronal, no, en realidad usan 2 redes neuronales. Si queréis más info, os dejo el paper científico que se publicó sobre el tema. Aún así os explico brevemente. Como he dicho, una red neuronal funciona gracias a la información que se le pase, pues bien, la primera red neuronal de Youtube es la que genera candidatos, es decir, mira todos los vídeos que se suben y mira estadísticas de ese vídeo y otros parámetros y genera 100 candidatos por ejemplo. Esos 100 candidatos que se pasan, es la información que se le pasa a la segunda red y esta segunda-la del ranking- es la que ordena del 1 al 100, de manera que te recomienda los 50 primeros por ejemplo.

Ahora la pregunta es la siguiente "¿Es por esto que incluso los grandes Youtubers tienen pocas visualizaciones?". Sí y no, aunque se decanta al sí un poco. A ver, por partes.

Ya he hecho alusión a que una red neuronal requiere de información para funcionar, por ejemplo, para ponerte las orejas de perro en Instagram, previamente se ha tenido que aportar a la red neuronal una gran cantidad de fotografías y parámetros sobre caras de humanos. De esta forma y tras muchas fotografías, la red aprende. Aquí el matiz.

Y es que una red tiene que aprender, y esto no se hace en 10 minutos. Pensad que hay gente estudiando carreras de Física que se tiran 4 años y aún no saben nada-entendedme cuando digo no saben nada-. O yo por ejemplo, puedo estar profundizando sobre seguridad informática 6 años y aún hay cosas que no conozco o que sé en parte, pero en otras partes hago aguas. Pues lo mismo con una red neuronal.

Es lo que muchas veces noto, que hay gente que se cree que la tecnología, una red neuronal, un robot, debe hacer cosas que no sabe muy bien en 2 segundos y no, esto requiere de un proceso largo. Tened en cuenta que realizar recomendaciones personalizadas a cada usuario es mucho más complejo que hacer una red neuronal que realice sumas. A lo mejor la red neuronal que hace suma necesita 1 año para aprender a sumar, pero una red neuronal que realice recomendaciones personalizadas puede requerir 10 años y la red neuronal de Youtube fue implantada en 2016, lleva algo más de un año solamente. Paciencia.

Puede que la red neuronal se encuentre a un 15% y que simplemente necesite más información, más vídeos para que la red siga aprendiendo y tenga más información para sacar mejores conclusiones. Puede que en 2030 la red neuronal esté ya al 99% y funcione bastante bien. Pero todo es cuestión de tiempo.

Así que para concluir, hay muchos parámetros a tener en cuenta y creo que hay algunos Youtubers que han hablado demasiado rápido haciendo una serie de acusaciones muy graves sin disponer de la suficiente información. Es entendible casos como los de Raquel Eugenio, que no entiende el funcionamiento de algo y es lógico que se pregunté por qué esa situación. Eso es lógico y ahí nada de recriminar, pero esa gente que ha pedido que se cambie el sistema de recomendaciones, bueno, les recuerdo que es una red neuronal y que Youtube no tiene ni idea de cómo se hacen las recomendaciones. Y a los que acusan a Youtube de que solamente quieren ahorrarse dinero al usar algoritmos en lugar de pagar a personas...bueno, un poco más de información es lo único que pido. Entiendo que es fuente de la desinformación, pero no demos mensajes erróneos y falsos a una gran gente, por favor.

¿Hackeamos el Mundo?

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...

Entrada destacada

El server me sabe a poco.

Soy un fanático del Rock y de Debian . (Creo que voy a inventar Rockbian, que suena bien y todo xD) Llevaba tiempo queriendo unir estos 2 c...