WO2012004425A1 - Método de detección de comunidades en redes sociales masivas mediante un enfoque aglomerativo - Google Patents

Método de detección de comunidades en redes sociales masivas mediante un enfoque aglomerativo Download PDF

Info

Publication number
WO2012004425A1
WO2012004425A1 PCT/ES2010/070471 ES2010070471W WO2012004425A1 WO 2012004425 A1 WO2012004425 A1 WO 2012004425A1 ES 2010070471 W ES2010070471 W ES 2010070471W WO 2012004425 A1 WO2012004425 A1 WO 2012004425A1
Authority
WO
WIPO (PCT)
Prior art keywords
communities
individuals
social
links
dikes
Prior art date
Application number
PCT/ES2010/070471
Other languages
English (en)
French (fr)
Inventor
Rubén LARA HERNÁNDEZ
Rafael PELLÓN GÓMEZ-CALCERRADA
Arturo CANALES GONZÁLEZ
David MILLÁN RUIZ
Rocío MARTÍNEZ LÓPEZ
Original Assignee
Telefonica, S.A.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonica, S.A. filed Critical Telefonica, S.A.
Priority to US13/809,107 priority Critical patent/US20130198191A1/en
Priority to PCT/ES2010/070471 priority patent/WO2012004425A1/es
Publication of WO2012004425A1 publication Critical patent/WO2012004425A1/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Definitions

  • N-clan it is a limited N-clique that does not allow connections through nodes that are not contained in
  • Non-overlapping communities other approaches do not allow the detection of overlapping communities. However, people usually belong to several communities (groups of friends, family, clubs, etc.)
  • Single block architecture Most approaches are articulated in a single monolithic block, such as clustering-based algorithms. However, multi-block methods allow different configurations in which the "small pieces" of the architecture can be exchanged without modifying the general structure and its operation. Efficiency: the calculation time is a major obstacle in many cases.
  • social networks are a source of information that allows companies to improve their products, services and relationship with their customers. Therefore, the purpose of this patent is to describe a new user knowledge scheme, which combines the analysis of user interactions in each social context. It should be taken into account that the user behaves differently depending on each social context.
  • the present invention can be used by distributors of targeted advertising, that is, to send personalized advertisements to each customer.
  • the present invention offers the possibility of finding a potential customer who may be interested in a product and thus finding a direct communication path between the sales company and the final customer. They can also focus on user communities that have the same tastes.
  • this information can be exploited for a wide range of applications such as: brand communication, recommendation of products, services or social activities, event detection, etc.
  • this patent describes a flexible and efficient method of detecting communities in large-scale social networks, which can be classified as a method of agglomeration.
  • the nodes of the social network are not grouped into communities in one step. Instead, it begins by building core communities and iteratively they are grouped together forming higher level communities until the algorithm converges (a stop condition is met).
  • this process allows you to effortlessly observe how communities grow, resulting in an easily explainable model.
  • the described method also allows the detection of overlapping communities, since an individual can have different social circuits.
  • some people may not belong to any community, since social networks are built, in many cases, from partial observations of social interactions. Therefore, there may be people for whom there is not enough data to determine what their social circuits are.
  • forcing a person to belong to a community is not an appropriate strategy because the cohesion of the graph decreases, which implies that the communities are more dispersed and, as a result, the communities detected may not fit the true social groups.
  • the present method starts from data representing social interactions between individuals. of one or x k 'periods of time not overlapping.
  • Social relationships can be extracted from this social interaction data, for example, phone calls or emails, building a weighted social graph where vertices represent individuals and links (also called edges) represent social relationships between the individuals and the intensity of the relationship.
  • the weighted combination of data corresponding to social interactions in different periods of time is allowed, so that not only the most recent interactions, but also historical data, can be taken into account. The result is that the social network created and the detected communities better represent social relationships and, therefore, are more stable and robust.
  • the approach of the present invention is different from those already existing because, in the first place, the core communities or dikes (densely connected communities) are detected and then combined to obtain higher level communities in an iterative way taking into account the strength of the relationships between individuals (the weights of the social graph links). This allows finding communities that are neither too cohesive nor too dispersed; My friends' friends are not always my friends as N-cliques or N-clans presuppose.
  • the global cohesion of a community will allow some vertices to belong to the community even though they are not directly connected to all other members of the community.
  • the community is supposed to be cohesive enough that there may be other forms of communication between these vertices.
  • a definition of communities based on "dikes" have the desired density and longest path values between each pair of nodes, these must meet a too strict condition because all the nodes must be linked to the rest of the nodes.
  • the design of the method follows a configurable multiblock strategy where the different stages (construction of the social graph, detection of dikes, fusion of communities and inclusion of associated members) are designed as functional blocks, with a well-defined entrance and exit. This means that the blocks can be replaced at any time in order to meet the particular needs of the scope, and that the parameters for the operation of each block are known and can be adjusted to offer a flexible solution.
  • the present invention relates to a method of detecting communities in massive social networks through an agglomerative approach.
  • the communities and social groups are formed by individuals, users or members that interact with each other and these nodes are represented in a social graph by means of the nodes or vertices of said graph while the links represent the social interaction between the users or members that connect.
  • the social interactions between individuals will be telephone calls, emails, SMS, MMS, virtual social interactions different from the previous ones and likely to be analyzed, as well as a combination of these.
  • a user will set some configuration parameters in a range such that: d ⁇ l, NM ⁇ 2, j> 0, 0 ⁇ const ⁇ l, 0 ⁇ vt ⁇ l,> 0 and ⁇ > 0. It also defines a dike as a fully connected subgraph.
  • the main phases of the mentioned method are:
  • a set "I” of data relating to social interactions between users is entered.
  • Each interaction is defined as “ ⁇ ” belonging to “I” and said “ ⁇ ” is described as a tupia (vi, Vj, t, pi, .., p n ) where n v ⁇ "and ⁇ 'are any two individuals that interact with each other, "t” is the moment when such social interaction occurs and pi, .., p n "are the properties of social interaction, which in a preferred embodiment will be the type of interaction, the Type of communication channel and location information.
  • the construction phase of the social graph includes the following steps:
  • the phase of merging of dikes is carried out iteratively.
  • the empty set " ⁇ ⁇ + i" was created with i: 0 ... M where "M” is the number of iterations performed.
  • the phase of dyke fusion comprises the following stages:
  • G ⁇ j (V ⁇ j , E ⁇ j ) where the vertices are the communities of and the set of links between these communities;
  • Said inclusion phase comprises the following stages:
  • the value "Je” is the sum of the strength values of the links of the Inters (Cj, W) individuals with “v”, and where the operator "
  • an additional phase of dyads inclusion is carried out, said dyads being two-member communities, comprising the following stages:
  • this algorithm has been used specifically as an example.
  • This algorithm comprises the following steps:
  • the communities are configurable: the exposed approach allows multiple strategies, depending on the scope of application. In this way, people are not obliged to belong to any community, since it is possible to find isolated users, in most cases as a result of the few available observations of social interactions.
  • Scalable it is capable of handling increasing amounts of nodes in an agile way.
  • - Multi-block architecture the blocks of the architecture can be replaced by other modules that perform a similar function.
  • this method takes into account the strength of communication between individuals.
  • Figure 1 Shows the flow chart of the general procedure of the invention.
  • Figure 2. Shows the flow chart of a dike detection procedure.
  • Figure 3. Shows the flow chart or a procedure of fusion of communities and social groups.
  • Figure 4.- Shows an example of the realization of the merger of a community.
  • Figure 5. Shows a procedure for the inclusion of associate members.
  • Figure 6.- Shows an example of embodiment of an inclusion of an associated member.
  • the first block 1) of Figure 1 constructs the social graph that represents individuals and their social relationships, extracted from different data sources.
  • the entries for this block are the data that describe a set "I" of social interactions, captured from any source that provides information on social interactions between individuals: what individuals interact, when this interaction occurs, and the attributes of the interaction such as type (for example, by phone, SMS, email, meetings) or location .
  • Each interaction "/ G /” can be described by a tupia (vi, V j , t, pi, .., p n ), where "vi” and “v” are two individuals interacting, "t” is the moment when that this interaction occurred, and "pi, .., p n " are the properties of the interaction, such as the communication channel or the location of the information.
  • V is the set of vertices or nodes, which correspond to users or individuals
  • E contained in” v 2 represents the set of links in the graph, representing the social relationships between individuals. For each link (vi, V j ) a weight or strength of the relationship is defined.
  • V ⁇ (v it V j , t, Pi, .., p n ) £ /, t ⁇ t max ".
  • the time interval "[tminr t max ]" ' corresponding to the observation period, is divided into a finite number "d" of intervals or periods of equal duration, with d ⁇ l.
  • observation period may not be continuous, for example, interactions have been observed in two non-consecutive months, or the observation period is to be divided into intervals of different duration. By these reasons allow the invention to divide the interaction data set into time intervals.
  • the links that represent social relations are obtained by applying a function on the number of social interactions between each pair of vertices ( people) for each period of time, and the properties of such interactions.
  • This function can apply different weights to interactions at different time intervals. In this way, historical data can be weighted so that older interactions are less relevant than recent ones.
  • I (vi, V j , r) contained in I
  • I is denoted to the subset of the interactions between two individuals "(vi, V)", during the time interval "r".
  • An arbitrary function is defined in this subgroup of interactions that assigns a force value to the social relationship between individuals and, in this period of time, based on the interactions that have occurred.
  • This function “5 t : V x V x [0, d] ⁇ [0, NM]” can define the strength of the relationship, for example as the total number of social interactions of any kind between "(vi, V) "in the interval considered, such as the number of emails exchanged, or using any other arbitrary function on the set of interactions between the individuals considered, possibly taking into account the properties of these interactions.
  • the “seed” communities are built that have at least 3 members, that is, groups of people for whom they have, from the built social network, the greatest possible evidence of their social connection. These communities, given by what we define as "strong dikes", constitute the nucleus of the communities that are in the subsequent stages.
  • the output of this block is the set "L” of "maximum levees", possibly they will also be strong overlapping dykes that are in the social graph "G".
  • a dyke in the theory of gratos is a subgraph (or a subset of vertices) "Q contained in G", in which each vertex “viGQ” is connected to all other vertices "v j GQ", that is, “Vt > ⁇ , V ⁇ EQ (v it v) EE ".
  • the size of a "Q" clique which is denoted is the number of vertices it contains and in a preferred embodiment they are at least 3 members.
  • the reason for searching dikes in this step is that the dikes are the most strongly connected vertex groups that can be found in a graph, that is, they are the groups of people for whom the strongest possible social connection can be observed.
  • the weight of a link represents the strength of the social relationship. Therefore, you can think of a more detailed definition of the clique that takes this force into account.
  • the objective is to find maximum strong dikes, that is, strong dikes whose vertices are not contained in a single larger clique, allowing them to overlap, that is, the same vertex can belong to more than one strong clique.
  • any algorithm can be used for the detection of overlapping dikes, obtaining a set "L" of all the maximum strong dikes found in the graph.
  • the present algorithm has been chosen for the detection of maximum dikes and possibly overlapping:
  • WiEP / Vi t QAV ⁇ ⁇ Q ⁇ Q QU ⁇ v t ⁇
  • ek is defined to denote the sum of the strength of the vertices of "Inters (C ⁇ j , N k )" with the vertex "v k ": t? EInters (Cij, Nk)
  • the approach of the present invention is different from other inventions of the state of the art, because in the first place, dikes (densely connected communities) are detected and combined to obtain higher level communities taking into account the weight of the links and thus get cohesive communities.
  • This allows the vertices to have "friends of friends" connected only when the number of vertices not directly connected is irrelevant.
  • the invention assumes that "the friends of my friends are not always my friends" which does the n-cliques and n-clan techniques. It is crucial to take into account the volume of communication between the vertices because sometimes the total cohesion of the community will allow some vertices to belong to that community even when some nodes of that community are not connected to This new node.
  • the invention assumes that the community is compact enough to assume that there may be other sources of communication between these vertices.

