[ad_1]
Хеширование является основной операцией в большинстве онлайн-баз данных, таких как библиотечный каталог или веб-сайт электронной коммерции.
Хэш-функция генерирует коды, которые заменяют входные данные.
Поскольку эти коды короче фактических данных и обычно имеют фиксированную длину, это упрощает поиск и извлечение исходной информации.
Однако, поскольку традиционные хэш-функции генерируют коды случайным образом, иногда два фрагмента данных могут быть хешированы с одним и тем же значением.
Это вызывает коллизии — когда поиск одного элемента указывает пользователю на множество фрагментов данных с одним и тем же значением хеш-функции. Поиск нужного занимает гораздо больше времени, что приводит к замедлению поиска и снижению производительности.
Определенные типы хеш-функций, известные как совершенные хэш-функции, предназначены для сортировки данных таким образом, чтобы предотвратить коллизии. Но они должны быть созданы специально для каждого набора данных, и для их вычисления требуется больше времени, чем для традиционных хеш-функций.
Поскольку хеширование используется во многих приложениях, от индексации базы данных до сжатия данных и криптографии, быстрые и эффективные хэш-функции имеют решающее значение.
Итак, исследователи из Массачусетского технологического института и других стран решили выяснить, могут ли они использовать машинное обучение для создания более качественных хеш-функций.
Они обнаружили, что в определенных ситуациях использование обученных моделей вместо традиционных хеш-функций может привести к вдвое меньшему количеству коллизий.
Обученные модели — это те, которые были созданы путем запуска алгоритма машинного обучения в наборе данных. Их эксперименты также показали, что изученные модели часто более эффективны в вычислительном отношении, чем идеальные хеш-функции.
«В этой работе мы обнаружили, что в некоторых ситуациях мы можем найти лучший компромисс между вычислением хэш-функции и коллизиями, с которыми мы столкнемся.
Мы можем немного увеличить время вычисления хеш-функции, но в то же время мы можем очень значительно уменьшить коллизии в определенных ситуациях», — говорит Ибрагим Сабек, постдоктор из группы информационных систем Массачусетского технологического института Лаборатории компьютерных наук и искусственного интеллекта ( ЦСАИЛ).
Их исследование, которое будет представлено на Международной конференции по очень большим базам данных, демонстрирует, как можно разработать хэш-функцию, чтобы значительно ускорить поиск в огромной базе данных.
Например, их метод может ускорить вычислительные системы, которые ученые используют для хранения и анализа ДНК, аминокислотных последовательностей или другой биологической информации.
Хэш это
При вводе данных или ключа традиционная хеш-функция генерирует случайное число или код, соответствующий слоту, в котором будет храниться этот ключ.
Чтобы использовать простой пример, если есть 10 ключей, которые нужно поместить в 10 слотов, функция будет генерировать случайное целое число от 1 до 10 для каждого входа. Весьма вероятно, что два ключа окажутся в одном и том же слоте, что приведет к коллизиям.
Совершенные хэш-функции обеспечивают альтернативу без коллизий. Исследователи сообщают функции некоторые дополнительные сведения, например количество слотов, в которые должны быть помещены данные.
Затем он может выполнить дополнительные вычисления, чтобы выяснить, куда поместить каждый ключ, чтобы избежать коллизий. Однако эти дополнительные вычисления усложняют создание функции и делают ее менее эффективной.
«Нам было интересно, если мы узнаем больше о данных — о том, что они поступают из определенного дистрибутива, — сможем ли мы использовать изученные модели для создания хеш-функции, которая действительно может уменьшить коллизии?» — говорит Вайдья.
Распределение данных показывает все возможные значения в наборе данных и частоту появления каждого значения. Распределение можно использовать для расчета вероятности того, что конкретное значение находится в выборке данных.
Исследователи взяли небольшую выборку из набора данных и использовали машинное обучение, чтобы аппроксимировать форму распределения данных или то, как они распределены. Затем изученная модель использует приближение для прогнозирования местоположения ключа в наборе данных.
Они обнаружили, что обученные модели легче создавать и быстрее запускать, чем идеальные хеш-функции, и что они приводят к меньшему количеству коллизий, чем традиционные хеш-функции, если данные распределяются предсказуемым образом. Но если данные не распределены предсказуемым образом из-за того, что промежутки между точками данных слишком сильно различаются, использование изученных моделей может привести к большему количеству коллизий.
«У нас может быть огромное количество входных данных, и каждый из них имеет различный разрыв между ним и следующим, поэтому изучение этого довольно сложно», — объясняет Сабек.
Меньше столкновений, быстрее результаты
Когда данные были распределены предсказуемо, обученные модели могли снизить долю конфликтующих ключей в наборе данных с 30% до 15% по сравнению с традиционными хеш-функциями. Они также смогли добиться большей пропускной способности, чем идеальные хэш-функции. В лучших случаях изученные модели сокращали время выполнения почти на 30%.
Изучая использование изученных моделей для хеширования, исследователи также обнаружили, что на все это больше всего повлияло количество подмоделей. Каждая изученная модель состоит из более мелких линейных моделей, которые аппроксимируют распределение данных. При большем количестве подмоделей изученная модель дает более точную аппроксимацию, но это занимает больше времени.
«При определенном пороге подмоделей вы получаете достаточно информации, чтобы построить приближение, которое вам нужно для хэш-функции. Но после этого это не приведет к большему улучшению снижения столкновений», — говорит Сабек.
Основываясь на этом анализе, исследователи хотят использовать изученные модели для разработки хеш-функций для других типов данных. Они также планируют изучить изученное хеширование для баз данных, в которые можно вставлять или удалять данные. Когда данные обновляются таким образом, модель должна измениться соответствующим образом, но изменение модели при сохранении точности является сложной проблемой.
«Мы хотим побудить сообщество использовать машинное обучение в более фундаментальных структурах данных и операциях. Любая базовая структура данных дает нам возможность использовать машинное обучение для захвата свойств данных и повышения производительности. Нам еще многое предстоит изучить», — говорит Сабек.
Автор Адам Зеве.
[ad_2]
Ищите кефирная маска для волос на сайте hairmania.su.