Capítulo 6. Trabajo relacionado
6.2. Agrupamientos en flujos de datos
Sobre los algoritmos de agrupamiento en flujos de datos hay que distinguir el trabajo realizado bajo el enfoque evolutivo, donde todo el histórico de tuplas es considerado, de aquel bajo el enfoque con ventana deslizante, donde solo las tuplas más recientes entran a formar el agrupamiento.
6.2.1 Agrupamientos sobre flujos evolutivos
La construcción de unclusteringincremental es introducida en [Charikar et al.,1997] donde se construye un 8-aproximado agrupamiento con una sola pasada sobre los datos para el problema de k-medianas donde los objetos representativos deben pertenecer al propio conjunto de entrada.
EnGuha et al.[2000,2003] se proponen un algoritmo con una sola pasada que determina un agru- pamiento aproximado por un factor constante con un tiempo de procesamientoO(nklogn)usando un espacio O(nε) con ε < 1. En este algoritmo las tuplas son procesadas en bloques de tamaño O(M/k), conde M/k es el espacio disponible. Para cada bloque se realiza una búsqueda local de los2kcentros más representativos, almacenandolos como centros a nivel 0. Una vez que la memoria es cubierta con todos los centros de nivel 0, éstos son re-agrupados en centros intermedios de nivel 1. De esta manera es liberado espacio para continuar con el agrupamiento de los bloques entrantes. Este proceso es iterativo, de manera que se mantiene centros a diferentes niveles. Para hallar elclustering
final los centros intermedios son agrupados en loskcentros finales. Obsérvese que no todas las tu- plas tienen el mismo peso en elclusteringfinal, ya que las más recientes participan directamente en los centros de nivel 0, pero según van siendo más antiguas éstas participan por medio de varios re- agrupamientos. Como resultado, este algoritmo pesa de determinada manera el impacto de cada tupla en el agrupamiento calculado, no siendo el modelo puro de flujo de datos evolutivo. Este algoritmo, es la base para otros algoritmos bajo ventanas deslizantes, que tendrán propiedades derivadas de esta última observación.
En citeconf:icde02:OCallaghan se presenta STREAM un algoritmo de agrupamiento sobre flujos evolutivos dirigido al problema dek-medianas donde elkno está definido de antemano. Se apoya en un algoritmo iterativo para el problema de localización de instalaciones que es el que permite buscar a la vez el conjunto de medias óptimo y el número de éstas. Este algoritmo se va corriendo sobre bloques de tuplas del flujo de manera que cada solución tiene el número de tuplas que representa. Cuando las restricciones de memoria lo soliciten estás soluciones intermedias ponderadas son reagrupadas.
Centrándose en diseñar un algoritmo que vaya disminuyendo el factor de aproximación delclus- teringcomputado enCharikar et al.[1997], estos mismos autores proponen enCharikar et al.[2003] un algoritmo aleatorio de una sola pasada sobre los datos que produce unaclustering aproximado con un factor constante utilizandoO(k poly-logn)espacio. En este caso, también, se calculan unas medianas intermedias que se calculan sobre una fracción de los datos de entrada de tamaño varia- ble, fusionándolas con las tuplas entradas en el siguiente paso. Obsérvese que este algoritmo tiene la característica antes mencionada sobre la participación desigual de las tuplas en elclusteringfinal.
En CluStream [Aggarwal et al., 2003] se formaliza y extiende el uso anterior de mantener un conjunto declustersintermedios que serán reagrupados en unclusteringfinal cuando sea necesario. Por el medio de estosclusteringsintermedios el algoritmo mantiene información (clusters) relevante para la ventana actual, pero también información (clusters) que pueden emerger como importantes en ventanas posteriores. El número declustersintermedios almacenados es el máximo permitido por las restricciones de recursos.
EnGuha[2009] se propone un algoritmo de una sola pasada2(1 +ε)-aproximado para el proble- ma de mantenerk-medianas utilizandoO(kεlog 1/ε). Este algoritmo ejecuta varias agrupamientos en paralelo para garantizar la cota de aproximación.
6.2.2 Agrupamientos sobre flujos con ventana deslizante
Como ya se ha comentado, el mecanismo presentado en Guha et al. [2003] es utilizado en el contexto de ventanas deslizantes para diseñar algoritmos de agrupamiento bajo este enfoque. Con- cretamente, en Babcock et al. [2003] se propone un algoritmo O(2O(1/τ))-aproximado utilizando O(k/τ4N2τlog2N)espacio, dondeτ <1/2. Este algoritmo fusiona la técnica deGuha et al.[2003] con los histogramas exponenciales para mantener los indicadores de cadacluster. Al utilizar la téc- nica de agrupamiento por niveles de Guha et al.[2003], no todas las tuplas en la ventana tienen la misma aportación alclusteringgenerado.
Basado en el marco de trabajo deAggarwal et al.[2003], donde se mantiene unclusteringinter- medio, enZhou et al.[2008], se propone SWClustering un algoritmo determinista que mantiene un número fijo declusterscalculando los indicadores de los mismos de manera aproximada. Este es el algoritmo que más semejanzas tiene con el algoritmo ACCENt presentado en el Capítulo3. Cabe des- tacar las dos diferencias fundamentales entre ambos relacionadas con el cómputo aproximado de los indicadores y con el número de clustersmantenidos. En primer lugar, ambos algoritmos mantienen los indicadores de manera aproximada, pero mientra en SWClustering el error de aproximación solo es garantizado sobre el número de tuplas, pudiendo suceder que los otros indicadores tomen errores no acotados, en ACCENt el error está acotado en todos los indicadores delcluster. Por otra parte, SW- Clustering mantiene un número fijo declustersque debe ser determinado de antemano, mientras que ACCENt tiene un número variable que, según la evaluación conducida, se adapta a las necesidades subyacentes de los datos.
Por otra parte enChen and Tu[2007] se presenta D-Stream que no toma el enfoque del problema dek-medias si no que por su parte mantiene un enfoque basado en la densidad. En su caso funciona con una función de caída sobre las tuplas de entrada por lo que tampoco es exactamente el modelo de ventana deslizante pero se conoce perfectamente el peso de cada tupla en el agrupamiento.
6.2.3 Agrupaciones en flujos distribuidos
En esta sección se exponen brevemente una serie de algoritmos que trabajan bajo entornos dis- tribuidos de flujos de datos, es decir, dado que las fuentes que generan los flujos son distribuidas el objetivo es calcular parcialmente soluciones de cada flujo para después agregar la información parcial.
EnBhaduri et al.[2007] se presenta un compendio de algoritmos que trabajan sobre flujos dis- tribuidos, motivados principalmente por las redes de sensores donde se quiere computar soluciones intermedias sobre cada flujo, que serán posteriormente agregadas para tener una solución global sobre el conjunto de los flujos.
Este es también el enfoque adoptado enCormode et al.[2007] donde el objetivo es ahora calcular el agrupamiento mediantek-mediodes reduciendo la comunicación entre las fuentes distribuidas y el nodo coordinador.
EnHua et al.[2009] el objetivo es agrupar el conjunto de estático objetos asociado a cada flujos, de manera que cada objeto tomará diferentes valores dependiendo del tiempo. Mediante el uso de una estructura de árbol que mantiene información sobre grupos cercanos de datos, está estructura es construida sobre una muestra de los datos de entrada. Cada flujo reproduce su propia estructura que es enviada a un nodo coordinador sobre las que calcula el agrupamiento final.
En cuanto a los algoritmos de agrupamiento, enHassani et al.[2009] se presenta un algoritmo que computa un agrupamiento dek-medianas en cada fuente de una red de sensores antes de enviárselo a un nodo coordinador. El enfoque adoptado es incremental ya que considera el modelo evolutivo de flujos.
Un enfoque interesante sobre agrupamiento es en el cual el objetivo no es particionar los datos de los flujos, si no los propios flujos, buscando así flujos que tengan datos correlados. De esta manera, enDai et al.[2004] donde se computan una serie de características sobre los flujos bajo el modelo evolutivo; dichas características son enviadas a un nodo coordinador que de formaofflinedetermina los grupos de flujos. Mientras que el caso anterior está dirigido al flujo evolutivo, la solución propuesta enBeringer and Hüllermeier[2006] se enfoca en el caso de ventana deslizante donde se diseña una variante del algoritmo dek-medias siendo el cómputo realizado centralizado.