Análisis de sentimientos en Twitter con HMM

Congresos No Comments »

emotions-371238_1280Es el título de mi charla en el Comunica 2: un congreso que se celebra todos los años por esas fechas en la EPS de Gandía sobre comunicación y redes sociales. En ella, hablé de un proyecto en el que estamos trabajando: analizar los sentimientos que aparecen en los mensajes en las redes sociales.

La hipótesis de partida es que los tuits no demuestran cual es el sentimiento real de los usuarios. Al menos no siempre. En ocasiones, yo puedo estar con un estado de ánimo determinado, pero escribir un mensaje que expresa una emoción distinta.

Para poder analizarlo, usamos modelos ocultos de Markov (HMM). En estos modelos hay dos tipos de estados: unos ocultos, que no podemos conocer, y otros observables. El ejemplo que se suele poner en estos casos es el siguiente: piensa que nuestro amigo vive en una ciudad distinta. Nosotros no sabemos qué tiempo hace allí (si llueve o hace sol -oculto-), pero sí qué es lo que ha hecho nuestro amigo ese día (correr, ir de compras o hacer las tarea de la casa -observable-). Si conocemos las probabilidades de que nuestro amigo corra o salga de compras en cada caso, podríamos tratar de estimar qué tiempo hace en su ciudad.

Eso mismo hacemos con los sentimientos: nosotros no vemos el sentimiento de la persona (oculto), pero si su expresión a través de un tuit (observable), así que tratamos de determinar el sentimiento de los usuarios a través de la secuencia de tuits que escribe.

El modelo que usamos para determinar el sentimiento es el modelo de Russell, que asocia dos valores: valencia (positivo o negativo) y arousal (activo/pasivo). Estos valores se pueden representar en un sistema de coordenadas y determinar el sentimiento que le corresponde según su posición.

Con todo eso, lo que hacemos es

  1. descargar los tuits de un determinado evento, es decir, los que contienen una determinada etiqueta (hashtag)
  2. extraer de cada tuit las palabras que tienen carga emocional y asignarles el valor de valencia y arousal que le corresponde (usamos el diccionario ANEW).
  3. crear la red que modela la conversación del evento. Si un mensaje es una mención, una respuesta (reply) o un retuit, creamos un enlace entre los dos usuarios (eso se usa luego para inicializar el HMM)
  4. construir las secuencias de tuits para cada usuario. Dividimos estas secuencias en dos partes: el 80% para entrenar el modelo y el 20% para validarlo
  5. entrenar el modelo usando el conjunto de secuencias de entrenamiento. Eso nos da unas probabilidades de pasar de un sentimiento a otro y de, dado un sentimiento, publicar un tuit con una emoción un otra.
  6. validar el modelo con las secuencias de test que quedan

El resultado obtenido muestra que, en general, los HMM funcionan mejor que los modelos de Markov "normales", sin estados ocultos. Es decir, que considerar por separado el sentimiento real del usuario de la emoción que muestra en un tuit explica mejor cómo evolucionan los sentimientos de los  usuarios y qué emoción aparece en los tuits. Además, esta diferencia es mayor en eventos en los que no hay un sentimiento mayoritario.

El artículo completo aparecerá en las actas del congreso. Mientras, te dejo las transparencias que usé en la charla

(imagen: Ryan McGuire, public domain)

U-Tool: herramienta para analizar la actividad de los ciudadanos

Congresos Comentarios desactivados en U-Tool: herramienta para analizar la actividad de los ciudadanos

Otro de los trabajos que presentamos en la pasada conferencia PAAMS '16 fue la demo de una herramienta creada por Javier Palanca y Elena del Val. Lo que empezó como una herramienta para recopilar tuits de forma automática (privada) y una web para analizar la actividad de la ciudad durante las Fallas (www.buscafallas.com), se han acabado uniendo (y ampliando) en un proyecto que se está integrando en el portal de Datos abiertos del Ayuntamiento de Valencia.

