Введение 4
1. Постановка задачи 5
2. Обзор 6
2.1. Существующие решения 6
2.2. Индустриальные продукты 8
3. Разработка архитектуры 11
3.1. Архитектура модели Doduo 11
3.2. Выбор языковой модели 13
4. Набор данных 14
4.1. Процесс обработки данных 14
4.2. Фильтрация данных 16
4.3. Выбор меток для сущностей 16
5. Обучение модели 18
5.1. Получение токенов из табличных данных для модели . . 18
5.2. Расширение вокабуляра токенайзера 19
5.3. Аугментация данных 20
5.4. Процесс обучения 20
5.5. Результаты обучения 21
Заключение 23
Список литературы 24
Определение семантических типов колонок в табличных данных является важной задачей в области профилирования. Под семантическим типом понимают связь между содержимым колонки и какой-то сущностью из реального мира, например: “Имя”, “Возраст”, “Страна”. При этом определение семантических типов значительно сложнее определения атомарных таких как: int, string, date, так как одному атомарному типу может соответствовать несколько семантических. Например семантические типы “Страна”, “Столица” и “Область” соответствуют атомарному string.
Для автоматизации поиска семантических типов исследователями было предложено множество подходов. Классические решения данной задачи используют регулярные выражения, словари и статистики. При этом они обладают малой точностью и сильно ограничены количеством распознаваемых типов [7]. Применение машинного обучения позволило значительно повысить качество распознавания и увеличить число распознаваемых сущностей.
Успешное решение данной задачи открывает возможности для решениях смежных задач, создавая для них основу. Полученную модель возможно применить для извлечения эмбеддингов, векторов представляющих семантику таблицы. Получаемые эмбеддинги далее можно использовать для решения задач интерпретации, поиска, заполнения пропущенных значений, расширения таблиц новыми столбцами и строками [11,12].
Существующие на данный момент решения не подходят для работы с данными, содержащими русский язык, поскольку используют для обучения данные, которые в основном содержат только английский язык. Также отсутствует набор данных, который позволил бы обучить модель, способную решать поставленную задачу. В данной работе описан процесс создания соответствующего набора данных и разработки модели машинного обучения для определения семантических типов колонок.
В ходе работы были достигнуты следующие результаты.
1. Выполнен обзор существующих на данный момент исследовательских решений Sherlock, SeLaB, Doduo и индустриальных решений: SAS Viya, Tableau и Talend для решения задачи определения семантического типа колонки. По результатам обзора была выбрана архитектура модели Doduo в качестве основы, поскольку Doduo на сегодняшний день решает аналогичную задачу для английского языка наилучшим образом по сравнению с другими моделями.
2. Разработана архитектура модели на основе архитектуры модели Doduo. Полученная модель адаптирована для работы с русским языком, а также способна работать в условиях ограниченных вычислительных ресурсов.
3. Подготовлен набор данных из 53 тысяч таблиц на основе RWT (корпуса русскоязычных таблиц), полученных из Wikipedia. Автоматизирован процесс обработки новых данных.
4. Выполнено обучение модели, проведены эксперименты, выбраны оптимальные гиперпараметры. Предложены модификации решения, способные улучшить конечный результат, а именно: предложен новый подход к токенизации таблиц и расширение вокабуляра.
5. Код модели опубликован на github.com, веса модели доступны на huggingface.co, датасет на kaggle.com. Демонстрационный стенд доступен на платформе streamlit.app.