Алгоритм приближенного выполнения операции соединения по подобию Перевалова Марина, 545 группа научный руководитель: Новиков Б.А. рецензент: Графеева Н.Г. Область использования Big data: Языки запросов Декларативность Возможности для оптимизации Гетерогенность Соединение данных из разных источников Слабая структурированность Оценки Подобие Соединение по подобию Объекты представлены, как множества токенов Для двух множеств X и Y операция соединение по подобию возвращает все пары объектов <x,y> для которых sim(x,y) ≥ t. x = {A,B,C,D,E} y = {B,C,D,E,F} Известные функции подобия: Жаккара: J ( x, y ) Косинусная: C ( x, y ) Дайса: D ( x, y ) t заранее неизвестно x y x y x y x y 2x y x y t 4/6 = 0.67 t 4/5 = 0.8 t 8/10 = 0.8 top-k запросы Постановка задачи Приближенный алгоритм: ограниченное время работы приближенный результат Вход: k Результат: Коллекция 1 <объект1, оценка> <объект1, объект2 итоговая оценка> Коллекция 2 <объект2, оценка> ожидаемое качество качество = 100% результата время Расширенная модель стоимости: ожидаемое качество результата k Сокращение числа кандидатов Фильтрование по размеру x= С D E y= A B E F G Префиксное фильтрование x= y= A С B D Функция подобия Жаккара: x y x y t tx y t = 0.8 ⇒ 4 ≰ 3 t = 0.8, |x|=|y|=5 ⇒ |x y| 4 max|x y| = 3 < 4 Пара должна иметь хотя бы один общий токен в префиксе Токены отсортированы в глобальном порядке Разработанный алгоритм Основная идея: Постепенное уточнение k пар в буфере Итоговая оценка: ϴ = min(Ax,Ay)*sim(x,y), где Ax, Ay – оценки объектов Условие остановки: min(Ax,Ay) < T T = mink ϴ ↓Axi x1 ↓Ayi y1 y2 y3 или: заданное время y4 y5 x2 x3 x4 x5 x6 x7 Модель стоимости time = f(k, tsys, call, cs, cp, cv, lob, lpr) call – количество пар объектов, обработанных алгоритмом (без учета первых k) cs – количество пар, прошедших фильтрование по размеру cp – количество пар, прошедших префиксное фильтрование cv – количество пар, записываемых в буфер lob– средняя длина объекта lpr – средняя длина префикса tsys– среднее системное время, затрачиваемое на: чтение запись одну вычислительную операцию Модель стоимости Время ↝ количество обработанных пар Время ↝ ожидаемое качество результата k’ – количество пар из возвращаемых k, принадлежащих истинным k k’/k – точность результата, k’/k ∊ [0, 1] Оценка параметров: мат. ожидание накопление статистики Эксперименты 700 время работы (грубая оценка) 500 время работы (статистика) 400 300 заданное время 200 100 0 10 точность результата время, с 600 500 1500 2500 3500 4500 5500 6500 7500 8500 k 1 ожидаемая точность (грубая оценка) ожидаемая точность (статистика) реальная точность 0.8 0.6 0.4 0.2 0 1 2 3 4 5 6 7 8 9 10 11 12 Эксперименты Увеличить точность модели? Сокращение проверок → сокращение количества параметров → увеличение точности модели → увеличение времени работы 450 400 время, с 350 Разработанный алгоритм 300 250 200 Наивный алгоритм 150 100 50 0 10 50 100 500 1000 2000 3000 4000 5000 6000 7000 k Итоги Разработан и реализован приближенный алгоритм соединения по подобию для множеств объектов с оценками Построена расширенная модель стоимости, позволяющая управлять соотношением время/качество Проведены эксперименты, тестирующие точность разработанной модели