Déjanos un mensaje. Nos pondremos en contacto con usted dentro de 1 día hábil.
Déjanos un mensaje. Nos pondremos en contacto con usted dentro de 1 día hábil.
Adjunto archivo

Aprendizaje automático para el análisis de riesgos móviles

La solución de aprendizaje automático de Fayrix ayuda a los comerciantes móviles y analistas a identificar los nichos y tendencias móviles en App Store para estimar el tamaño potencial del mercado y la probabilidad de éxito de una aplicación móvil.
INTRODUCCIÓN
Demasiadas aplicaciones es un problema.
Hasta el año 2020 el mercado de aplicaciones móviles que siempre está desarrollándose alcanzará los $ 189 B. La cantidad de aplicaciones sólo en App Store supera 3 millones, 783 000 de ellas son juegos y el resto son aplicaciones de otros tipos. Todos los juegos se dividen en 19 categorías (cada una de ellas contiene en promedio 41 000 juegos) y 2,3 millones de aplicaciones no relacionadas con juegos se dividen en 24 categorías (casi 96 000 aplicaciones en cada categoría).
Problema del usuario. Demasiadas aplicaciones, muy pocas categorías.
Por un lado, a menudo los desarrolladores tienen que lanzar sus aplicaciones en las categorías que no se refieren precisamente a la funcionalidad de su aplicación. Por otro lado, los usuarios tienen que adaptar sus necesidades al número limitado de categorías que ni siquiera han cambiado desde la aparición de App Store. Esto hace mucho más difícil encontrar una aplicación necesaria. El buscador de App Store tampoco ayuda por varias razones. Se basa únicamente en el nombre de aplicación o en las palabras clave (100 palabras como mucho) que el desarrollador debe haber considerado antes de publicar su aplicación. Si pensamos en cómo una persona llega a saber algo nuevo, comprenderemos que hay pocas posibilidades de que una aplicación nueva en un nicho nuevo sin análogos realmente tenga éxito. Es que las necesidades de una persona están siempre conectadas con algo familiar. Una persona que no sabe nada sobre aviones y viajes aéreos nunca pensará en un vuelo.
Problema del desarrollador. Los desarrolladores tienen que invertir muchos recursos en la promoción de un producto completamente nuevo.
Las aplicaciones móviles a menudo son proyectos respaldados por el capital riesgo. El conservadurismo de las tiendas de aplicaciones causa muchos problemas para la actividad de inversión. Los inversores no tienen herramienta para analizar y distinguir de manera objetiva las tendencias móviles actuales en la etapa inicial de los proyectos.
Problema del inversor. Es imposible encontrar proyectos innovadores sistemáticamente entre 3 millones de aplicaciones.
Establecimiento
DE METAS
Hay que repartir las aplicaciones en grupos que reflejen su funcionalidad y características reales. Nuestros datos fuente son las descripciones de aplicaciones, ya que en estas descripciones los desarrolladores tratan de presentar su idea y los beneficios de su producto. Nuestros datos fuente incluyen aproximadamente 20 000 descripciones de aplicaciones para iOS de 20 categorías de App Store de Apple, EE. UU. Nuestro objetivo es establecer las categorías de aplicaciones objetivas y determinar su número óptimo.

El primer paso en el análisis de una descripción es su análisis preliminar. Todas las palabras irrelevantes, los caracteres de poca importancia y la mayoría de los signos de puntuación deben eliminarse de los textos de las descripciones. Las palabras irrelevantes pueden ser palabras generales no relacionadas con el tema (preposiciones, participios, números, interjecciones y partículas), así como palabras específicas (aplicación, http, www, correo electrónico, etc.). El resto de las palabras deben obtener la forma inicial con la ayuda de la lematización y los algoritmos de derivación.

Métodos de
SOLUCIÓN
Para resolver el problema, debemos entender que las aplicaciones ya publicadas en las tiendas de aplicaciones son parecidas una a otra. Nuestro objetivo es formar grupos de aplicaciones, por lo que debemos pensar cómo podemos llevar a cabo el agrupamiento de las descripciones de aplicaciones.

Los algoritmos de agrupamiento como k-means no funcionan bien con los textos y requieren una serie de vectores numéricos. Por lo tanto, tenemos que formar una matriz de nuestros textos. Vamos a ver qué métodos nos ayudarán con eso.