La herramienta permite seguir una etiqueta en Twitter o los tuits geolocalizados que se publican en un área determinada. Los datos recopilados se muestran en un mapa para ver la densidad de tuits, un grafo que muestra las conversaciones, o la principal aportación: un mapa gravitacional en el que se refleja como determinadas zonas de la ciudad atraen a las personas y las trayectorias que se siguen para desplazarse de unos sitios a otros.

Aquí están las transparencias de la presentación. Es una versión modificada, con algo más de texto para que sean autoexplicativas.

 

AHP descentralizado en redes multicapa mediante consenso

Congresos Comentarios desactivados en AHP descentralizado en redes multicapa mediante consenso

ahp_groupMás o menos es la traducción del trabajo que he presentado esta semana en el PAAMS'16, que se está celebrando del 1 al 3 de junio en la Escuela de Informática de la Universidad de  Sevilla.

Los procesos analíticos jerárquicos se emplean para la toma de decisiones complejas en la que intervienen muchos factores (decisiones multi-criterio); por ejemplo, la valoración de jugadores de fútbol, pero también obras de arte, patentes, empresas... En nuestro caso, el problema se complica ya que

  • la decision no es individual, sino de un grupo que tiene que llegar a un acuerdo (la mejor solución para todos)
  • cada criterio tiene un valor distinto para cada persona, y se mantiene privado (nadie sabe qué es más importante o menos para el resto de miembros del grupo)
  • todos los miembros del grupo no se conocen entre sí, sino que cada persona solo conoce a algunos miembros. El grupo realmente es una red, como la que se forma en las redes sociales

Nuestra solución combina dos métodos: un proceso de consenso en cada uno de los criterios para tratar de llegar a la solución común, más un proceso de ascenso por gradiente que trata de compensar lo que cedo en uno de los criterios al grupo en algún otro criterio que sea importante para mi.

Al final, bajo determinadas condiciones (que son bastante razonables), se puede garantizar que el proceso converge a la mejor decisión posible, que es la que maximiza el valor.

Es importante remarcar que nadie sabe dónde está este valor, pero se aproximan a él en grupo al tratar de acercarse a los demás (consenso) pero tratando de mantener  los valores mejores para cada miembro del grupo.

Os dejo aquí las transparencias de la charla y la referencia al artículo

Rebollo, M., A. Palomares, C. Carrascosa. Decentralized Group Analytical Hierarchical Process on Multilayer Networks by Consensus. In Advances in Practical Applications of Scalable Multi-agent Systems, pp. 183-194. doi:10.1007/978-3-319-39324-7_16, 2016

Detección de comunidades en redes mediante consenso

Congresos Comentarios desactivados en Detección de comunidades en redes mediante consenso