Abstract

La presente invención se refiere a un método de detección de comunidades en redes sociales masivas mediante un enfoque aglomerativo. Se construyen comunidades núcleo (2) y de forma iterativa se van agrupando en comunidades de más alto nivel (3) hasta que el algoritmo converge (se cumple una condición de parada)(4). Además, este proceso permite trazar fácilmente cómo van formándose las comunidades, resultando en un modelo fácilmente explicable yque también permite la detección de comunidades que estén solapadas. El presente método se inicia a partir de datos que representan las interacciones sociales entre los individuos,construyendo un grafo social ponderado (1) donde los vértices representan a los individuos y los enlaces representan las relaciones sociales entre los individuos.

Description

MÉTODO DE DETECCIÓN DE COMUNIDADES EN REDES SOCIALES MASIVAS MEDIANTE UN ENFOQUE AGLOMERATIVO
OBJETO DE LA INVENCIÓN
La presente invención, tal y como se expresa en el enunciado de esta memoria descriptiva, se refiere a un método para la detección de comunidades y grupos sociales en redes sociales de gran tamaño, mediante un enfoque aglomerativo . Aunque la presente invención se puede aplicar a muchos dominios, los principales campos de aplicación son la sociología, la biología, la informática y las telecomunicaciones. El problema de la detección de comunidades es altamente complejo y no se ha resuelto satisfactoriamente hasta el momento, especialmente para redes sociales muy voluminosas.
ANTECEDENTES DE LA INVENCIÓN
Los algoritmos existentes de detección de comunidades se pueden dividir en dos categorías: Métodos aglomerativos o increméntales y métodos de división o partición. Las técnicas de partición consideran toda la red social y, de forma iterativa, la dividen en sub- comunidades, mientras que las técnicas increméntales agrupan nodos progresivamente en comunidades de mayor tamaño hasta que se cumple la condición de parada. Otros autores clasifican la detección de comunidades en dos categorías: a) métodos que permiten detectar comunidades solapadas, es decir, cada nodo puede pertenecer a más de una comunidad y b) métodos que requieren que cada nodo pertenezca como máximo (o exactamente) a una comunidad. Enfoques tales como el descrito en el artículo "Extracción de comunidades densas a partir de grafos de llamadas telefónicas" no son ni aglomerativos ni de división, sino que realizan la búsqueda de comunidades basándose en la maximización de alguna medida como por ejemplo, la densidad. Por otro lado, el articulo "Comparando la identificación de las estructura de la comunidad" proporciona un buen resumen y comparativa de los enfoques existentes.
Además, hay algunos patrones de grafos, ampliamente estudiados, que corresponden a subgrupos cohesionados de individuos :
Componente: un componente conectado de un grafo no dirigido es un subgrafo en el que cualquier pareja de vértices está conectada entre si por algún camino, y al que no se pueden añadir más vértices o aristas preservando, al mismo tiempo, su conectividad .
Clique: un subgrafo en el que cada vértice está conectado al resto de vértices del subgrafo.
- Ciclo: camino que tiene como comienzo y fin el mismo nodo de partida.
También, se han propuesto definiciones alternativas a los conceptos previamente descritos, tales como las mostradas en el documento "Introducción a métodos de redes sociales":
- N-clique: es una comunidad en la que cada nodo se debe poder alcanzar en menos de "n" pasos (por lo general, en dos pasos) . Básicamente, esto implica una relajación de la condición de un clique en el que cada vértice es accesible desde el resto de vértices.
N-clan: es un N-clique limitado que no permite conexiones a través de nodos que no están contenidos en
N-clan. Se debe tener en cuenta que en un N-clique, la conexión puede hacerse a través de nodos que se encuentran fuera del N-clique. - K-plex: En un K-Plex, un vértice es un miembro de una comunidad si está directamente conectado a todos los otros vértices de la comunidad, excepto a "k" de ellos.
Se han identificado las siguientes patentes relacionadas con la presente invención:
- En US2009228296 y US7499965, las relaciones sociales y la comunicación social no definen las comunidades, sino que los intereses comunes de las personas son los que permiten agruparlas.
- La patente US2009248434 relaciona transacciones entre clientes (comportamiento) con las relaciones sociales implícitas y explícitas entre ellos (influencia) . Esta patente no utiliza la información de la comunidad social.
- La patente US2009233629 enlaza datos de localización GPS y redes sociales, pero usando una lista de amigos definida explícitamente por el usuario, y entiende como grupo social la lista de los amigos declarados por el usuario .
Las soluciones existentes en la actualidad presentan, al menos, uno de los siguientes problemas:
- Particiones de grafos como comunidades sociales: muchos métodos reducen la detección de comunidades a un problema de partición en el que todos los nodos pertenecen a alguna comunidad forzosamente. En general, no es una estrategia adecuada el forzar a los individuos artificialmente a ser miembros de una comunidad sin tener pruebas suficientes de esta relación porque la cohesión del grafo disminuye, dando lugar a comunidades dispersas que no reflejan la estructura social real.
- Comunidades demasiado cohesionadas: algunos enfoques dan una definición demasiado restrictiva de la comunidad (comunidades definidas como diques en el caso extremo o aquellas que sólo realizan una iteración de fusión de diques, como por ejemplo el algoritmo de percolación de diques) . Estos enfoques sólo permiten la identificación parcial de un subconjunto de las comunidades que se pueden encontrar en la red social.
- Comunidades no solapadas: otros enfoques no permiten la detección de comunidades solapadas. Sin embargo, las personas suelen pertenecer a varias comunidades (grupos de amigos, familiares, clubes, etc.)
- Resultados no explicables: la mayoría de los enfoques no nos permiten trazar el proceso de detección de comunidades ni explicar de manera intuitiva cómo se han detectado los grupos. Esto comúnmente ocurre en los enfoques basados en la maximización de alguna medida global, por ejemplo, modularidad o densidad.
- Falta de flexibilidad: los métodos existentes son a menudo demasiado rígidos para ser combinados con otras técnicas, y no hay un control suficiente sobre los parámetros que configuran la definición de comunidad utilizada .
- Comunidades demasiado específicas: algunas técnicas está desarrolladas exclusivamente para unos objetivos específicos .
Escalabilidad : Muchos enfoques no son viables para manejar redes sociales con millones de personas y relaciones.
Arquitectura de un solo bloque: La mayoría de los enfoques se articulan en un bloque monolítico único, como los algoritmos basados en agrupamiento . Sin embargo, los métodos multi-bloque permiten diferentes configuraciones en las que las "piezas pequeñas" de la arquitectura pueden ser intercambiadas sin modificar la estructura general y su funcionamiento. Eficiencia: el tiempo de cálculo es un obstáculo importante en muchos casos.
- Enlaces ponderados: La mayoría de los métodos no tienen en cuenta la fuerza de la relación entre individuos en el proceso de detección de comunidades. Algunos métodos distinguen entre relaciones sociales fuertes y débiles, pero no utilizan la fuerza exacta de la relación o, simplemente, descartan los vínculos sociales débiles.
Ninguna invención, hasta la fecha, ha solucionado simultáneamente todos los problemas anteriormente planteados .
Desde el punto de vista comercial, las redes sociales son una fuente de información que permite a las empresas mejorar sus productos, servicios y relación con sus clientes. Por lo tanto, el objeto de la presente patente es describir un nuevo esquema de conocimiento del usuario, que combina de manera conjunta el análisis de las interacciones de los usuarios en cada contexto social. Se debe tener en cuenta que el usuario se comporta de manera diferente dependiendo de cada contexto social .
La comprensión de las interacciones entre usuarios ofrece a las compañías nuevas oportunidades para mejorar la comunicación con sus usuarios y público en general.
La presente invención puede ser empleada por distribuidores de publicidad dirigida, es decir, para enviar anuncios personalizados a cada cliente. De esta manera, la presente invención ofrece la posibilidad de encontrar a un cliente potencial que pueda estar interesado en un producto y así encontrar una vía de comunicación directa entre la empresa de venta y el cliente final. Asimismo, se pueden centrar en las comunidades de usuarios que tienen los mismos gustos. Además, esta información se puede explotar para una amplia gama de aplicaciones tales como: comunicación de marcas, recomendación de los productos, servicios o actividades sociales, detección de eventos, etc.
DESCRIPCIÓN DE LA INVENCIÓN
Para lograr los objetivos y evitar los inconvenientes indicados anteriormente, esta patente describe un método flexible y eficiente de detección de comunidades en redes sociales a gran escala, el cual puede clasificarse como un método de aglomeración. Los nodos de la red social no se agrupan en comunidades en un solo paso. En su lugar, se comienza construyendo comunidades núcleo y de forma iterativa se van agrupando formando comunidades de más alto nivel hasta que el algoritmo converge (se cumple una condición de parada) . Además, este proceso permite observar sin esfuerzo cómo las comunidades crecen, dando lugar a un modelo fácilmente explicable.
El método descrito permite además la detección de comunidades solapadas, ya que un individuo puede tener diferentes circuios sociales. Por otra parte, algunas personas pueden no pertenecer a ninguna comunidad, ya que las redes sociales se construyen, en muchos casos, a partir de observaciones parciales de interacciones sociales. Por lo tanto, puede haber personas para las que no hay suficientes datos que permitan determinar cuáles son sus circuios sociales. En general, obligar a una persona a pertenecer a alguna comunidad no es una estrategia adecuada porque la cohesión del grafo disminuye, lo que implica que las comunidades estén más dispersas y, como resultado, las comunidades detectadas pueden no ajustarse a los verdaderos grupos sociales.
El presente método comienza a partir de datos que representan las interacciones sociales entre los individuos de uno o xk' periodos de tiempo no solapados. Las relaciones sociales se pueden extraer de estos datos de interacción social, por ejemplo, las llamadas telefónicas o mensajes de correo electrónico, construyendo un grafo social ponderado donde los vértices representan a los individuos y los enlaces (también llamados aristas) representan las relaciones sociales entre los individuos y la intensidad de la relación. En el método aquí descrito, se permite la combinación ponderada de los datos correspondientes a las interacciones sociales en diferentes periodos de tiempo, de modo que no sólo las interacciones más recientes, sino también los datos históricos, pueden ser tenidos en cuenta. El resultado es que la red social creada y las comunidades detectadas representan mejor las relaciones sociales y, por tanto, son más estables y robustas .
El enfoque de la presente invención es diferente de los ya existentes porque, en primer lugar, se detectan las comunidades núcleo o diques (comunidades densamente conectadas) y a continuación se combinan para obtener comunidades de mayor nivel de un modo iterativo teniendo en cuenta la fortaleza de las relaciones entre los individuos (los pesos de los enlaces del grafo social) . Esto permite encontrar comunidades que no están ni demasiado cohesionadas ni demasiado dispersas; los amigos de mis amigos no son siempre mis amigos como presuponen los N- cliques o los N-clans. A veces, la cohesión global de una comunidad permitirá que algunos vértices pertenezcan a la comunidad a pesar de que no estén conectados directamente a todos los demás miembros de la comunidad. Se supone que la comunidad está lo suficientemente cohesionada como para que pueda haber otras formas de comunicación entre estos vértices. Aunque, por ejemplo, una definición de comunidades basada en "diques" tenga los valores deseados de densidad y ruta más larga entre cada par de nodos, estos deben cumplir una condición demasiado estricta porque todos los nodos deben estar vinculados al resto de nodos.
El diseño del método sigue una estrategia configurable multibloque donde las diferentes etapas (construcción del grafo social, detección de diques, fusión de comunidades e inclusión de miembros asociados) están diseñadas como bloques funcionales, con una entrada y una salida bien definida. Esto hace que los bloques puedan ser sustituidos en cualquier momento con el fin de satisfacer las necesidades particulares del ámbito de aplicación, y que los parámetros para el funcionamiento de cada bloque sean conocidos y se puedan ajusfar para ofrecer una solución flexible.
En esta invención, algunos bloques se pueden sustituir por otros que tengan un funcionamiento similar.
Por tanto, como se ha comentado con anterioridad, la presente invención se refiere a un método de detección de comunidades en redes sociales masivas mediante un enfoque aglomerativo . Las comunidades y grupos sociales están formadas por individuos, usuarios o miembros que interactúan entre si y estos nodos están representados en un grafo social mediante los nodos o vértices de dicho grafo mientras que los enlaces representan la interacción social entre los usuarios o miembros que conectan. Las interacciones sociales entre individuos serán llamadas telefónicas, emails, SMS, MMS, interacciones sociales virtuales distintas de las anteriores y susceptibles de ser analizadas, asi como una combinación de éstas.
Previamente, un usuario establecerá unos parámetros de configuración en un rango tal que: d≥l, NM≥2, j>0, 0≤const≤l, 0≤vt≤l, >0 y τ>0. Se define, además, un dique como un subgrafo completamente conectado. Así, las fases principales del mencionado método son:
1) construir un grafo social a partir de la información obtenida de cada interacción social entre pares de individuos pertenecientes a una misma red social asignando un peso a cada enlace entre pares de individuos. Dicho peso representa la intensidad social y se calcula en base a la cantidad de interacciones sociales entre ambos individuos;
2) analizar y detectar los diques existentes en dicho grafo social, siendo dichos diques comunidades completamente conectadas, formadas por al menos 3 individuos y siendo los enlaces entre dichos individuos aquellos que presentan un valor de fuerza del enlace por encima del parámetro "a"; y,
3) fusionar los diques, en primera instancia, y las comunidades en segundo lugar, de forma iterativa hasta cumplir una condición de parada, siendo dichas comunidades y diques las que presentan un valor de una función cohesión por encima del parámetro "j" y habiendo seleccionando previamente dichas comunidades y diques para ser fusionadas mediante el análisis y detección de la fase 2) de dichas comunidades en cada iteración .
A su vez, para la fase de construcción del grafo social, se tiene como entrada un conjunto "I" de datos relativos a interacciones sociales entre usuarios. Cada interacción se define como "γ" perteneciente a "I" y dicha "γ" se describe como una tupia (vi, Vj , t , pi, .. , pn) donde nv±" y ν ' son dos individuos cualesquiera que interactúan entre sí, "t" es el momento en que dicha interacción social ocurre y pi, .. ,pn" son las propiedades de la interacción social, que en una realización preferente serán el tipo de interacción, el tipo de canal de comunicación y la información de localización .
La fase de construcción del grafo social comprende los siguientes pasos:
- comparar los valores "t" de cada interacción social e identificar un ntm±ri" como el momento en el que ocurre la primera interacción social y un "tmax" como el momento en el que ocurre la última interacción social;
- dividir el intervalo de tiempo [tm±n, tmax] en un número finito "d" de intervalos de tiempo de la misma amplitud;
- asignar un valor de la fuerza del enlace, comprendido entre "0" y "MVf", a los enlaces entre individuos mediante una función S(vit v^), que combina los valores de una función "5t" para cada intervalo de tiempo "d", definida por:
S{vi,Vj) = St(vi, vj, 0). wo +••• + 5t (i7¿, i7y, d). wd
y donde,
d
^ wr = 1
r=0
siendo St:VxVx [0 ,d]→ [0 ,NM] la función que define el peso de un enlace entre dos individuos en cada uno de los "d" intervalos de tiempo en los que se divide
[tminr tmax] y siendo "wr " definido por el usuario;
- crear un conjunto de enlaces fuertes, denominado ".Es", con los enlaces cuya intensidad está por encima de "a",
- crear un conjunto de enlaces débiles, denominado "E„", con los enlaces cuya intensidad está por debajo de "a"; y,
- generar un grafo social, con los valores de la fuerza de enlace obtenidos, G=(V,E) donde "V" es un conjunto de individuos del grafo y contenido en "y2" es el conjunto de enlaces del grafo social resultado de la unión de los conjuntos nEs" y nEw" .
La fase de selección de diques, dado como parámetro de entrada el grafo G=(V,E), comprende los siguientes pasos :
• crear un conjunto vacio, denominado "L";
• detectar los diques máximos contenidos en "G", siendo dichos diques máximos, aquellos diques cuyos enlaces están contenidos en Es" , mediante un algoritmo de detección de diques y donde los vértices de dichos diques son individuos pertenecientes a la red social;
• almacenar dichos diques en "L".
Una vez obtenido el grafo social y de manera preferente se continúa con la fase de fusión de diques que se realiza de manera iterativa. Previamente, se ha creado el conjunto vacio "Ωί +i " con i:0...M donde "M" es el número de iteraciones realizadas. Además, como parámetros de entrada se emplea el conjunto de diques máximos "L" detectados en la fase de detección de diques y se define en la primera iteración de esta fase de fusión de diques Qo=L. Este subproceso se lleva a cabo hasta que se cumple una condición de parada que preferentemente consistirá en un número fijo de iteraciones definidas por el usuario, "M" o que se cumpla que -¾+ι = Ω±". Asi, la fase de fusión de diques comprende las siguientes etapas:
- seleccionar, para cada comunidad " Cj " perteneciente a "Ωί" , un conjunto "í¾" contenido en de todas las comunidades que incluyen algún individuo de " Cj " ;
- calcular un valor de cohesión del resultado de fusionar " Cj " con cada comunidad de "í¾" mediante una función definida como: e— m* vt
cohesion(CkUj) = donde "Ckuj" es la comunidad resultado de unir la comunidad "C," con "Ck" , siendo " Ck" una comunidad perteneciente a "ί¾", "z" es el número de individuos de "Ckuj" , "e" es la suma de los valores de fuerza de los enlaces entre los individuos de "Ckuj" , "m" el número de enlaces con un valor de la fuerza de enlace igual a 0 y "h" el número de enlaces entre ambas comunidades calculado mediante la función:
y seleccionar aquellas comunidades que dan un valor de cohesión por encima del parámetro "j" previamente definido por el usuario, y;
crear un conjunto y almacenar en las comunidades seleccionadas en la etapa previa y realizar las siguientes subetapas para cada comunidad de " Vij " e incrementar el contador "i" con cada iteración :
o construir un grafo G±j= (V±j ,E±j) donde los vértices son las comunidades de y el conjunto de enlaces entre dichas comunidades;
o detectar los diques contenidos en nj", siendo dichos diques máximos aquellos diques cuyos enlaces están contenidos en Es" y que no están contenidos en otros diques de mayor tamaño, mediante un algoritmo de detección de diques, donde los vértices de dichos diques son las comunidades de V±j" ;
o almacenar las comunidades resultantes en un conjunto, nj"; y,
o añadir dichas comunidades contenidas en L±j" al conjunto n+1" . En otra realización preferente, en la fase de inclusión de miembros asociados, se emplea como parámetro de entrada que es el conjunto de comunidades resultantes de la fusión realizada en la fase anterior y el grafo G=(V,E). Dicha fase de inclusión comprende las siguientes etapas:
• crear para cada comunidad "Cj" perteneciente a un conjunto "¡¥j" donde se almacenan los miembros asociados a cada comunidad, siendo dichos miembros asociados aquellos miembros que presentan enlaces débiles con dicha comunidad) e inicializar cada uno de estos conjuntos como conjuntos vacíos; y,
• seleccionar para cada individuo, "v" perteneciente a "V", que pertenezca a menos de "IV" comunidades, siendo "ΛΓ' un parámetro definido por el usuario, un conjunto "Ϊ7" contenido en de comunidades que incluyen algún individuo que tengan un enlace con "v" y que no incluyan a "v" y realizar las siguientes subetapas de forma iterativa con cada una de las comunidades "Cj": o crear un conjunto de individuos Dif (Cj ,Ψ) =Cj-W compuesto de los individuos de "Cj" que no pertenecen a ψ" ;
o crear un conjunto de individuos Inters (Cj ,Ψ) =
Figure imgf000015_0001
compuesto de los individuos de "Cj", tal que sí están en ψ" ;
o calcular un valor de intensidad de cada individuo
"v" con cada comunidad "Cj" mediante la función definida como:
, ,
intensidad(y, Cj) =
Figure imgf000015_0002
donde el parámetro "const" establece el umbral de penalización para "no-enlaces" y está previamente definida por el usuario, el valor "Je" es la suma de los valores de la fuerza de los enlaces de los individuos de Inters(Cj,W) con "v", y donde el operador " | C/ | " denota el número de individuos del conjunto "C '; y,
o incluir los individuos "v", para los que el valor de la función intensidad es igual o mayor a un parámetro "r" definido por el usuario, en el conjunto "¡¥ ' asociado a la comunidad "Cj" que le corresponda .
En otra realización preferente, se lleva a cabo una fase adicional de inclusión de dyads, siendo dichos dyads comunidades de dos miembros, que comprende las siguientes etapas :
• detectar comunidades de dos individuos contenidas en el grafo "G" que no pertenezcan a comunidades de más de dos individuos; y,
• almacenar dichas comunidades en la lista de comunidades encontradas en el conjunto _¾+ι " .
En otra realización preferente y aunque como se ha dicho con anterioridad se pueden emplear diferentes algoritmos de detección de diques, se ha empleado este algoritmo concretamente a modo de ejemplo. Dicho algoritmo de detección de diques, emplea como parámetro de entrada el grafo D=(A,B), estando el conjunto A de vértices del grafo seleccionado entre un conjunto de individuos y un conjunto de comunidades y estando el conjunto B de enlaces del grafo seleccionado entre un conjunto de enlaces entre individuos y un conjunto de enlaces entre comunidades Dicho algoritmo comprende los siguientes pasos:
• seleccionar un subgrafo " D ' contenido en "D", siendo " i" el grafo de un vértice "i", y una matriz triangular "M ' asociada a "¾", siendo dicha matriz "Mi" la matriz de comunicaciones entre el vértice "i" y los vértices con los que tiene enlaces, y; • ejecutar las siguientes subfases para cada vértice de "Mi" con los que tiene enlaces el vértice "i":
o seleccionar un dique "Q" contenido en D±" y un conjunto de vértices, "P" contenido en "A", cuyos vértices son vecinos de los vértices de "Q";
o verificar que la unión de "Q" con cada uno de los vértices de "P" es también un dique;
o añadir los vértices que verifican la fase anterior a "Q"; y,
o incluir "Q" en "L" cuando no queden vértices que añadir a "Q".
Los principales problemas con las soluciones existentes que se han superado en la presente invención son los siguientes:
- Las comunidades son configurables : el enfoque expuesto permite múltiples estrategias, dependiendo del ámbito de aplicación. De esta manera, no se obliga a las personas a pertenecer a ninguna comunidad, ya que es posible encontrar usuarios aislados, en la mayoría de los casos como consecuencia de las escasas observaciones disponibles de las interacciones sociales.
- Las comunidades están solapadas: este enfoque permite que las comunidades se solapen. Esto quiere decir que un individuo puede pertenecer a más de una comunidad.
- Trazabilidad : este proceso nos permite rastrear cómo se van generando las comunidades.
- Comprensible: es un procedimiento muy claro a la hora de entender cómo se obtienen las comunidades.
Flexible: fácil de combinar con otras técnicas. - Genéricos: No es ni ad-hoc, ni depende de objetivos específicos .
Escalable: es capaz de manejar cantidades cada vez mayores de nodos de una manera ágil. - Arquitectura multi -bloque: loe bloques de la arquitectura se pueden sustituir por otros módulos que realicen una función similar.
- Eficiencia: los reducidos tiempos de cálculo permiten trabajar casi en tiempo real.
- Enlaces ponderados: este método tiene en cuenta la fuerza de la comunicación entre los individuos.
BREVE DESCRIPCIÓN DE LAS FIGüRAS
Figura 1,- Muestra el diagrama de flujo del procedimiento general de la invención.
Figura 2.- Muestra el diagrama de flujo de un procedimiento de detección de diques.
Figura 3.- Muestra el diagrama de flu o de un procedimiento de fusión de comunidades y grupos sociales.
Figura 4.- Muestra un ejemplo de realización de la fusión de una comunidad.
Figura 5.- Muestra un procedimiento de inclusión de miembros asociados.
Figura 6.- Muestra un ejemplo de realización de una inclusión de un miembro asociado.
DESCRIPCIÓN DE UN EJEMPLO DE REALIZACIÓN
Seguidamente se realizan, con carácter ilustrativo y no limitativo, una descripción de un ejemplo de realización de la invención, haciendo referencia a la numeración adoptada en las figuras.
El primer bloque ¡1) de la figura 1 construye el grafo social que representa a los individuos y sus relaciones sociales, extraídas a partir de diferentes fuentes de datos .
Las entradas para este bloque son los datos que describen un conjunto "I" de interacciones sociales, capturadas desde cualquier fuente que proporcione información de interacciones sociales entre individuos: lo que los individuos interactúan, cuando ocurre esta interacción, y los atributos de la interacción como el tipo (por ejemplo, por teléfono, SMS, correo electrónico, reuniones) o la ubicación. Cada interacción "/ G /" puede ser descrita por una tupia (vi, Vj , t , pi, .. , pn) , donde "vi" y "v " son dos individuos interactuando, "t" es el momento en que ocurrió esta interacción, y "pi, ..,pn" son las propiedades de la interacción, como el canal de comunicación o la localización de la información.
La salida de este bloque funcional es un grafo ponderado y no dirigido "G=(V,E)" que representa la red social extraída de los datos de la interacción recibidos como entrada. En este grafo, "V" es el conjunto de vértices o nodos, que corresponden a los usuarios o individuos, y "E contenido en "v2 " representa el conjunto de los enlaces de la gráfica, representando las relaciones sociales entre los individuos. Para cada enlace (vi,Vj) se define un peso o fuerza de la relación.
Teniendo en cuenta el conjunto de interacciones que se reciben como entrada, se denotará como ntm±ri" el momento en que ocurre la primera interacción, es decir "^Ύ = (vi,Vj,t,pi,..,pv) El,t≥tmin" , Y "tmax" el momento en que ocurre la última interacción, es decir,
"V γ = (vitVj,t,Pi, .. , pn) £ /,t < tmax" . Se divide el intervalo de tiempo " [tminr tmax] "', correspondiente al período de observación, en un número finito "d" de intervalos o períodos de igual duración, con d≥l .
Sin embargo, el período de observación puede no ser continuo, por ejemplo, se han observado interacciones en dos meses no consecutivos, o se quiere dividir el período de observación en intervalos de diferente duración. Por estas razones la invención permite dividir el conjunto de datos de interacción en intervalos de tiempo.
Teniendo en cuenta el conjunto de interacciones "I" y la partición del periodo de observación en intervalos "d", los enlaces que representan las relaciones sociales se obtienen mediante la aplicación de una función sobre el número de interacciones sociales entre cada par de vértices (personas) por cada periodo de tiempo, y las propiedades de tales interacciones. Esta función puede aplicar diferentes pesos a las interacciones en diferentes intervalos de tiempo. De esta manera, los datos históricos pueden ser ponderados de manera que las interacciones más antiguas son menos relevantes que las recientes.
Se denota "I (vi, Vj , r) contenido en I" al subconjunto de las interacciones entre dos individuos "(vi,V )", durante el intervalo de tiempo "r". Se define una función arbitraria en este subgrupo de interacciones que asigna un valor de fuerza para la relación social entre los individuos y, en este periodo de tiempo, basado en las interacciones que se han producido. Esta función "5t: VxVx[0,d]→[0,NM] " puede definir la fuerza de la relación, por ejemplo como el número total de las interacciones sociales de cualquier tipo entre "(vi,V )" en el intervalo considerado, como el número de correos electrónicos intercambiados, o utilizando cualquier otra función arbitraria sobre el conjunto de las interacciones entre los individuos considerados, posiblemente teniendo en cuenta las propiedades de estas interacciones.
Sobre la base de esta función, se define la función de la fuerza general, que combina los valores de para "5t" todos los intervalos de tiempo definidos:
S{vi,Vj) = St(vi, vj, 0). wo +••• + 5t (i7¿, i7y, d). wd
Figure imgf000021_0001
De esta manera, el valor de un enlace varía de 0 a "NM", siendo 0 la ausencia de relación social entre dos individuos en la definición de relación social dada por las funciones "St" y "S".
Se distinguen dos tipos de relaciones, dependiendo de la fuerza de la relación social. Se denomina "relaciones fuertes" a las relaciones "(vi,Vj)" tal que "S (vi, Vj )≥ " , donde "a" es un umbral configurable, y se denomina "relaciones débiles" a aquellas cuya fuerza definida por la función "S" está por debajo de este umbral "a". Intuitivamente, las relaciones débiles representan las interacciones ocasionales entre cada par de individuos y las fuertes corresponden a interacciones frecuentes y permanentes. Se denota como "-Es" el subconjunto de "E" cuyas relaciones son fuertes, y como nEw" el subconjunto de "E" cuyas relaciones son débiles, de tal manera que "E= ES\ EW
En el segundo bloque (2) de la figura 1, se construyen las comunidades "semilla" que tienen al menos 3 miembros, es decir, grupos de personas para las que se tienen, de la red social construida, la mayor evidencia posible de su conexión social. Estas comunidades, dadas por lo que definimos como "diques fuertes", constituyen el núcleo de las comunidades que se encuentran en las etapas subsiguientes.
La entrada para este bloque (2) de detección de diques es el grafo social ponderado "G=(V,E)" que representa las relaciones sociales entre los individuos.
La salida de este bloque es el conjunto "L" de "diques máximos", posiblemente serán también diques fuertes solapados que se encuentran en el grafo social "G". Un dique en la teoría de gratos es un subgrafo (o un subconjunto de vértices) "Q contenido en G", en el que cada vértice "viGQ" está conectado a todos los otros vértices "vjGQ", es decir, "Vt>¿, v¡ E Q(vit v) E E" . El tamaño de un clique "Q", que se denota es el número de vértices que contiene y en una realización preferente son 3 miembros como mínimo.
La razón de buscar diques en este paso es que los diques son los grupos de vértices más fuertemente conectados que se pueden encontrar en un grafo, es decir, son los grupos de personas para las que se puede observar la posible conexión social más fuerte. Sin embargo, en el grafo ponderado aquí calculado, el peso de un enlace representa la fuerza de la relación social. Por lo tanto, se puede pensar en una definición más detallada del clique que tenga en cuenta esta fuerza.
En particular, se define un "clique fuerte", "Qs contenido en G", como un subgrafo en el que cada vértice "viGQs" está conectado a cada otro vértice "vj£Qs", con una relación fuerte como la descrita más arriba, es decir, "VvitVj E Qs(_Vi,Vj) E E" donde "G=(V,E)" y ΛΈ= ESJE„" .
El objetivo es encontrar diques fuertes máximos, es decir, los diques fuertes cuyos vértices no están contenidos en un único clique de mayor tamaño, permitiendo que estén solapados, es decir, el mismo vértice puede pertenecer a más de un clique fuerte.
Dado un clique fuerte "Qs" y un vértice "vi" exterior a "Qs", se establece "vi" como susceptible de ser añadido si el subgrafo resultante de sumar "vi" a "Qs (QSU { vi } ) " es también un clique fuerte de "G" . De esta definición, se deduce que un clique máximo es un clique con el mayor número posible de vértices porque no tiene más vértices susceptibles de ser añadidos. El objetivo de la extracción de estas comunidades altamente conectadas es encontrar los núcleos de las comunidades de alto nivel. Estos diques se fusionarán en pasos posteriores, dando lugar a grandes comunidades. Además, es importante señalar que no se hace uso de las "relaciones débiles" en esta fase porque el objetivo principal es obtener todos los circuios sociales fuertes de cada cliente, encontrando todos los diques máximos de cualquier tamaño.
En principio, se puede emplear cualquier algoritmo para la detección de diques solapados, obteniendo un conjunto "L" de todos los diques máximos fuertes que se encuentran en el grafo.
En una realización preferida de la invención, se ha elegido el presente algoritmo para la detección de diques máximos y que posiblemente se solapen:
1. Considerar un conjunto vacio "L = 0", que contendrá los diques máximos siendo dichos diques máximos aquellos cuyos enlaces están contenidos en "Es" (7).
2. Considerar un subgrafo, "G¿ <Ξ G" , que corresponde al grafo social del usuario "i" y la matriz triangular, "M¿" asociada a "G¿".
3. Para cada nodo, iterativamente, observar el nodo vecino en "M¿" mientras haya más nodos sin explorar.
3.1. Considerar un posible dique (8) — G¿" y un conjunto de nodos, denotados como "P <Ξ V" , cuyos nodos podrían pertenecer también a Q" porque también son vecinos de cada nodo Vj" contenido en Q" :
WiEP/Vi t QAVÍ ~ Q→ Q = Q U {vt}
3.2. Si "Q" no tiene vértices que se le puedan unir, "P = 0", entonces es un dique → "L = L U Q" (9). 3.3. Por otro lado, para cada vértice susceptible de ser unido, "v¡ <Ξ P / v¡ ~ Q"→ se añade recursivamente a "Q", "Q = Qu{vJ" .
3.4. Eliminar de "P" " t>¿ " y cualquier otro vértice Vj " que no sea vecino de "t>¿ " .
4. Repetirlo hasta que no queden más nodos en "P" (10) .
5. Si la condición de parada no se cumple ir a 3.) e incrementar un contador.
Se aplica una función de poda que evita todas las rutas que ya han sido exploradas ignorando los enlaces que parten de nodos ya analizados. Por lo tanto, no hay enlaces que se exploren dos veces. El algoritmo iterativamente explora el grafo buscando nuevos diques y actualizando las relaciones entre los contactos. El proceso termina cuando todos los enlaces han sido analizados y se obtiene en "L" la lista de diques máximos encontrados (11) . El algoritmo no extrae combinaciones de nodos para un vértice "vi" con otro vértice "v " con un valor de seguridad inferior ya que estos nodos han sido previamente generados por "v "
En el tercer bloque (3) de la figura 1, una vez que las comunidades más cohesionadas (los núcleos de las comunidades) han sido encontradas, se lleva a cabo uno o más pasos de fusión de diques y comunidades para crear comunidades de más alto nivel y de mayor tamaño.
El bloque opera de forma iterativa. En la primera iteración, los núcleos de comunidades (diques) son analizados, dando como resultado comunidades formadas por la fusión de 2 o más diques asi como las comunidades que no han podido fusionarse. Las comunidades que se obtienen son la entrada para las iteraciones posteriores. En cada iteración, se tratará de fusionar las comunidades anteriormente encontradas. Este proceso continuará hasta que una condición de parada (4) se cumpla. La entrada para la fusión de comunidades es el conjunto "_¾" que contiene las comunidades encontrado en el segundo bloque (2) . En la primera iteración del proceso de fusión de la comunidad "0±=L", es decir, la entrada es el conjunto diques fuertes máximos encontrados en "G" en el segundo bloque (2) .
La salida es un conjunto de comunidades de mayor nivel ηΩ±+ι", como resultado de la fusión de las comunidades de "£¾"·
En este paso, el objetivo es encontrar las comunidades en el conjunto "_¾" que se puede combinar en una sola comunidad. Para decidir qué comunidades son susceptibles de tal fusión, se ha definido un criterio medible y configurable que le da al usuario control sobre qué restricciones se imponen para formar comunidades de mayor nivel. Este criterio se basa en la definición de una función de cohesión.
Se denotan como "Ca" y "Cb" dos comunidades de "Di". Se denota CaUb = Ca U Cb la comunidad resultado de la unión de todos los vértices de "Ca" y "Cb".
Se emplea la variable "v" para indicar el número de vértices que aparecen en la nueva comunidad como resultado de la fusión de "Ca" y "Cb" y la variable "e" para denotar la suma de las fuerzas de los enlaces entre los vértices de "CaUb" , teniendo en cuenta las relaciones fuertes y débiles, es decir "e =∑ViiVjEcaub s(v Vj)" .
Se denota "h" el número de enlaces posibles entre los vértices de una comunidad "CaUb" , definido por "/i = e m vt" .
Siendo "m" el número de enlaces con una fuerza igual a cero y "vt" una constante configurable que se utiliza para penalizar dichos enlaces.
Se calcula la cohesión utilizando la siguiente función : e— m * vt
cohesion(CkUj) =
Se puede observar que el valor de la cohesión de una comunidad va de "-m*vt" a 1. Sin embargo, como las comunidades están densamente conectadas, el valor más bajo no se alcanzará, mientras que el valor superior sólo puede ser obtenido por un clique. Dado que todos los diques máximos fueron detectados en el bloque anterior (2), la cohesión entre cualquier par de las comunidades nunca alcanzará el valor 1.
Una vez que la función de cálculo de la cohesión de una comunidad se ha introducido, se puede definir en detalle el funcionamiento de la fusión de comunidades como sigue :
1. Inicializar el conjunto de salida "Ω±+ι= 0 " . Este conjunto almacenará las comunidades como resultado de la iteración de la fusión de la comunidad.
2. Para cada comunidad "Cj£.Qi :
2.1. Seleccionar el conjunto "Uij contenido en Ω±" de todas las comunidades que incluyen algún vértice de "C3" (13),
3vk, vk £ C¿ Λ vk £ C¡ H C¡ E Uij
2.2. Calcular la cohesión del resultado de la fusión de "Cj" con cada comunidad de "Uij", y seleccionar las comunidades de "Uij" en las que la comunidad resultante de la fusión con "Cj" presenta valores de la función cohesión por encima de un umbral "h" definido por el usuario. Estas comunidades compondrán el conjunto "Vij" (14) ,
cohesión^ Cfeu ) > h <→ Ck £ V¿
2.3. Construir (15) un grafo "Gij= (Vij , Eij ) ", donde los vértices son las comunidades de "Vij", y hay un enlace entre dos comunidades, si la cohesión de la combinación de estas comunidades está por encima del umbral "h", es decir, (Cfe,C¿) E Etj <→ cohesion(CkJl)≥ h . Un ejemplo de este grafo se muestra en la figura 4.
2.4. Encontrar (16) el conjunto "Li " de diques máximos y posiblemente solapados en el grafo "Gi " .
Cada clique de "Li " está definido por dos o más comunidades en "_¾", y define una nueva comunidad resultante de la fusión de dichas comunidades.
2.5. Añadir los elementos de "Li " al conjunto de salida " Ω£+1: H¿+1 = n¿+1 U L¿ ' . Si "Lij " está vacio, n¿+1 = H¿+1 U Cj . Dado que el mismo "clique" de comunidades puede ser detectado en varias ocasiones, sólo una copia de cada nueva comunidad se mantiene en el conjunto "n¿+1". Como resultado se obtienen comunidades de más alto nivel.
La fusión de las comunidades se ejecutan de forma iterativa hasta que se alcanza la convergencia, es decir, hasta que tengamos "Ω±+ι=Ω±". Dependiendo del dominio de aplicación, las condiciones de parada pueden ser definidas de diferentes maneras, como por ejemplo, la fijación de un número determinado de iteraciones.
La figura 4 muestra un ejemplo del procedimiento de fusión arriba descrito con cuatro comunidades, donde Cl (17) es la comunidad que se está estudiando. C2 (18), C3 (19) y C4 (20) son las comunidades que han alcanzado el umbral establecido, "h", con Cl . A continuación, se define la fuerza de las relaciones entre ellos mediante la aplicación de la función de cohesión. Se considera el umbral "h" y se "elimina" el resto de los enlaces que no lo alcancen. Existen enlaces entre los miembros C2 y C3. Sin embargo, como la función de cohesión de la fusión de C2 y C3 no produce un valor mayor o igual que el umbral "h", estas comunidades no se consideran como candidatas para la fusión. Se sigue el mismo razonamiento para C2 y C4. Una vez que se ha determinado la relación entre ellos, se aplica el algoritmo de dique y se obtienen dos comunidades de más alto nivel: (Cl, C2) y (Cl, C3, C4).
En el quinto bloque (5) de la figura 1, se lleva a cabo la inclusión de individuos (miembros asociados) que no estén previamente incluidos en al menos "N" comunidades porque no tengan una comunicación lo suficiente fuerte con los demás individuos de las comunidades. Sin embargo, estos individuos pueden tener muchas comunicaciones débiles que deben ser consideradas. Para asociarlos a las comunidades que correspondan, se deberán analizar las comunidades que están muy relacionados con ellos ya sea a través de relaciones fuertes como débiles.
Los parámetros de entrada para este bloque son el conjunto que contiene las comunidades encontradas y el grafo social ponderado "G=(V,E)" descrito anteriormente.
En cuanto a la salida del bloque, se obtiene un conjunto de miembros asociados "Wi " , para cada comunidad " Ci " en "_¾", que contenga los miembros que pueden estar asociados a "<¾" que además cumpla una limitación en función de una constante de intensidad.
En primer lugar se deben evaluar los vértices con el fin de decidir si pueden o no pueden ser incluidos como miembros asociados de una comunidad existente. La decisión se tomará de acuerdo a un criterio basado en la definición de una función de intensidad, la cual se detalla más adelante .
Tomando un nodo "vk£ V" del grafo "G", y " Ci GDi " ser una de las comunidades de mayor nivel encontrado en la sección 3.3. Se define "Nk=N(vk)", como el conjunto de nodos vecinos de "vk", es decir, el grupo de vértices E V" , conectados a "vkVm/ (vk,vm) E E" .
La diferencia se estará formado por los vértices de " Cij " que no están en "Nk" : "Dif ((¾ , Nk) = Cij-Nk" y del mismo modo, se define un conjunto con los vértices comunes que pertenecen a "<¾" y a "Nk" : "Inters ( Cij , Nk) = C±j Π Nk" .
Se define además, una variable "ek" para denotar la suma de de la fuerza de los vértices de "Inters (C±j , Nk) " con el vértice "vk" : t?¿eInters(Cij,Nk)
El operador "|C|" indicará el número de elementos de la comunidad o conjunto "C".
A continuación se evalúa la intensidad de la relación que mantiene el nodo "vk" con la comunidad "<¾", utilizando la siguiente función:
, ,
intensidad(y, Cj) =
Figure imgf000029_0001
En función de cuánto se desee penalizar la falta de comunicación, entonces se varia la variable "const". Cuanto mayor sea su valor, más restrictiva es la inclusión de miembros asociados en las comunidades.
Se deduce fácilmente que los valores de intensidad van desde, "-const", lo que significa una relación nula del vértice "vk" con la comunidad "<¾", a "1", siendo la relación máxima del vértice con la comunidad.
El procedimiento para la inclusión de los miembros asociados es el siguiente:
1. Para cada comunidad " Cj £ Ω±" se crea un conjunto de miembros asociados "Wj " (21) de la comunidad " Cj " e inicializarlo como un conjunto vacio "Wj=0". 2. Para cada vértice "v E V" que pertenezca a no más de "N" comunidades :
2.1. Seleccionar (22) el conjunto "Ψ" contenido en de todas las comunidades que incluyen algún vértice de "N(v)", nodos vecinos de "v", y que no incluyen el vértice "v" .
2.2. Calcular (23) la intensidad que el vértice "v" mantiene con cada comunidad en "Ψ", y seleccionar las comunidades cuyos valores de intensidad por encima de un valor umbral "τ" tal que:
Intensídad( , Cf)≥ τ
2.3. Añadir (24) el vértice "v" a los "Wj" cuya "j" cumpla la inecuación del punto 2.2.
La figura 6 muestra un ejemplo de cómo funciona este procedimiento de inclusión de dyads . Se establece "0" como el valor para " const" , y "0.6" como umbral "t". "n" (27) es el nodo que se observa, por lo que "Nn" será el conjunto de nodos vecinos, y "Ci" (25) y "C2" (26) son las comunidades que pertenecen a "Ψ" (2.1) . Se evalúan las intensidades y se ve cómo "Inters (Nn, Ci) " está formado por un solo vértice y "Dif(Ci,Nn)" consta de dos nodos, de modo que:
1 - const * 2
Intensidad(n, Cj = = 0.333 < t
También se evaluará la posible inclusión del vértice "n" (27) en la comunidad "C2", "Inters (Nn, C2) " está formado por dos vértices, mientras que "Dif (C2, Nn) " contiene un solo nodo. Si suponemos que el valor de la fuerza del enlace "s" es de 0,9:
(1 + 0.9) - const * 1
Intensidad(n, C2) = = 0.6333 > t
Por lo tanto, se concluye que el vértice "n" (27) será incluido como miembro asociado en la comunidad "C2" (26), pero no en la comunidad "Ci" (25) . En el sexto bloque (6) de la figura 1 se lleva a cabo la inclusión de dyads . Un dyad, en sociología, se describe como un grupo de dos personas conectadas. Un dyad es el grupo social más pequeño posible. Este tipo de comunicación es muy frecuente en muchas redes sociales, creándose islas a veces, y hubs o conectores de comunidades más grandes en otros casos.
Incluir los dyads en el segundo bloque (2) de la figura 1 como diques de tamaño 2 resulta en una cantidad realmente enorme de comunidades que serán la entrada del tercer bloque (3) aumentando la carga computacional de este bloque enormemente.
Por lo tanto, si se quiere considerar comunidades de dos miembros, se hace necesario un post-procesamiento que se llevará a cabo para analizar cada dyad y determinar si se encuentra en una comunidad más grande y en caso de que no esté contenido, se almacena el dyad como una comunidad de tamaño 2.
El enfoque de la presente invención, es diferente al de otras invenciones del estado del arte, porque en primer lugar, se detectan diques (comunidades densamente conectadas) y se combinan para obtener comunidades de mayor nivel teniendo en cuenta para ellos el peso de los enlaces y conseguir así comunidades cohesionadas. Esto permite que los vértices de tener conectados a "amigos de amigos" sólo cuando el número de vértices no directamente conectados es irrelevante. La invención supone que "los amigos de mis amigos no siempre son mis amigos" cosa que si hace las técnicas n-cliques y n-clan. Es crucial tener en cuenta el volumen de comunicación entre los vértices porque a veces la cohesión total de la comunidad permitirá a algunos vértices pertenecer a dicha comunidad incluso cuando algunos nodos de la citada comunidad no estén conectados a este nuevo nodo. La invención supone que la comunidad es lo suficientemente compacta como para asumir que pueda haber otras fuentes de comunicación entre estos vértices.
A pesar de que los diques tengan los valores deseados de densidad y la ruta más larga entre cada par de nodos, deben cumplir una restricción muy estricta ya que todos los nodos deben estar vinculados con el resto de nodos de dicho dique .

Claims

REIVINDICACIONES
1.- Método de detección de comunidades en redes sociales masivas mediante un enfoque aglomerativo, donde dichas comunidades están formadas por individuos, donde un usuario establece previamente unos parámetros de configuración, estando dichos parámetros definidos en un rango: d≥l, NM≥2, j>0, 0≤const≤l, 0≤vt≤l, ≥0 τ>0, donde se define un clique como un subgrafo completamente conectado, en el que cada vértice, que representa a un individuo, está conectado mediante enlaces, que representan una interacción social entre los individuos que conectan, al resto de individuos que conforman el subgrafo, caracterizado porque comprende las siguientes fases:
1) construir un grafo social a partir de la información obtenida de cada interacción social entre pares de individuos pertenecientes a una misma red social asignando un peso a cada enlace entre pares de individuos, representando dicho peso una fuerza del enlace definida como la intensidad de la interacción social entre cada par de individuos del grafo social calculada en base a la cantidad de interacciones sociales entre cada dicho par de individuos;
2) analizar y detectar unos diques existentes en dicho grafo social, siendo dichos diques comunidades completamente conectadas, formadas por al menos 3 individuos y siendo los enlaces entre dichos individuos aquellos que presentan un valor de fuerza del enlace por encima del parámetro "a"; y,
3) fusionar los diques, en primera instancia, y las comunidades en segundo lugar, de forma iterativa hasta cumplir una condición de parada, siendo dichas comunidades y diques las que presentan un valor de una función cohesión por encima del parámetro "j" y habiendo seleccionando previamente dichas comunidades y diques para ser fusionadas mediante el análisis y detección de la fase 2) de dichas comunidades en cada iteración .
2.- Método de detección de comunidades en redes sociales masivas mediante un enfoque aglomerativo, según la reivindicación 1, caracterizado porque la fase de construir un grafo social, donde se tiene como entrada un conjunto "I" de datos relativos a interacciones sociales entre usuarios y donde cada interacción es definida como "γ" perteneciente a "I" y donde dicha "γ" se describe como una tupia ( vi , Vj , t, pi , . . , pn ) donde nv±" y ν ' son dos individuos cualesquiera que interactúan entre si, "t" es el momento en que dicha interacción social ocurre y npi, .. ,pn" son las propiedades de la interacción social, comprende los siguientes pasos:
- comparar los valores "t" de cada interacción social e identificar un tm±n" como el momento en el que ocurre la primera interacción social y un "tmax" como el momento en el que ocurre la última interacción social;
- dividir el intervalo de tiempo [tm±n, tmax] en un número finito "d" de intervalos de tiempo de la misma amplitud;
- asignar un valor de la fuerza del enlace, comprendido entre "0" y "MVf", a los enlaces entre individuos mediante una función S(vit Vj), que combina los valores de una función "5t" para cada intervalo de tiempo "d", definida por:
S{vi,Vj) = St(vi, vj, 0). wo + - + St(vi,Vj, d). wd
y donde,
d siendo St:VxVx [0,d]→ [0,ΝΜ] la función que define el peso de un enlace entre dos individuos en cada uno de los "d" intervalos de tiempo en que se divide [tminr tmaxl y siendo definido "wr " por el usuario;
- crear un conjunto de enlaces fuertes, denominado ".Es", con los enlaces cuyo valor de la fuerza del enlace está por encima de "a",
- crear un conjunto de enlaces débiles, denominado "E„", con los enlaces cuyo valor de la fuerza del enlace está por debajo de "a"; y,
- generar un grafo social, con los valores de fuerza del enlace obtenidos, G=(V,E) donde "V" es un conjunto de individuos del grafo y contenida en "y2" es un conjunto de enlaces del grafo social que se establecen entre los individuos como resultado de la unión de los conjuntos "Es" y "E„" .
3. - Método de detección de comunidades en redes sociales masivas mediante un enfoque aglomerativo, según la reivindicación 2, caracterizado porque la fase de seleccionar diques, dado como parámetro de entrada el grafo G=(V,E), comprende los siguientes pasos:
• crear un conjunto vacio, denominado "L";
• detectar los diques máximos contenidos en "G", siendo dichos diques máximos, aquellos diques cuyos enlaces están contenidos en Es" , mediante un algoritmo de detección de diques y donde los vértices de dichos diques son individuos pertenecientes a la red social;
• almacenar dichos diques en "L".
4. - Método de detección de comunidades en redes sociales masivas mediante un enfoque aglomerativo, según cualquiera de las reivindicaciones anteriores, caracterizado porque la fase de fusión de diques que se realiza de manera iterativa, habiendo previamente creado el conjunto vacio nQ±+i" con ί:0...Μ y siendo "M" el número de iteraciones realizadas y donde como parámetros de entrada es empleado el conjunto de diques máximos "L" detectados en la fase 2) definiendo en la primera iteración de la fase de fusión de diques Qo=L, comprende las siguientes etapas:
- seleccionar, para cada comunidad "Cj" perteneciente a "Ωί", un conjunto "í¾" contenido en de todas las comunidades que incluyen algún individuo de "Cj";
- calcular un valor de cohesión del resultado de fusionar "Cj" con cada comunidad de "í¾" mediante una función definida como:
e— m * vt
cohesion(CkUj) =
donde "Ckuj" es la comunidad resultado de unir la comunidad "C," con "Ck" , siendo " Ck" una comunidad perteneciente a "ί¾", "z" es el número de individuos de "Ckuj" , "e" es la suma de los valores de fuerza de los enlaces entre los individuos de "Ckuj" , "m" el número de enlaces con un valor de la fuerza de enlace igual a 0 y "h" el número de enlaces entre ambas comunidades calculado mediante la función:
y seleccionar aquellas comunidades que dan un valor de cohesión por encima del parámetro "j" previamente definido por el usuario, y;
- crear un conjunto y almacenar en las comunidades seleccionadas en la etapa previa y realizar las siguientes subetapas para cada comunidad de "Vij" e incrementar el contador "i" con cada iteración hasta que se cumpa una condición de parada: o construir un grafo G±j= (V±j ,E±j) donde los vértices son las comunidades de y el conjunto de enlaces entre dichas comunidades;
o detectar los diques contenidos en nj", siendo dichos diques máximos aquellos diques cuyos enlaces están contenidos en Es" y que no están contenidos en otros diques de mayor tamaño, mediante un algoritmo de detección de diques y donde los vértices de dichos diques son las comunidades de "Vij";
o almacenar las comunidades resultantes en un conjunto, nj"; y,
o añadir dichas comunidades contenidas en L±j" al conjunto "Ωί+1" .
5.- Método de detección de comunidades en redes sociales masivas mediante un enfoque aglomerativo, según la reivindicación 4, caracterizado porque la fase de inclusión de miembros asociados, donde se emplea como parámetro de entrada que es el conjunto de comunidades resultantes de la fusión realizada en la fase anterior y el grafo G=(V,E), comprende las siguientes etapas:
• crear para cada comunidad "Cj" perteneciente a un conjunto "¡¥ ' donde se almacenan los miembros asociados a cada comunidad, siendo dichos miembros asociados aquellos miembros que presentan enlaces débiles con dicha comunidad) e inicializar cada uno de estos conjuntos como conjuntos vados; y,
• seleccionar para cada individuo, "v" perteneciente a "V", que pertenezca a menos de "W" comunidades, siendo "ΛΓ' un parámetro definido por el usuario, un conjunto contenido en de comunidades que incluyen algún individuo que tengan un enlace con "v" y que no incluyan a ν" y realizar las siguientes subetapas de forma iterativa con cada una de las comunidades "Cj": o crear un conjunto de individuos Dif (Cj ,Ψ) =Cj-W compuesto de los individuos de "Cj" que no pertenecen a ψ" ;
o crear un conjunto de individuos Inters (Cj ,Ψ) =
Figure imgf000038_0001
compuesto de los individuos de "Cj", tal que si están en ψ" ;
o calcular un valor de intensidad de cada individuo "v" con cada comunidad "Cj" mediante la función definida como:
, ,
intensidad(y, Cj) =
Figure imgf000038_0002
donde el parámetro "const" establece la penalización para "no-enlaces" y está previamente definida por el usuario, el valor "Je" es la suma de los valores de la fuerza de los enlaces de los individuos de Inters (Cj,¥) con "v", y donde el operador " | C/ | " denota el número de individuos del conjunto "Cj"; y,
o incluir los individuos "v", para los que el valor de la función intensidad es igual o mayor a un parámetro "r" definido por el usuario, en el conjunto "¡¥j" asociado a la comunidad "Cj" que le corresponda .
6.- Método de detección de comunidades en redes sociales masivas mediante un enfoque aglomerativo, según la reivindicación 5, caracterizado porque se lleva a cabo una fase de inclusión de dyads, siendo dichos dyads comunidades de dos miembros, que comprende las siguientes etapas:
• detectar comunidades de dos individuos contenidas en el grafo "G" que no pertenezcan a comunidades de más de dos individuos; y, • almacenar dichas comunidades en la lista de comunidades encontradas en el conjunto ^Ω+1" .
7. - Método de detección de comunidades en redes sociales masivas mediante un enfoque aglomerativo, según las reivindicaciones 3 y 4, caracterizado porque el algoritmo de detección de diques, dado como parámetro de entrada el grafo D=(A,B), estando el conjunto A de vértices del grafo seleccionado entre un conjunto de individuos y un conjunto de comunidades y estando el conjunto B de enlaces del grafo seleccionado entre un conjunto de enlaces entre individuos y un conjunto de enlaces entre comunidades, comprende los siguientes pasos:
• seleccionar un subgrafo " D ' contenido en " D" , siendo " i" el grafo de un vértice "i", y una matriz triangular "Μ ' asociada a " D ' , siendo dicha matriz
"Mi" la matriz de comunicaciones entre el vértice "i" y los vértices con los que tiene enlaces, y;
• ejecutar las siguientes subfases para cada vértice de "Mi" con los que tiene enlaces el vértice "i":
o seleccionar un clique "Q" contenido en " i" y un conjunto de vértices, "P" contenido en "A", cuyos vértices son vecinos de los vértices de "Q";
o verificar que la unión de "Q" con cada uno de los vértices de "P" es también un clique;
o añadir los vértices que verifican la fase anterior a "Q"; y,
o incluir "Q" en "L" cuando no queden vértices que añadir a "Q".
8. - Método de detección de comunidades en redes sociales masivas mediante un enfoque aglomerativo, según la reivindicación 1, caracterizado porque la interacción social entre individuos está seleccionada entre llamadas telefónicas, emails, SMS, MMS, una interacción social electrónica distinta de las anteriores y una combinación de ellas .
9. - Método de detección de comunidades en redes sociales masivas mediante un enfoque aglomerativo, según la reivindicación 2, caracterizado porque las propiedades de interacción se seleccionan entre el tipo de interacción, el tipo de canal de comunicación y la información de localización .
10. - Método de detección de comunidades en redes sociales masivas mediante un enfoque aglomerativo, según la reivindicación 4, caracterizado porque la condición de parada está seleccionada entre:
• llevar a cabo un número fijo de iteraciones definidas por el usuario, "M"; y,
· que se cumpla que _¾+ι= Ω±".
PCT/ES2010/070471 2010-07-08 2010-07-08 Método de detección de comunidades en redes sociales masivas mediante un enfoque aglomerativo WO2012004425A1 (es)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/809,107 US20130198191A1 (en) 2010-07-08 2010-07-08 Method for detecting communities in massive social networks by means of an agglomerative approach
PCT/ES2010/070471 WO2012004425A1 (es) 2010-07-08 2010-07-08 Método de detección de comunidades en redes sociales masivas mediante un enfoque aglomerativo

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/ES2010/070471 WO2012004425A1 (es) 2010-07-08 2010-07-08 Método de detección de comunidades en redes sociales masivas mediante un enfoque aglomerativo

Publications (1)

Publication Number Publication Date
WO2012004425A1 true WO2012004425A1 (es) 2012-01-12

Family

ID=45440790

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/ES2010/070471 WO2012004425A1 (es) 2010-07-08 2010-07-08 Método de detección de comunidades en redes sociales masivas mediante un enfoque aglomerativo

Country Status (2)

Country Link
US (1) US20130198191A1 (es)
WO (1) WO2012004425A1 (es)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013127673A1 (en) 2012-02-29 2013-09-06 Telefónica, S.A. A method and a system for managing users' social interactions network
US8990209B2 (en) 2012-09-06 2015-03-24 International Business Machines Corporation Distributed scalable clustering and community detection
WO2015086860A1 (es) 2013-12-09 2015-06-18 Telefonica Digital España, S.L.U. Método y sistema para caracterizar un grupo de usuarios
CN110378002A (zh) * 2019-07-11 2019-10-25 华中农业大学 基于移动轨迹的社会关系建模方法
CN111091287A (zh) * 2019-12-13 2020-05-01 南京三百云信息科技有限公司 风险对象识别方法、装置以及计算机设备
CN112886589A (zh) * 2021-04-09 2021-06-01 华中科技大学 基于社区挖掘的供电分区方法、系统、终端、介质及配电网
CN113065099A (zh) * 2021-03-26 2021-07-02 浙江科技学院 一种社交网络子结构计数的方法

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9110985B2 (en) * 2005-05-10 2015-08-18 Neetseer, Inc. Generating a conceptual association graph from large-scale loosely-grouped content
US7958120B2 (en) 2005-05-10 2011-06-07 Netseer, Inc. Method and apparatus for distributed community finding
US8825657B2 (en) 2006-01-19 2014-09-02 Netseer, Inc. Systems and methods for creating, navigating, and searching informational web neighborhoods
US8843434B2 (en) * 2006-02-28 2014-09-23 Netseer, Inc. Methods and apparatus for visualizing, managing, monetizing, and personalizing knowledge search results on a user interface
US9817902B2 (en) * 2006-10-27 2017-11-14 Netseer Acquisition, Inc. Methods and apparatus for matching relevant content to user intention
US10387892B2 (en) 2008-05-06 2019-08-20 Netseer, Inc. Discovering relevant concept and context for content node
US20090300009A1 (en) * 2008-05-30 2009-12-03 Netseer, Inc. Behavioral Targeting For Tracking, Aggregating, And Predicting Online Behavior
US8773437B1 (en) * 2011-07-12 2014-07-08 Relationship Science LLC Weighting paths in a social graph based on time
US10311085B2 (en) 2012-08-31 2019-06-04 Netseer, Inc. Concept-level user intent profile extraction and applications
US9858317B1 (en) * 2012-12-03 2018-01-02 Google Inc. Ranking communities based on members
US10037538B2 (en) * 2012-12-11 2018-07-31 Facebook, Inc. Selection and presentation of news stories identifying external content to social networking system users
CN103914493A (zh) * 2013-01-09 2014-07-09 北大方正集团有限公司 一种微博用户群体结构发现分析方法及系统
US9314696B2 (en) * 2013-03-05 2016-04-19 Nokia Technologies Oy Method and apparatus for leveraging overlapping group areas
US9858130B2 (en) * 2013-09-26 2018-01-02 Twitter, Inc. Method and system for distributed processing in a messaging platform
US9529887B2 (en) * 2013-12-10 2016-12-27 Palo Alto Research Center Incorporated Efficient detection of information of interest using greedy-mode-based graph clustering
US9455874B2 (en) 2013-12-30 2016-09-27 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for detecting communities in a network
US20150255068A1 (en) * 2014-03-10 2015-09-10 Microsoft Corporation Speaker recognition including proactive voice model retrieval and sharing features
US10025867B2 (en) * 2015-09-29 2018-07-17 Facebook, Inc. Cache efficiency by social graph data ordering
EP3669566B1 (en) * 2017-08-14 2022-10-26 Telefonaktiebolaget LM Ericsson (PUBL) Community detection in radio access networks with constraints
CN108009690B (zh) * 2017-12-22 2022-01-14 北京工业大学 一种基于模块度最优化的地面公交扒窃团体自动检测方法
US10846314B2 (en) * 2017-12-27 2020-11-24 ANI Technologies Private Limited Method and system for location clustering for transportation services
CN108257036A (zh) * 2018-01-12 2018-07-06 西安电子科技大学 基于种子节点扩展重叠社区的发现方法、网络社区系统
CN109299849B (zh) * 2018-08-09 2021-08-03 湖北文理学院 一种社会网络中群体需求层次计算方法
US11853877B2 (en) 2019-04-02 2023-12-26 International Business Machines Corporation Training transfer-focused models for deep learning
CN110930281B (zh) * 2019-12-04 2023-10-03 中南大学 一种城市交通流社团结构统计检测的方法及系统
CN112948712B (zh) * 2021-03-26 2022-03-25 北京理工大学 一种可重叠的社群发现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HOHWALD ET AL., COMPUTATIONAL SCIENCE AND ENGINEERING, 2009. CSE '09. INTERNATIONAL CONFERENCE ON, vol. 4, 2009, pages 375 - 380 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013127673A1 (en) 2012-02-29 2013-09-06 Telefónica, S.A. A method and a system for managing users' social interactions network
US8990209B2 (en) 2012-09-06 2015-03-24 International Business Machines Corporation Distributed scalable clustering and community detection
WO2015086860A1 (es) 2013-12-09 2015-06-18 Telefonica Digital España, S.L.U. Método y sistema para caracterizar un grupo de usuarios
CN110378002A (zh) * 2019-07-11 2019-10-25 华中农业大学 基于移动轨迹的社会关系建模方法
CN110378002B (zh) * 2019-07-11 2023-05-12 华中农业大学 基于移动轨迹的社会关系建模方法
CN111091287A (zh) * 2019-12-13 2020-05-01 南京三百云信息科技有限公司 风险对象识别方法、装置以及计算机设备
CN113065099A (zh) * 2021-03-26 2021-07-02 浙江科技学院 一种社交网络子结构计数的方法
CN113065099B (zh) * 2021-03-26 2024-03-05 浙江科技学院 一种社交网络子结构计数的方法
CN112886589A (zh) * 2021-04-09 2021-06-01 华中科技大学 基于社区挖掘的供电分区方法、系统、终端、介质及配电网

Also Published As

Publication number Publication date
US20130198191A1 (en) 2013-08-01

Similar Documents

Publication Publication Date Title
WO2012004425A1 (es) Método de detección de comunidades en redes sociales masivas mediante un enfoque aglomerativo
Javarone et al. From bitcoin to bitcoin cash: a network analysis
Sintos et al. Using strong triadic closure to characterize ties in social networks
Dorogovtsev et al. The shortest path to complex networks
Chen et al. Detecting communities in social networks using label propagation with information entropy
Allard et al. General and exact approach to percolation on random graphs
Achar et al. Pattern-growth based frequent serial episode discovery
Fioretto et al. Differential privacy of hierarchical census data: An optimization approach
Cooper et al. The cover times of random walks on random uniform hypergraphs
Bhat et al. OCMiner: a density-based overlapping community detection method for social networks
Fotouhi et al. The effect of exogenous inputs and defiant agents on opinion dynamics with local and global interactions
Jalali et al. A two-phase sampling algorithm for social networks
Wang Using the relationship of shared neighbors to find hierarchical overlapping communities for effective connectivity in IoT
Gomez Rodriguez et al. Bridging offline and online social graph dynamics
Dai Pra et al. Entropy decay for interacting systems via the Bochner-Bakry-Émery approach
Dürr et al. Modeling social network interaction graphs
Gustafsson et al. Utilitarianism is Implied by Social and Individual Dominance
Sundaram Ignoring extreme opinions in complex networks: The impact of heterogeneous thresholds
Hafez et al. Community detection in social networks by using Bayesian network and expectation maximization technique
Chen et al. The maximum-weight stable matching problem: duality and efficiency
Wadhwa et al. An insight into properties of real world networks
Liu et al. A general framework for complex network applications
Gennari Social Network deanonymization-On the performance of the Percolation Graph Matching algorithm over synthetic graphs with community structure.
Xu et al. PSO-TPS: An optimal trust path selection algorithm based on particle swarm optimization in small world network
Demaine et al. 09511 abstracts collection–parameterized complexity and approximation algorithms

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10854367

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13809107

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 10854367

Country of ref document: EP

Kind code of ref document: A1