TF-IDF
TF-IDF (abreviatura de frecuencia de término – frecuencia inversa de documento) es un indicador estadístico que se utiliza para evaluar el significado de una palabra específica en el contexto de la descripción de cada aplicación.

TF
(abreviatura de frecuencia de término) es la proporción del número de palabras específicas y el número total de palabras en el documento estudiado. Este indicador muestra la importancia de una palabra dentro de una descripción de aplicación.

IDF es la frecuencia inversa de documento de una palabra específica en el documento. Este indicador ayuda a disminuir el factor de ponderación de las palabras utilizadas con mayor frecuencia (preposiciones, conjunciones y términos comunes).

La razón TF/IDF
será más alta si una palabra específica aparece en cierto documento con una frecuencia alta, pero rara vez en otros documentos.

El resultado del algoritmo es un vector de longitud N, donde N es el número de palabras únicas en una colección de documentos. La longitud del vector para un texto típico es de aproximadamente 50 000 - 10 000 palabras. Para un análisis más detallado, tendremos que disminuir esta longitud.

Tales algoritmos de transformación de palabras como Word2vec, GloVe y fastText ayudan a transformar la colección de documentos en espacio vectorial. El tamaño del espacio vectorial no supera unos pocos cientos.

Para simplificar, se puede describir este método de la siguiente manera: los algoritmos intentan predecir una palabra basándose en las palabras cercanas. Como resultado de este algoritmo, los vectores obtenidos de palabras conectadas se encuentran uno cerca del otro en el espacio vectorial. Por ejemplo, las palabras más cercanas al "rey" serán "reina", "princesa".

Para obtener un vector de todo el documento (es decir, de la descripción de aplicación), como regla general, los vectores de palabras se suman. Aquí podemos ver una evidente desventaja que es que un vector obtenido se ve afectado por los vectores de palabras que no están relacionados con el significado del texto. La transformación de palabras en vectores funciona muy bien para las palabras sueltas, bien para las combinaciones de palabras y mal para las frases. Para documentos largos este método no funciona en absoluto. Para mejorar la transformación de textos en vectores, necesitamos eliminar las palabras insignificantes del texto a analizar o usar la suma ponderada de los vectores. La elección del algoritmo no siempre es evidente.

Otra desventaja de este método es la dependencia de la calidad del modelo del tipo de colección de documentos que se utilizó para el aprendizaje automático. Para el idioma ruso, por ejemplo, para llevar a cabo el aprendizaje automático con éxito, es necesario recopilar una colección de documentos temática bastante grande, generalmente con más de 10 millones de palabras.

Autocodificador basado en una red neuronal

El autocodificador es un algoritmo para el aprendizaje automático no supervisado que utiliza una red neuronal para que el vector de entrada de los valores de X desencadene una respuesta de la red de los valores de Y iguales al vector de entrada (Y = X).

Ejemplo de autocodificador:
Autocodificador
Además, la arquitectura de la red tiene las siguientes limitaciones:
  • El número de neuronas de la capa oculta L2 debe ser menor que el tamaño de los datos de entrada (ver diagrama);
  • La activación de las neuronas de la capa oculta debe ser escasa (el número de las neuronas inactivas de la capa oculta debe ser mucho mayor que la de las activas). Normalmente el porcentaje de las neuronas activas no supera el 5 %.
La ventaja de este método es el hecho de que el vector obtenido (por lo general, es la salida de la capa oculta L2) transmite el significado del texto de entrada con bastante precisión. Sin embargo, la desventaja de este método es que se necesita una colección de documentos grande y de calidad para el aprendizaje.

Al analizar los métodos mencionados anteriormente, llegamos a la conclusión de que ninguno de ellos proporciona suficiente precisión. Eventualmente aplicamos un método un poco diferente, cuya descripción está más allá del tema de este artículo.

Desafortunadamente, el tamaño de este vector es de varios cientos de valores. Un intento de hacer agrupación con el vector de tales tamaños tomará mucho tiempo, incluso con algoritmos que se ejecuten simultáneamente. Necesitamos encontrar maneras de reducir el tamaño de los datos.

Reducción el tamaño de los datos con los métodos de aprendizaje automático y minería de datos

