- Por Manuel Moussallam
- Post Original y en Inglés: https://deezer.io/releasing-spleeter-deezer-r-d-source-separation-engine-2b88985e797e
En
Resumen
Hemos investigado un poco sobre cómo
detectar automáticamente contenido explícito en canciones utilizando solo la
música en sí y sin metadatos adicionales. Dado que es un tema sensible y
subjetivo, no queríamos usar un modelo de caja negra, sino construir un sistema
modular cuyas decisiones se remontan a algunas palabras clave que se detectan
en la canción. Nuestro sistema ofrece resultados prometedores, pero NO lo
consideramos adecuado para etiquetar canciones como explícitas de manera
totalmente automatizada. El documento completo ha sido aceptado para su publicación
en la conferencia ICASSP 2020.
Seamos
explícitos
Cuando se trata de averiguar qué
letras son explícitas, no hay un consenso general. Obviamente es un problema
cultural, con muchas consideraciones sobre la audiencia prevista y el contexto
de escucha. Como es el caso con las películas, el objetivo principal de
etiquetar una pieza como "explícita" es proporcionar orientación para
determinar qué tan adecuado es para un público objetivo. Esto a menudo se
conoce como "asesoría parental" porque la audiencia en mente es
principalmente niños. Si está interesado, se han realizado estudios científicos sobre el impacto del
contenido explícito en los niños, pero de eso no se trata nuestra
investigación.
Hay un muy buen artículo de Wikipedia sobre la creación de la
etiqueta de asesoramiento parental para la música. A pesar de su definición
imprecisa, generalmente se admite que un lenguaje fuerte (palabras usadas para
maldecir y términos sexuales), representaciones de violencia y discurso
discriminatorio caen dentro del alcance de lo que no es adecuado para que los
niños escuchen en una canción y, por lo tanto, deben marcarse como contenidos
explícitos. Por supuesto, esta definición está abierta a varias
interpretaciones.
Actualmente, solo los humanos toman
decisiones sobre si una canción debe etiquetarse como explícita o no. La
persona a cargo de esto suele ser alguien que trabaja en un sello musical y
sigue las pautas internas establecidas por la empresa. Cuando las canciones se
entregan a servicios de streaming como el nuestro, a veces van acompañadas de
la etiqueta "explícita", y otras no.
Cuando no se proporciona una
etiqueta, puede significar que la canción es adecuada para todos los públicos,
pero también puede significar que no se tomó ninguna decisión por parte de la
etiqueta con respecto a su carácter explícito. Hay una parte sustancialmente
grande de nuestro catálogo que pertenece a esta categoría.
Antes de preguntarnos si podríamos
construir un sistema que pudiera hacer esto automáticamente, analizando la
música, estudiamos el problema desde un punto de vista humano. Tener que
decidir qué canción debe etiquetarse como explícita y cuál no debe ser una
tarea compleja, requiere una comprensión de alto nivel de las expectativas
culturales e implica mucha subjetividad.
Detección
explícita de contenido como un problema científico
Dejemos de lado las consideraciones
anteriores y ahora supongamos que existe un método determinista para decidir si
una canción debe etiquetarse como explícita o no. El propósito de nuestra
investigación es tratar de descubrir este método.
El problema se puede enmarcar como
una clasificación binaria: dada una canción X, ¿podemos encontrar una función f
que produzca 1 si la canción es explícita o 0 si no lo es? Por ejemplo, si X es
“All Eyez On Me” de 2Pac, esperamos f (X) = 1 mientras que si X es esta
canción, entonces f (X) = 0.
Una función matemática ideal
generaría 1 o 0 dependiendo de si la canción tiene contenido explícito o no
Como la mayoría de las tareas de
clasificación en la actualidad, puede ser una buena idea utilizar técnicas
supervisadas de aprendizaje automático (ML).
Un enfoque
modular y explicable.
Si le pidieran que etiquetara las
canciones como explícitas o no, ¿cómo procedería? Una respuesta natural es
mirar las palabras pronunciadas por los cantantes; Si aparecen "palabras
explícitas" en la letra, se debe aplicar la etiqueta explícita. Esa es una
respuesta simple, pero podría decirse que es la mejor, según una investigación reciente que la compara con enfoques
de aprendizaje automático más complejos.
Ahora, ¿qué pasa si no tienes acceso
al texto de la letra? Eso es bastante común cuando se trata de millones de
canciones. Si eres un aficionado al aprendizaje automático, podrías decir:
construyamos un gran conjunto de datos anotados y entrenemos un clasificador
supervisado para hacerlo desde audio. Este enfoque se llama ML de extremo a
extremo o, a veces, de caja negra.
Una familia de tales modelos son las redes neuronales profundas. Se han
utilizado con gran éxito en tareas de clasificación de imágenes, oraciones,
videos y, por supuesto, música.
Sin embargo, un inconveniente común
es su falta de interpretabilidad. De
hecho, una vez que se entrena el sistema (por ejemplo, haciéndolo aprender de
un conjunto de ejemplos anotados), no es fácil explicar cómo toma sus
decisiones sobre nuevas muestras que no se han visto durante el entrenamiento.
Un modelo de caja negra ML
generalmente implementa una función de procesamiento altamente compleja que
puede ser difícil de interpretar.
Si bien podemos evaluar el
rendimiento del modelo en el conjunto de ejemplos conocidos, no se puede
asociar fácilmente su salida a elementos tangibles de la entrada, como
características musicales o letras cantadas. No obstante, probamos este enfoque
de caja negra de ML, pero también
queríamos probar otro sistema más confiable, cuyas decisiones podrían
justificarse fácilmente. Tal sistema generalmente se llama ML explicable.
Afortunadamente, en nuestro equipo,
tenemos una estudiante de doctorado, Andrea Vaglio, que está trabajando en
extraer información lírica de la música. Una forma de detectar el contenido
explícito es primero obtener una transcripción de las letras cantadas, y luego
simplemente usar la presencia o ausencia de palabras de un conjunto de
"lenguaje explícito" para decidir si etiquetar la canción como
explícita o no.
Obtener una transcripción exacta de
una voz cantada mezclada con música es una tarea muy difícil. Ya es mucho más
fácil si solo puedes extraer la parte vocal de la canción. En Deezer,
desarrollamos una herramienta llamada Spleeter. Está disponible
gratuitamente para que todos lo usen y hace un buen trabajo al extraer voces de
las canciones.
Aún así, la detección de palabras
clave pronunciadas a partir de voces que cantan, incluso cuando están aisladas,
es un problema complejo, y gran parte de nuestra contribución aquí es proponer
un sistema para hacer precisamente eso. Se llama Sistema de detección de
palabras clave y es la principal contribución de este trabajo.
Aún así, la detección de palabras
clave pronunciadas a partir de voces que cantan, incluso cuando están aisladas,
es un problema complejo, y gran parte de nuestra contribución aquí es proponer
un sistema para hacer precisamente eso. Se llama Sistema de detección de
palabras clave y es la principal contribución de este trabajo....
Una vez que tenga la probabilidad de
presencia de todas las palabras en su diccionario "explícito", será
fácil tomar una decisión. Utilizamos un clasificador binario simple para eso,
cuyos resultados pueden vincularse directamente a las probabilidades de presencia
de "palabras explícitas".
Equilibrando
los Géneros Musicales
Uno de los inconvenientes habituales
de hacer aprendizaje automático es cuando su modelo no aprende lo que cree que
hace, sino que solo se adapta a un sesgo en sus datos de muestra. En el
análisis musical, este fenómeno se llama "caballo". En el caso de la
detección explícita de contenido, el sesgo más importante a considerar es en
los géneros musicales.
No sorprenderá a nadie que muchas
canciones de rap contengan letras explícitas. Más que canciones country, por
ejemplo. Sin embargo, hay canciones de rap no explícitas y hay canciones
country explícitas. Si no se tiene cuidado al diseñar su experimento, puede
terminar con un sistema que en lugar de detectar letras explícitas, detectará canciones
de rap, simplemente porque tienen, en promedio, una mayor probabilidad de
contener letras explícitas.
Resultados
En el documento, comparamos nuestro
enfoque modular con uno de caja negra y con un sistema oráculo que conoce las letras y detecta las palabras clave
directamente en el texto (piense en ello como el límite superior de lo que
podemos lograr, si nuestra palabra clave El sistema de detección fue perfecto).
Encontrarás todos los detalles sobre
la configuración experimental en el documento, pero aquí están las
conclusiones: aunque no es tan bueno como el oráculo, nuestro enfoque produce
resultados bastante prometedores. Cherry on the cake, supera al modelo de caja
negra, que siempre es un buen resultado y va en contra de la creencia comúnmente
encontrada de que hay una compensación entre la precisión y la explicabilidad de un sistema ML.
Como nota al margen, encontramos que
en realidad ninguno de los sistemas considerados alcanzó niveles de precisión
comparables a los humanos. Incluso el sistema oráculo sólo tiene un puntaje F1
del 73%. Este es un hecho importante a considerar, especialmente cuando se
tiene en cuenta la sensibilidad de la tarea. En este punto, no es realista
automatizar completamente un proceso de decisión para el etiquetado de
contenido explícito.
Una última
palabra
Investigamos un primer enfoque (según
nuestro conocimiento) para construir un detector de contenido explícito basado
exclusivamente en audio. A pesar de alcanzar algunos resultados alentadores,
nos gustaría enfatizar que esta tarea no está resuelta satisfactoriamente por
las máquinas a día de hoy.
En Deezer, brindamos a nuestros
socios, proveedores de música y sellos la posibilidad de marcar la canción que
nos entregan como explícita. Luego, los usuarios tienen la posibilidad de
filtrar contenido basado en esta etiqueta. En este proceso, solo implementamos
una regla definida por el usuario, basada en los metadatos que obtenemos. No
tenemos la intención de intervenir en este proceso o tomar decisiones en lugar
de nuestros socios o nuestros clientes.
No obstante, se podría utilizar
nuestro trabajo para construir un sistema para ayudar a los humanos en sus
tareas de etiquetado. Con nuestro enfoque, no solo podemos detectar la
presencia de palabras clave explícitas, sino también saber dónde se encuentran
en la canción. Por lo tanto, podríamos resaltar algunas partes del audio en un
anotador para facilitar su tarea. En una perspectiva más amplia, nuestro
objetivo es obtener conocimiento sobre millones de canciones y aprovecharlo
para mejorar el producto de Deezer. Esta investigación es otra piedra en este
camino.