Cómo construir un sistema de recomendación a escala industrial

Como probablemente sospeche, existe una gran diferencia entre un algoritmo per se y su aplicación a escala industrial. La diferencia se hace evidente en múltiples niveles, y voy a tocar algunos de ellos.

Las herramientas. Al experimentar con un algoritmo, las herramientas de código abierto como R y Octave son de gran ayuda. Sin embargo, rara vez se usan cuando se produce a escala industrial. En su lugar, termina utilizando bibliotecas subyacentes de estos productos directamente. Por ejemplo, puede usar directamente un núcleo de álgebra lineal [1], una biblioteca de optimización de funciones [2], una biblioteca de aumento de gradiente [3] o similares. La razón es principalmente el rendimiento y el control preciso en un entorno de servidor (a diferencia de una solución de escritorio de un solo usuario).

Los datos. Cuando se observa un problema de aprendizaje automático desde el punto de vista del algoritmo, los datos se proporcionan principalmente, ya que se han preparado antes. Cuando se construye a escala industrial, los datos suelen ser dinámicos, y a menudo provienen de fuentes externas y / o impuros. Por ejemplo, en el espacio de curación de noticias en el que trabajo, una tarea importante es extraer la noticia real en una página web de toda la placa de calderas y otra información que la rodea (como encabezados, pies de página, historias relacionadas, complementos de redes sociales) , etc.) En la práctica, a menudo terminará no con un solo algoritmo de aprendizaje automático, sino más bien con una tubería de algoritmos de aprendizaje automático (y posiblemente otros).

La infraestructura. Las consideraciones operativas generalmente no son un gran problema al experimentar con un algoritmo. Se convierten en un gran problema cuando se construye a escala industrial. Debe responder preguntas sobre el modelo de implementación, el modelo de servicio, los acuerdos de nivel de servicio, etc.

La ética Una vez que un algoritmo abandona el espacio experimental y se convierte en un producto (ampliamente utilizado), hay consideraciones éticas. Los algoritmos pueden, intencionalmente o no, expresar sesgo o entrenarse para expresar sesgo. Esto es crítico cuando se trata de tomar decisiones automatizadas. El Consejo de Políticas Públicas de EE. UU. De ACM ha reunido una excelente declaración sobre Principios para la transparencia y la rendición de cuentas algorítmicas [4].

Notas al pie

[1] Una biblioteca BLAS optimizada

[2] Biblioteca L-BFGS escrita en C

[3] dmlc / xgboost

[4] https://www.acm.org/binaries/con…

_addload(function(){_setupIW(‘com’);_csi(‘en’,’es’,’http://epomme.com/loli/how-to-build-an-industrial-scale-recommender-system/’);});