Aquí hay algunas maneras que se utilizan comúnmente en la minería de datos para reducir el tamaño de la base de datos. Vamos a echarles un vistazo y comparar.

Una forma de reducir el tamaño del conjunto de datos con una pérdida de datos mínima es con el análisis de componentes principales. Con la selección de proyecciones óptimas el algoritmo elimina la redundancia y la correlación en la matriz de vectores de entrada. Como resultado, obtenemos un conjunto de componentes significativos y no correlacionados. La principal desventaja de este método radica en el hecho de que las proyecciones esenciales se hacen por la matriz de covarianza, cuyo tamaño es proporcional al tamaño del conjunto de datos de entrada. Por lo tanto, para un gran conjunto de datos este método de búsqueda de vectores propios podrá ser imposible.

La descomposición en valores singulares se utiliza para la factorización de la matriz de las características del texto. La matriz de entrada se descompone en varios componentes, cuya esencia física son operadores lineales secuenciales de rotación y extensión de los vectores de entrada. Los componentes de la descomposición singular visualizan los cambios geométricos al modificar el tamaño del espacio vectorial.

El mapa autoorganizado de Kohonen es un tipo de redes neuronales que se entrena mediante el aprendizaje no supervisado. El objetivo principal de este algoritmo es encontrar patrones ocultos en el conjunto de datos al disminuir el tamaño del espacio del vector de entrada.
Las características importantes de tales mapas es que visualizan el espacio reducido de manera que la topología del espacio de entrada no cambia. Esto significa que las proyecciones obtenidas pueden compararse entre sí, el tamaño entre ellas puede medirse, etc.
La ventaja de los SOM es su estabilidad, incluso con datos ruidosos y un proceso de aprendizaje rápido. La desventaja es que el resultado final del trabajo de las redes neuronales depende de la configuración de la red inicial.

Es un algoritmo popular para reducir el tamaño del conjunto de datos. Este algoritmo permite reducir cientos de dimensiones hasta sólo dos manteniendo las correlaciones significativas entre los conjuntos de datos sin cambios: cuanto más cerca estén los objetos en el espacio de entrada, más corta será la distancia entre estos objetos en el espacio reducido. t-SNE funciona bien con conjuntos de datos reales de pequeño y mediano tamaño y no requiere muchos ajustes para los hiperparámetros.
En nuestro caso el algoritmo t-SNE mostró los mejores resultados en plan de reducir el tamaño de vector.
El resultado de ejecución del algoritmo t-SNE se presenta en el siguiente diagrama:
Proyecciones de los vectores de descripción de aplicación en el espacio creado con t-SNE
Como resultado, en el diagrama se puede ver vívidamente los grupos de aplicaciones acumulados. Ahora es el momento de agrupar las aplicaciones. ¿Pero cuántos grupos deben existir? ¿30, 50 o 100?

Desafortunadamente, todavía no hay solución para este problema en el análisis de grupos y debemos tomar una decisión basándonos en factores subjetivos. Por ejemplo, si el número de los grupos es demasiado pequeño, entonces se perderá la selectividad, de lo contrario, si es demasiado grande, perderemos la capacidad de generalizar. Por eso tenemos que buscar una solución equilibrada.

Antes de agrupar, debemos determinar el número óptimo de los grupos

En el análisis de grupos hay varios métodos aproximados para encontrar este número. Uno de ellos, supuestamente el más claro y el más intuitivo, es el método de Elbow. Este método supone creación de un gráfico que muestre la correlación entre la dispersión de la calidad del agrupamiento y el número de los grupos k.
Inicialmente, la adición de grupos nuevos ayuda sustancialmente al modelo, pero en algún momento el número creciente de los grupos deja de mejorar la calidad del agrupamiento. Entonces, este punto indica el número óptimo de los grupos. Sin embargo, es necesario visualizar la calidad del modelo para verificarlo. Por ejemplo, en nuestro caso, como se ve en el gráfico anterior, el valor óptimo de k es 40-50, pero después de verificar los grupos obtenidos, muchas aplicaciones con características absolutamente diferentes al final se vieron en el mismo grupo. Por eso decidimos aumentar el valor de k hasta 100.

Algoritmo K-means en acción

