Lsh Deduplication

MinHash & SimHash: Дедупликация и сжатие текстовых архивов

Published: 2026-06-25 · Trading

Введение в LSH-дедупликацию текстовых баз При обработке сверхкрупных архивов сообщений и логов (от 100k до 500k строк) стандартные методы точного дедупликации (SHA-256) оказываются недостаточными из-

⚡ Быстрый ответ

  • MinHash and SimHash LSH pipeline for de-duplicating and compressing large textual archives into CompactDigest records.
  • Parameters: MinHash Jaccard threshold >= 0.55 ($n\_perm=128$, $bands=32$, $rows=4$), SimHash Hamming distance <= 3 (strict) or <= 4 (soft inside clusters).
  • Aggregates raw text into 200-400 validated CompactDigest records containing core summaries, key facts, and back-trace IDs.
MemIR AI Agent Summary
MinHash and SimHash LSH pipeline for de-duplicating and compressing large textual archives into CompactDigest records. Parameters: MinHash Jaccard threshold >= 0.55 ($n\_perm=128$, $bands=32$, $rows=4$), SimHash Hamming distance <= 3 (strict) or <= 4 (soft inside clusters). Aggregates raw text into 200-400 validated CompactDigest records containing core summaries, key facts, and back-trace IDs.

Executable Parameters

Contracts

RPC Endpoints

Constants

n_perm: 128
bands: 32
rows: 4
jaccard_threshold: 0.55
hamming_threshold_strict: 3
hamming_threshold_soft: 4
min_cluster_size: 6
max_cluster_size: 120

Safety Guards

Rule Max Limit Action On Breach
max_dupes_pct 0.35 abort
min_quality_score 0.92 quarantine

Руководство по интеграции

### Введение в LSH-дедупликацию текстовых баз

При обработке сверхкрупных архивов сообщений и логов (от 100k до 500k строк) стандартные методы точного дедупликации (SHA-256) оказываются недостаточными из-за обилия почти-дубликатов, незначительных правок и схожих по смыслу, но разных по форме фраз. Для эффективного сжатия применяется двухэтапный конвейер поиска похожих документов на основе Locality-Sensitive Hashing (LSH), сочетающий алгоритмы MinHash и SimHash.

### 1. Архитектура конвейера LSH

Пайплайн состоит из следующих последовательных шагов:
1. **Нормализация**: Приведение к нижнему регистру, Unicode-нормализация, очистка от ссылок (URLs), эмодзи и разметки. Текст разбивается на символьные или словные шинглы (shingles) размером 3–5 слов.
2. **MinHash (группировка по темам)**:
- Документы векторизуются с использованием $n\_perm = 128$ перестановок.
- Применяется LSH с параметрами $bands = 32$, $rows = 4$.
- Пара бакетов признается кандидатом на сходство при значении коэффициента Жаккара $J(A, B) \ge 0.55$.
3. **SimHash (склейка почти-дубликатов)**:
- Для кандидатов внутри каждого бакета вычисляется 64-битный SimHash.
- Расстояние Хэмминга ($d_H$) используется для точной склейки:
- $d_H \le 3$ — строгое совпадение (автоматическое слияние);
- $d_H \le 4$ — мягкое совпадение (слияние внутри сформированного кластера).

### 2. Спецификация CompactDigest

Каждый верифицированный кластер сжимается в компактную запись `CompactDigest`. Это основной ре-ингест формат для ИИ-агентов. Структура записи:
- **Заголовок**: Тема, период времени, идентификаторы исходных файлов.
- **Ядро (Core Summary)**: 120–200 слов чистой сути без вводных слов и воды.
- **Факты**: Список из 5–10 конкретных фактов с датами, именами, суммами и действиями.
- **Ссылки (Traceability)**: Хэши SHA-256 оригинальных сообщений для трассировки выводов назад к первоисточнику.

### 3. Инкрементальное обновление базы

Для поддержания актуальности базы без полного пересчета применяется incremental-обновление:
1. Новое сообщение проходит фильтр SHA-256 на точное совпадение.
2. Вычисляется MinHash и определяется принадлежность к существующим LSH-бакетам.
3. Внутри бакета вычисляется SimHash и проверяется расстояние Хэмминга до центроида кластера.
4. Если расстояние $\le 4$, сообщение добавляется в кластер, а `CompactDigest` перегенерируется.
5. Если совпадений нет, создается новый кластер-кандидат.

### 4. Критерии качества (DoD)

Итоговая база дайджестов (целевой объем 200–400 записей) должна отвечать требованиям:
- Доля дубликатов: $\le 0.35\%$;
- Коэффициент сжатия: размер базы составляет $\le 7\%$ от первоначального объема;
- Каждая запись содержит полную цепочку обратных ссылок (`trace`).