
OBJETIVOS
Desarrollar sistemas de detección automática de temáticas en tweets con cashtags del London Stock Exchange.
Implementar modelos estadísticos de clustering sobre los tweets.
Transformar los tweets disponibles en un grafo.
Estudiar el rendimiento de las técnicas de detección de comunidades sobre el grafo resultante.
Agrupación automática de temáticas
en tweets financieros
GRAFOS
CLUSTERING
DETECCIÓN DE COMUNIDADES
R
PYTHON
LSE
CASHTAG
METODOLOGÍA
Desarrollo de técnicas de clustering jerárquico y plano sobre tweets financieros sobre R
Transformación del conjunto de tweets en un grafo en base a la similitud en su contenido
Reducción de densidad del grafo resultante
Implementación de técnicas de detección de comunidades sobre el grafo resultante mediante Python
INTRODUCCIÓN
La inclusión de la tecnología en los mercados financieros ha llevado a un continuo crecimiento en su negocio. Estas nuevas tecnologías ayudan tanto a las grandes compañías como a los inversores particulares a obtener información sobre diferentes temas de interés como serían la situación de una empresa, la opinión de los clientes, noticias sobre cambios significativos, rumores… A medida que las redes sociales han invadidos los hábitos de la gente, también las compañías, brokers y otros papeles clave en el mercado financiero empezaron a publicar en este tipo de redes más y más información de utilidad y opiniones profesionales sobre las bolsas de valores. Toda esta información disponible de forma pública vuelve las redes sociales, especialmente Twitter, en una de las mayores, si no la mayor, fuente de información para brokers e inversores particulares.
El objetivo de este proyecto es desarrollar distintas estrategias de clustering y detección de comunidades que permitan la separación automática de tweets financieros en base a su contenido, de forma que las divisiones resulten indicativas de los diferentes tipos de mensajes presentes en el dataset. Con esto se busca poder establecer diferentes tipologías de tweets de forma que se pueda dar un tratamiento diferenciado a cada una de ellas.
Más específicamente, se analizarán y compararán diferentes técnicas de agrupación automática. Estos sistemas de separación considerarán tanto la representación vectorial de cada tweet como la interpretación de la colección de tweets como un grafo conexo.
Para ello, se dispone de 50.000 tweets relativos a empresas de la bolsa de valores de Londres (LSE) los cuales han sido manualmente clasificados en varias temáticas dependiendo de su contenido. Entre estas figuran algunas como opinión, actualizaciones de estado, noticias, recomendaciones o spam, hasta un total de 12 categorías diferentes consideradas. El contenido de estos tweets ha sido previamente preprocesado y adaptado a una representación fácilmente interpretable por máquinas mediante el uso de técnicas de NLP y su conversión a un vector empleando una matriz de word embeddings.
DESARROLLO
Tras la conversión mediante la matriz de word embeddings cada tweet es representado como un vector con un número fijo de componentes. En primer lugar, sobre estos se han aplicado distintas técnicas de clustering. En particular, se han propuesto distintas alternativas como sería el caso del clustering jerárquico o Kmeans. Para estos casos se ha estudiado el rendimiento para diferentes métricas de similitud, separación entre grupos y procesos de determinación de la cantidad de temáticas a detectar, entre otros.
De cara a analizar estas técnicas se han considerado tanto diferentes métricas estadísticas de separabilidad como la inspección manual de los distintos grupos formados y sus características. Asimismo, los resultados para cada una de estos métodos han sido comparados con los obtenidos al agrupar manualmente el dataset, estudiando las similitudes y discordancias entre ambos.
Dado que, incluso manualmente, la diferenciación entre unos tipos de tweets y otros es muy sutil, se han implementado también técnicas de clustering difuso, como sería el caso de Fuzzy-Kmeans de manera que las separaciones entre los grupos no tendrían que ser tan estrictas. El desarrollo de estas técnicas de machine learning ha sido realizado sobre R, haciendo uso de diversas librerías que ofrece para este tipo de tareas.
Para llevar a cabo la conversión del conjunto de tweets a un grafo conexo, se ha implementado un script sobre Python que genere un grafo ponderado no dirigido en base a las similitudes entre cada par de tweets. En particular, el peso asignado a cada arista sería aproximadamente inversamente proporcional a la distancia que separa los vectores de ambos tweets, de manera que las conexiones entre tweets más similares tienen asignado un peso mayor.
El grafo resultante sería un grafo ponderado completo. Así, trabajar con este grafo supondría una elevada carga computacional para el sistema. Como resultado, el trabajo con este formato de representación sería extremadamente ineficiente, volviendo a los sistemas que lo emplean prácticamente sin utilidad, incluso para dataset muy pequeños.
Por evitar esto, se ha realizado un estudio exhaustivo de la distribución del peso de las aristas y el grado ponderado de cada nodo. Basándose en sus conclusiones, se han desarrollado una serie de estrategias de poda que permiten reducir significativamente la complejidad del grafo resultante, a la vez que se mantiene las conexiones más relevantes.
En cuanto a las técnicas de detección de comunidades, al igual que para clustering, se ha analizado el rendimiento tanto de métodos jerárquicos: Random walks o Newman’s eigenvectors, como planos: Louvain, Infomap o Label Propagation. Asimismo, también se ha estudiado la definición de otros patrones de similitud más complejos mediante el uso de técnicas de división por bloques. Estas distintas alternativas han sido desarrolladas sobre Python, con el soporte de la librería Igraph.
RESULTADOS
En este proyecto se han propuesto y analizado diferentes alternativas a la hora de realizar la separación automática de tweets financieros en base a su contenido, comparando sus resultados con los obtenidos al separarlos manualmente. Como resultado, se han obtenido una serie de metodologías que permiten agrupar de manera relativamente satisfactoria los posts de temáticas similares pudiendo darle un tratamiento diferenciado a cada uno de ellos.