Ahora realizamos el agrupamiento utilizando los algoritmos K-means con k = 100 y verificamos las descripciones de las aplicaciones dentro de los grupos obtenidos.

Agrupamiento de las proyecciones de t-SNE
En el diagrama podemos ver los grupos colorados y numerados. ¿Qué es lo que se nota en seguida? Algunos grupos están separados de otros y no tienen "vecinos". Pero hay algunos grupos que tienen una frontera clara con otros grupos. Por ejemplo, en el área resaltada podemos ver los grupos 0 y 60 que dividen un grupo grande de aplicaciones por la mitad. Nuestra hipótesis es que en este caso, como resultado del agrupamiento, obtuvimos dos categorías objetivas.

Echemos un vistazo a las aplicaciones que se encuentran en estos dos grupos e intentemos comprender si hemos alcanzado nuestro objetivo. En primer lugar, podemos dibujar un gráfico de barras de las categorías de mercado de aplicaciones que se encuentran en los grupos 0 y 60.

Gráfico de barras: Distribución de las categorías de mercado en los grupos 0 y 60
Ahora veamos algunas aplicaciones y las 50 palabras principales de las descripciones de las aplicaciones en cada uno de los grupos.

GRUPO 0
Babbel - Aprende italiano
Innovative 101 Learn Languages
Aprende danés: Curso de idioma
Page: Corrector gramatical de inglés
Diccionario Oxford español-inglés

palabra frase aprender idioma hablar inglés vocabulario diccionario español lecciones nativo gramática audio babbel oración habla pronunciación viajar símbolo buscar ayudar chino curso práctica voz nombre traducir estudiar ritmo escribir italiano término diccionario escuchar tiempo francés hablantes asl característica odyssey coreano categorías gustar apuntar reseña deletrear leer período texto japonés

GRUPO 60
Live Translator HQ
Traductor fuera de línea Pro 8 lang
Traductor de voz Pro
Diccionario de español +
Diccionario Árabe Elite

trabajar inglés traducir diccionario idiomas texto idioma traducción frase español traductor voz francés chino habla traducciones pronunciación japonés portugués italiano alemán hablar ruso árabe offline oración buscar aprender coreano holandés soporte danés polaco turco diccionarios sueco noruego finlandés checo griego definiciones hebreo rumano hindú vocabulario internet tailandés húngaro conexión catalán

Si al juzgar por las 50 palabras principales, es difícil definir de qué tipo es la aplicación, al mirar los nombres de las aplicaciones, es fácil comprender que el grupo 0 comprende aplicaciones diseñadas principalmente para aprender idiomas extranjeros, mientras que el grupo 60 está compuesto principalmente por traductores.

En resumen, si tomamos tres categorías de mercado del gráfico de barras de un grupo, obtendremos el nombre de la pseudocategoría objetiva que es relevante para este grupo. Por ejemplo, eso puede ser así:


grupo 0 - education_travel_reference
grupo 60 - reference_travel_books

La primera es la categoría de mercado primaria, las dos últimas son categorías para aclarar que añaden detalles semánticos adicionales a la categoría primaria.

Para evaluar la calidad del agrupamiento y ver cómo las categorías de mercado se dividen en grupos, hay un método de visualización más: mapa de calor. Muestra cómo y en qué proporciones las categorías de mercado se dividen en grupos. Además, el mapa de calor permite ver la jerarquía de los grupos, o sea, cómo los grupos se correlacionan entre sí.
Así es en nuestro caso.

Mapa de calor
Aquí podemos ver un grupo independiente, así como grupos estrechamente conectados. Los grupos incluyen categorías de mercado primarias, dentro de las cuales la aplicación puede tener funcionalidad diferente. Por ejemplo, en el rincón inferior derecho, el grupo de entretenimiento tiene categorías de aclaración adicionales: foto y video, compras, música, estilo de vida.
RESUMEN
Aplicando diferentes métodos de análisis basados en el aprendizaje automático, creamos una herramienta que permite monitorear sistemáticamente el mercado móvil y sus tendencias para distinguir una aplicación nueva publicada en las tiendas de aplicaciones que no puede ser referida a ninguna categoría de aplicaciones existente.

El modelo sugerido para agrupamiento se desarrolló en asociación con Robolitica y será utilizado para analizar tendencias móviles.