mrebollo_poster_netsci15_a4-1Estos días he estado en la International School and Conference on Network Science (NetSci '15). Era la primera vez que asistía a esta conferencia y la verdad es que me ha parecido muy interesante. Es un campo todavía nuevo para mi y apenas conozco a nadie, pero bueno, poco a poco.

El jueves presenté una de las cosas en las que estoy trabajando: los procesos de consenso en redes para tomar decisiones. Y esta vez, aplicado a la detección de comunidades de forma autónoma. La detección de comunidades es un problema conocido en el campo de las redes. Se trata de, dada una red (por ejemplo, conversaciones en Twitter, contactos en Facebook, pero también colaboraciones en artículos científicos o conexiones entre ciudades), detectar los grupos que existen en ella. Normalmente, hay un grupo cuando un conjunto de nodos de la red está más conectado entre sí que con el resto de la red, es decir, los grupos o las comunidades se detectan atendiendo a la densidad de las conexiones (alta dentro del grupo, baja entre grupos).

El método que he presentado tiene algunas diferencias:

  1. usa redes con signo: es decir, los enlaces pueden ser positivos o negativos, indicando relaciones de amistad/enemistad, me gusta/no me gusta, etc.
  2. no necesita saber de antemano cuántas comunidades existen
  3. trabaja con información local: cada nodo de la red solo conoce su propia información y la de sus vecinos directos. No sabe nada sobre el tamaño de la red, su estructura o ninguna otra característica global.

El proceso comienza asignando un valor aleatorio x a cada nodo. Se ejecuta el proceso de consenso (tratando de acercarse al valor de los vecinos) hasta que converge (no hay diferencias entre una iteración y la anterior). El resultado del proceso de consenso es la división de la red en dos grupos según el signo del valor final: aquellos con x > 0 pertenecen a un grupo y los que tienen x < 0 al otro. Si necesitamos hacer más divisiones, simplemente repetimos el proceso hasta que no haya más divisiones.

Hemos probado con algunos ejemplos conocidos, como la red que modela las relaciones entre tribus de Nueva Guinea y se detectan correctamente las 3 comunidades que existen realmente.

Para comprobar el rendimiento, hemos empleado un benchmark de detección de comunidades y hemos comparado nuestros resultados con otros métodos bien conocidos (ver el póster). El resultado es que el método que proponemos funciona mejor cuanto mayores son las redes. Cuando hay mucha mezcla entre grupos también funciona mejor que el resto. El único caso en el que obtiene peores resultados es para redes pequeñas y cuando hay un número elevado de comunidades. En cuanto al tiempo de ejecución, ahí el método es más eficiente que todos los demás con diferencia, sacando al menos un orden de magnitud (10 veces menos) al siguiente mejor método, y llegando a ser casi 10.000 veces más rápido que otras técnicas habituales (para redes de 500 nodos)

Por último, para comprobar si escala bien a redes grandes, lo hemos aplicado al dataset sobre conflictos en la Wikipedia. Es una red con más de 100.000 nodos y unos 4 millones de enlaces. Nuestro método sigue comportándose bien.

Algo que queda por hacer, es modificarlo para que sea capaz de obtener las comunidades en redes dinámicas, es decir, que la red cambie mientras se construyen las comunidades y que los grupos cambien cuando la red se modifique. Ya tenemos resultados en ese sentido que simplemente hay que adaptar para este caso. Otro tema es, en lugar de construir el grupo atendiendo a un criterio x, tratar de construir las comunidades a partir de varias dimensiones (x1, x2, x3,…) De nuevo, también es algo en lo que estamos trabajando y que posiblemente en unos meses podamos aplicar a este caso también.

Os dejo una copia del póster, por si a alguien le interesa (pincha en la imagen para verlo en grande)

mrebollo_poster_netsci15_a4mrebollo_poster_netsci15_a4

[EUMAS10] J-MADeM v1.0: A full-fledge AgentSpeak(L) multimodal social decision library in Jason

Agentes, Congresos Comentarios desactivados en [EUMAS10] J-MADeM v1.0: A full-fledge AgentSpeak(L) multimodal social decision library in Jason

by Francisco Grimaldo

Trying to produce social intelligent agents that shows an acceptable behaviour in social envinronments. Applied to BDI agents and using an auction model as decision/making mechanism. It seems interesting for us, as the last step for reaching a concrete agreement after an agreement space has been created using a consensus network. And it is implemented over Jason, so we can integrate it in Mgx agents.

The API seems to extend a Jason agent with predicates that can be introducced in the rules. So if we get a network of jason-mgx agents, we can program agents with decision making procedires that maximizes the benefit of a concrete water rights distribution among participants.

An interesting work that can be useful for us. I'll read the paper later

[CostAT] Trust as a Unifying Basis for Social Computing

Agreement, Congresos Comentarios desactivados en [CostAT] Trust as a Unifying Basis for Social Computing

by Munindar Signh

Trust underlies all interactions among autonomous parties over many social relationships: casual, familiar, communal, organizational, practical.... But trust it use to be a internal characteristics and it can not be extrapolated outside a single application.

A social applications specifies and configure (i) roles,, (Ii) social interactions and (iii) additional constraints. And the elements we have available to model these systems (architecture) are components, connectors, constraints (over both of them) and patterns (that generalize its behavior). In the case of a social systems, they are
components >> individuals
connector >> social relationships
constraint >> reciprocal (ej Facebook)
patterns >> ....

The claim of this presentations is that trust is what flues in the relationships and it is how individuals and social relationships can be characterized. The sample> an agent (Toto) that acts as a middleware and can provide with trust the interactions among real people in different applications. That is, a layer which can be used in social apps (for instance) to measure the confidence on other users (humans) interactions (NOTE. a very close concept to the trust bundle proposed in AT)

[CostAT] Coherence-based argumentation models for normative agents

Agreement, Congresos Comentarios desactivados en [CostAT] Coherence-based argumentation models for normative agents

by Sindhu Joseph

Abstract :
In this talk coherence-based models are proposed as an alternative to argumentation models for the reasoning of normative agents and normative deliberation. The model is based on Thagard’s theory of cognitive coherence and exploits the coherence relations that exist between claims and conclusion of arguments. A coherence-based model is intended to introduce more flexibility in the process of deliberation and agreement generation among normative agents. The basic coherence philosophy and what makes it interesting in the context of normative agents that deliberate to regulate a domain of interest are discussed.

This paper shows the application of coherence models to an argumentation model in a normative, regulated environment. I'm interested not in tris particular application, but in the coherence theory (Thagard).

Coherence estudies associations between pieces of information. It tríes to separate information in sets that mutually support the data. In some way, it can be consideres as a constraint satisfacción problem.

Different types of coherence can be identified: deductive, explanatory, deliberative, analoogous or conceptual, depending on the type of information. The Thagard model is a model of deductive coherence. It can be considered as a constraint satisfacción problem. But the main difference is that it does not try to maximize the partition (not the optimal -it is not needed to find a solution-)

Coherence applied to argumentation sees positive relates info as supporting arguments and negative weights as attacks to a claim.

Problem (general) How the coherence weights are calculated? Well, it is addressed in the questions: depends (roughly) on the number of arguments supporting a hypothesis.

Something interesting in the conclusiones: it can model different tupes of agente (utility maximizares, norm abiders, altruistic...) What about diferentt personalities? And a possibility for us: introduction of contexto as part of the future work.

More infomration, read Sindhu Jospeh PhD. thesis, "Copherence-Based Computational Agency"

Consensus Networks as Agreement Mechanism for Autonomous Agents in Water Markets

Agentes, Agreement, Artículos, Congresos Comentarios desactivados en Consensus Networks as Agreement Mechanism for Autonomous Agents in Water Markets

Es el título de nuestro paper en las Jornadas que organiza el $latex im^2$ (Instituto de Matemática Multidisciplinar) de la UPV: Mathematical Models for Addictive Behaviour, Medicine & Engineering. El tema es el uso de redes de consenso para alcanzar acuerdos de forma descentralizada, aplicado en concreto a problemas de gestión de recursos hídricos. A continuación te dejo el resumen (en inglés) y las trasparencias de la presentación. En cuanto esté publicado dejaré también la referencia completa al artículo y, si puedo por temas de licencia, el enlace.

Abstract

The aim of this paper is to present a way of share opinions in a decentralized way by a set of agents that try to achieve an agreement by means of a Consensus Network, allowing them to know beforehand if there is possibilities to achieve such an agreement or not.
The theoretical framework for solving consensus problems in dynamic networks of agents was formally introduced by Olfati-Saber and Murray (2004). The interaction topology of the agents is represented using directed graphs and a consensus means to reach an agreement regarding a certain quantity of interest that depends on the state of all agents in the network. This value represents the variable of interest in our problem.

A consensus network is a dynamic system that evolves in time. Consensus of complete network is reached if and only if $latex x_i = x_j \forall i, j$. Has  been de demonstrated that a convergent and distributed consensus algorithm in discrete-time can be written as follows:

$latex x_i(k+1)=x_i(k) + \varepsilon \sum_{j \in N_i} a_{ij}(x_j(k)-x_i(k))$

where $latex N_i$ denotes the set formed by all nodes connected to the node i (neighbors of i). The collective dynamics of the network for this algorithm can be written as $latex x(k+1)=Px(k)$, where $latex P=I-\varepsilon L$ is the Perron matrix of a graph with parameter $latex \varepsilon$. The algorithm converges to the average (or other functions) of the initial values of the state of each agent and allows computing the average for very large networks via local communication with their neighbors on a graph.
The convergence of this method depends on the topology of the network and its convergence is usually exponential. But sometimes it not needed to reach a final agreement on a concrete value. This proposal uses consensus networks to determine if an agreement is possible among a set of entities. Agents can leave the agreement if its parameters are out of the expected bounds, so the consensus network can be used to detect the candidate agents to be members of the final agreement. All this process is solved in a self-organized way and each individual agent decides to belong or not to the final solution.
To show the validity of the present approach, a water market is presented as case of study. The water market is a case of complex social-ecological system (SES), where centralized and hierarchical approaches trend to fail and self-organized solutions seems to be more sustainable in the long term (Ostrom, 2009). In general, agreements related to natural resource management involve very complex negotiations among agents. Water demands and regulation is a very complex distributed domain appropriated for MAS.
An important question is if this kind of markets requires some regulation or not. From an exclusively economic point of view the dominant strategy for agents in deregulated markets is not cooperative because each agent wants to maximize exclusively his payoff, and therefore they are not interested in the global and socially efficiency of the natural resources.

DCAI '10 Call for papers

Congresos Comentarios desactivados en DCAI '10 Call for papers

The International Symposium on Distributed Computing and Artificial Intelligence (DCAI 2010) is an annual forum that will bring together ideas, projects, lessons, etc.. associated with distributed computing, artificial intelligence and its applications in different themes. The workshop will be organized into CEDI 2010 that will be held at the Polytechnic University of Valencia in September 7-10th, 2010.

This symposium will be organized by the Biomedicine, Intelligent System and Educational Technology Reseach Group (BISITE) of the University of Salamanca. The technology transfer in this field is still a challenge and for that reason this type of contributions will be specially considered in this symposium. This conference is the forum in which to present application of innovative techniques to complex problems.

The artificial intelligence is changing our society. Its application in distributed environments, such as the Internet, electronic commerce, mobile communications, wireless devices, distributed computing, and so on is increasing and is becoming an element of high added value and economic potential, both industrial and research. These technologies are changing constantly as a result of the large research and technical effort being undertaken in both universities and businesses. The exchange of ideas between scientists and technicians from both academic and business areas is essential to facilitate the development of systems that meet the demands of today's society.

DCAI 2010 is sponsored by the IEEE Systems Man and Cybernetics Society, Spain Section Chapter. The accepted papers included in DCAI 2010 proceedings (long papers, short papers and doctoral consortium papers) will be published by Springer Verlag in the Advances in Intelligent and Soft-Computing series of Springer. At least one of the authors will be required to register and attend the symposium to present the paper in order to include the paper in the conference proceedings.

(Read the complete Call for Papers)

Agreement Technologies and Social Neuroscience

Agentes, Agreement, Congresos Comentarios desactivados en Agreement Technologies and Social Neuroscience

Los días 18 y 19 de  febrero tendrá lugar el workshop Agreement Technologies and Social Neuroscience, organizado dentro del proyecto Agreement Technologies. Se trata de un workshop multidiciplinar para tratar de comprender mejor cómo se pueden modelar acuerdos dentro de un contexto social entre

El año pasado asistí y la verdad es que resultó muy interesante: hablar con expertos de áreas que no tienen que ver nada con la mía... ni siquiera con la informática, descoloca un poco pero es muy enriquecedor. Si te gustan estas cosas te recomiendo que vayas. Si hay hueco, yo pretendo ir.

Si quieres saber algo más, aquí tienes el programa y los resúmenes de las ponencias.... y no voy a escribir más frases que empiecen con "si".

WP Theme & Icons by N.Design Studio | Modified by M. Rebollo
RSS Entradas Acceder
Blog logo: MC MECHANIC-HAND FIXING HAND Homage to MC Escher. (c) Shane Willis