Estado del arte en deduplicación

13

¿Cuáles son los métodos más avanzados en deduplicación de registros? La deduplicación también se denomina a veces: vinculación de registros, resolución de entidad, resolución de identidad, fusión / purga. Sé, por ejemplo, sobre CBLOCK [1].

Agradecería que las respuestas también incluyeran referencias al software existente que implementa los métodos. Sé, por ejemplo, que Mahout implementa el agrupamiento de dosel . También está Duke que usa Lucene.

Existen muchos sistemas comerciales para la deduplicación. Sería valioso saber cómo funcionan y qué tan eficientes son.

Estoy interesado tanto en la deduplicación dentro de un único conjunto de datos como en la vinculación entre múltiples conjuntos de datos provenientes de diferentes fuentes. La eficiencia y la capacidad de procesar grandes cantidades de datos también es importante.

[1] CBLOCK: un mecanismo de bloqueo automático para tareas de desduplicación a gran escala

Jakub Kotowski
fuente
Una solución comercial que puede ser de interés. Un punto de venta es que es hora de y generalmente logra resultados superiores a otros competidores comerciales. novetta.com/products/entity-analyticsO(norte)
Sycorax dice Reinstate Monica

Respuestas:

5

Tamr (anteriormente Data Tamer) realiza la deduplicación de la base de datos a escala. Los ingenuos Bayes y la agrupación de gráficos están involucrados.

Creo que los algoritmos se implementan en gran medida en SQL, lo cual es algo extraño, pero el autor principal de su documento técnico es Michael Stonebraker, quien ayudó a liderar la creación de PostgreSQL.

Mira el documento aquí .

Editar: He resumido los pasos que da su trabajo a continuación. Algunas de mis palabras son casi las mismas que en su artículo.

El sistema de deduplicación de Tamr tiene dos pasos principales para tratar con una nueva fuente de datos: (1) Identificación de atributos y (2) Consolidación de entidades. Estos son aproximadamente equivalentes a la deduplicación de columna y la deduplicación de fila.

1) Al comparar una nueva fuente de datos con una existente, el primer paso es la identificación de atributos.

Los atributos (columnas) de la nueva fuente se asignan a los atributos de la fuente existente con cuatro algoritmos:

  • Compare los nombres de atributos con la comparación de cadenas difusas (similitud de coseno trigrama)
  • Considere una columna completa como documento, tokenice, mida la frecuencia total / frecuencia de documento inversa (TF-IDF) coseno similitud entre esa y otras columnas.
  • Longitud descriptiva mínima: compare dos columnas en función de los tamaños de su intersección y unión con la coincidencia exacta.
  • Para las columnas numéricas, realice una prueba t entre la nueva columna y las columnas numéricas existentes para determinar si provienen de la misma distribución.

2) Consolidación de entidades (deduplicación de filas)

Una vez que se ha realizado la identificación de atributos, queremos deduplicar las filas (registros).

Categorización con agrupamiento

Los registros se agrupan primero en categorías según la similitud, y luego las reglas de deduplicación se aprenden a nivel de categoría. El ejemplo que dan de la categorización es para una base de datos de estaciones de esquí, donde las estaciones de esquí occidentales deberían ser una categoría diferente de las estaciones de esquí orientales, ya que las características como la elevación de la base están fuertemente separadas por si la estación es este u oeste. La categorización se realiza con un algoritmo de agrupamiento, con k-medias como ejemplo.

Deduplicando con ingenuos Bayes

Una vez que se identifican los atributos y los registros se han agrupado en categorías, aprendemos las reglas de deduplicación para cada categoría en función de un conjunto de entrenamiento de engañados y no engañados.

Hay dos tipos de reglas de deduplicación:

  1. Umbrales para similitudes de atributos con respecto a una función de distancia que tiene sentido para el atributo. (El documento no tiene claro cómo se aprenden estos umbrales).
  2. Distribuciones de probabilidad para duplicados y no duplicados en cada atributo. por ejemplo P("Title" values similar | duplicate) ~ 1y Pr("State" values are different | duplicate) ~ 0

Para cada par de registros, calculamos la similitud de cada uno de sus atributos con una métrica de distancia apropiada. Si algún atributo tiene una similitud por encima de su umbral, el par de registros se alimenta a través de un clasificador Naive Bayes para ser clasificado como duplicado o no duplicado.

Mi suposición es que para los registros X1 = (a1,b1,c1,d1), X2 = (a2,b2,c2,d2)calculan un vector de similitud S = (s_a, s_b, s_c, s_d)donde s_ies similar para ese atributo wrt a la métrica de distancia correcta.

Supongo que su clasificador Naive Bayes tiene esta estructura:

P(dupe|S) = P(dupe)P(s_a|dupe)(s_b|dupe)(s_c|dupe)P(s_d|dupe) / P(S)

Resolución de entidad con agrupación de gráficos

Después del paso de clasificación, tenemos un subconjunto de registros de una categoría dada que se cree que son duplicados por pares. Estos ahora deben resolverse en entidades distintas . Esto resuelve un problema de transitividad: si el registro t1 es un duplicado de t2 y t2 es un duplicado de t3, entonces t1 también debe ser un duplicado de t3. Es decir, t1, t2 y t3 representan la misma entidad .

Se utiliza una estructura gráfica para este paso. Dentro de la categoría, cada registro que puede ser un duplicado es un nodo. Los nodos sospechosos de ser engañados entre sí tienen bordes entre ellos. Los grupos se descubren en el gráfico y luego se fusionan en función de los umbrales relacionados con la fuerza con la que un grupo está conectado a otro. Aquí hay tres ejemplos de pares de clúster que podrían o no fusionarse en función de su conexión:

  c1        c2    

x-x-x-----y-y-y
|\|/|     |\|/|
x-x-x-----y-y-y  Meets similiarity threshold
|/|\|     |/|\|
x-x-x-----y-y-y    

x-x-x     y-y-y
|\|/|     |\|/|
x-x-x-----y-y-y  Does not meet similarity threshold
|/|\|     |/|\|
x-x-x     y-y-y    

    x     y
    |     |
    x-----y      Meets similarity threshold
    |     |
    x     y

Cuando el algoritmo termina, cada grupo debe representar una entidad distinta dentro de la categoría . Para completar el proceso, los atributos de esta entidad deben determinarse a partir de los atributos de los registros dentro de ella . Los nulos se descartan primero, luego se utilizan métodos que incluyen frecuencia, promedio, mediana y mayor.

El documento también desarrolla algunos métodos para usar expertos en dominios para ayudar cuando los algoritmos no están seguros y cómo usar múltiples expertos con diferentes niveles de experiencia.

Thomaskeefe
fuente
Enlace de trabajo para el documento técnico: cs.uwaterloo.ca/~ilyas/papers/StonebrakerCIDR2013.pdf
fjsj