![](https://habrastorage.org/getpro/habr/upload_files/578/574/a59/578574a59bb2484843b32cfbe14ebc2a.jpg)
Специально к старту курса о Data Science мы перевели статью о созданной исследователями из Массачусетского технологического института программе, занимающей около 50 строк кода (ссылку на который мы разместили в конце) и автоматически очищающей "грязные данные" — описки, дубликаты, пропущенные значения, опечатки и несоответствия, которых так опасаются аналитики, дата-сайентисты и дата-инженеры.
Система, получившая название PClean, — уже третья в серии проблемно-ориентированных языков вероятностного программирования, созданных членами Проекта вероятностного программирования (Probabilistic Computing Project), целью которого является упрощение и автоматизация разработки приложений ИИ (первая система была посвящена 3D-восприятию с помощью инверсной графики, а вторая — моделированию временных рядов и баз данных).
![](https://habrastorage.org/getpro/habr/upload_files/f29/e8b/b0d/f29e8bb0d20f218e4447a9462fbf5cc5.gif)
Согласно опросам, проведённым компаниями Anaconda и Figure Eight, очистка данных может занимать четверть времени специалиста по обработке и анализу данных. Автоматизация такого процесса может быть сопряжена с определёнными трудностями, поскольку различные наборы данных требуют различных типов очистки; кроме того, при принятии ряда решений, касающихся окружающих нас объектов, часто требуется привлечение здравого смысла (например, в каком из нескольких городов под названием Беверли-Хиллз может проживать человек).
При принятии определённых решений система PClean реализует общие модели здравого смысла. Такие модели могут быть адаптированы к конкретным базам данных и типам ошибок.
Для автоматизации процесса очистки данных система PClean использует подход, основанный на методах искусственного интеллекта: пользователи вносят в систему кодированную информацию общего характера о базе данных и о том, какого рода выводы придётся делать системе.
Возьмём, к примеру, задачу очистки названий штатов в базе данных объявлений о продаже квартир. Например, кто-то сообщил, что живёт в Беверли-Хиллз, но оставил графу "штат" пустой. Хотя всем известный город Беверли-Хиллз находится в Калифорнии, города с таким же названием есть в штатах Флорида, Миссури и Техас, а в городе Балтиморе даже есть район Беверли-Хиллз. Как же понять, в каком городе проживает человек?
Здесь на помощь приходит выразительный язык сценариев PClean. Пользователи могут предоставить системе PClean общие сведения о регионе и о том, каким образом могут быть неправильно представлены данные. PClean объединяет эти сведения с помощью вероятностных обоснований, основанных на здравом смысле, и выдаёт соответствующий ответ. Соответственно, принимая во внимание дополнительные знания о типичном уровне арендной платы в регионе, PClean приходит к выводу, что правильный город Беверли-Хиллз находится в Калифорнии, так как в том месте, где проживает респондент, высока стоимость аренды жилых помещений.
Алекс Лью, ведущий автор статьи и аспирант кафедры электротехники и вычислительной техники (EECS), больше всего доволен тем, что PClean дает возможность обращаться за помощью к компьютерам так же, как люди обращаются за помощью друг к другу.
"Когда я прошу друга помочь мне с чем-то, это часто проще, чем просить об этом компьютер. Это происходит из-за того, что в доминирующих сегодня языках программирования я должен давать компьютеру пошаговые инструкции, не предполагающие, что компьютер имеет хоть какое-то представление об окружающем мире или смысле задачи или способен даже просто привлекать здравый смысл.
Общаясь с человеком, я изначально знаю, что он всё это способен делать, — говорит он. — PClean — шаг к ликвидации этого пробела. Данная система позволяет сообщить компьютеру, что именно мне известно о проблеме, в виде закодированной информации об общих знаниях. Именно такую информацию я стал бы объяснять человеку, если бы захотел поручить ему очистить данные. Чтобы задача решалась быстрее, я также могу давать PClean подсказки, советы и рекомендации, которые когда-то уже пригождались на практике".
Соавторы системы — Моника Агравал, аспирант кафедры EECS; Дэвид Сонтаг, доцент кафедры EECS; и Викаш К. Мансингхка, главный научный сотрудник кафедры мозга и когнитивных наук.
Какие инновационные решения лежат в основе системы?
Идея, что вероятностная очистка, основанная на декларативных генеративных знаниях, в принципе, способна обеспечить гораздо большую точность, чем машинное обучение, была озвучена ранее в исследовании 2003 года Ханны Пасула и других сотрудников лаборатории Стюарта Рассела Калифорнийского университета в Беркли.
"Обеспечение качества данных — сложнейшая проблема реального мира, и почти все существующие решения — узкоспециализированные, дорогостоящие и подверженные ошибкам, — рассказывает Рассел, профессор информатики Калифорнийского университета в Беркли. — PClean — это первое масштабируемое и хорошо продуманное решение общего назначения, основанное на генеративном моделировании данных. Именно по этому пути необходимо двигаться дальше. Результаты говорят сами за себя".
Соавтор системы Агравал добавляет, что "существующим методам очистки данных не хватает выразительности. Однако такие системы, более удобные для пользователя, могут быть ограничены функционально. Кроме того, мы обнаружили, что систему PClean можно применять к очень большим наборам данных. Ни одна из существующих систем не способна не только за относительно короткое время, но и вообще за определённое реалистичное время обработать такие объёмы данных".
PClean основывается на последних достижениях в области вероятностного программирования, в том числе новой модели программирования ИИ, созданной в рамках проекта MIT Probabilistic Computing Project, значительно упрощающей применение реалистичных моделей человеческих знаний для интерпретации данных. Процесс очистки PClean базируется на байесовском подходе, взвешивающем альтернативные объяснения неоднозначных данных посредством применения к имеющимся данным вероятностей, основанных на предварительных знаниях.
"Способность принимать такого рода неопределённые решения в ситуациях, когда мы предварительно сообщаем компьютеру, на что ему надо обращать особое внимание при подготовке ответа и чтобы компьютер автоматически использовал эти сведения для выдачи правильного ответа с наибольшей вероятностью, — именно это является главной задачей вероятностного программирования", — говорит Лью.
PClean — это первая байесовская система очистки данных, объединяющая знания в определённой области и здравый смысл с целью автоматической очистки баз данных, содержащих миллионы записей. Работа PClean с такими большими объёмами данных стала возможной благодаря трём инновационным решениям.
Первое — язык описания сценариев PClean, позволяющий пользователям без проблем вводить в компьютер собственные знания и получать точные модели даже для сложных баз данных.
Второе — алгоритм логического вывода в PClean, использующий двухэтапный подход: на первом этапе осуществляется поочерёдная обработка записей и делаются обоснованные предположения о том, как их очистить, на втором этапе система пересматривает свои первоначальные выводы и, если надо, исправляет ошибки, что позволяет получать надёжные и точные результаты логического вывода.
Третье — в PClean реализован специализированный компилятор, генерирующий быстрый код логического вывода. Это позволяет PClean работать с базами данных, содержащими миллионы записей, с большей скоростью, чем многие конкурирующие системы.
"Пользователи PClean могут давать системе подсказки, как более рационально воспринимать содержимое базы данных, как быстрее с ней работать. Наш подход кардинально отличается от других подходов вероятностного программирования к очистке данных, большей частью полагающихся на общие алгоритмы логического вывода, зачастую слишком медленные или неточные", — рассказывает Мансингхка.
Как и во всех вероятностных программах, строк кода, необходимых для работы инструмента, гораздо меньше, чем в альтернативных современных вариантах. Чтобы превзойти конкурирующие системы по точности и времени выполнения задач, программам PClean требуется не более 50 строк кода. Для сравнения: элементарная игра "Змейка" на мобильном телефоне требует в два раза больше строк кода, а Minecraft — более 1 миллиона строк кода.
В своей работе, только что представленной на конференции 2021 Society for Artificial Intelligence and Statistics, авторы продемонстрировали возможности системы PClean при работе с наборами данных из миллионов записей, и показали, как можно использовать PClean для обнаружения ошибок и вписывания недостающих значений в наборы базы данных Medicare Physician Compare National, состоящей из 2,2 миллиона строк. Проработав всего семь с половиной часов, система PClean обнаружила более 8 000 ошибок. Затем авторы вручную проверили результаты работы PClean (через поиск по сайтам больниц и страницам врачей в LinkedIn), и выяснили, что более чем в 96 % случаев предложенные PClean исправления были верными.
Поскольку работа системы PClean базируется на байесовской вероятности, она также способна выдавать откалиброванные оценки неопределённости своих ответов. Система может выдавать несколько вариантов выводов — откалиброванные и обычные ответы типа "да/нет". Это повышает степень доверия пользователей к системе и при необходимости позволяет отменить выводы, сделанные PClean.
Например, пользователь может посмотреть на вывод, в правильности которого система PClean была не уверена, и подсказать ей правильный ответ. После этого система может обновить остальные свои выводы на основании вашей подсказки, — говорит Мансингхка. — Мы считаем, что такой интерактивный процесс, в котором человеческие выводы сочетаются с машинными, имеет большой потенциал. Мы рассматриваем PClean как первый пример нового типа системы ИИ, которой можно будет сообщать больше того, что знают люди, которая будет уведомлять, когда ей что-то неясно, и которая будет взаимодействовать с людьми на более человеческом уровне".
Дэвид Пфау, старший научный сотрудник DeepMind, заявил в твите, что систему PClean вполне можно использовать в коммерческих целях: "Если учесть, что подавляющее большинство коммерческих данных — это не изображения котиков, а записи в реляционных базах данных и электронных таблицах, удивительно, что подобные разработки до сих пор не используются в таких успешных областях, как глубокое обучение".
Преимущества, риски и регулирование
PClean позволяет дешевле и проще объединять неупорядоченные и непоследовательные базы данных в чистые записи без значительных затрат в человеческие ресурсы и программные системы, на которые в настоящее время полагаются компании, работающие с данными. Помимо возможных социальных преимуществ, использование системы также сопряжено с определёнными рисками: в частности, с помощью PClean злоумышленники смогут, в принципе, нарушать право людей на частную жизнь, а в перспективе и деанонимизировать их личности посредством объединения неполной информации из нескольких открытых источников.
"Безусловно, нам необходимо гораздо более жёсткое регулирование в области обработки данных, искусственного интеллекта и конфиденциальности, чтобы не допустить возникновения сценариев подобного рода", — считает Мансингхка. Лью добавляет: "По сравнению с подходами к очистке данных алгоритмов машинного обучения в системе PClean можно осуществлять более тонкий регуляторный контроль. Например, PClean может сообщить нам не только, что она объединила две записи как относящиеся к одному и тому же человеку, но и по какой причине она это сделала, и я могу сделать собственный вывод, согласен ли я с выводом системы. Я даже могу дать указание PClean, чтобы для объединения двух записей она принимала во внимание только определённые причины".
К сожалению, как полагают исследователи, проблемы сохранения конфиденциальности остаются актуальными независимо от того, насколько тщательно был очищен набор данных.
Мансингхка и Лью готовы оказывать помощь людям в решении общественно полезных задач. К ним уже обращались люди, желающие использовать систему PClean для повышения качества журналистских данных и для гуманитарных целей, таких как антикоррупционный мониторинг и объединение баз данных доноров для передачи в избирательные советы штатов. Агравал надеется, что PClean высвободит время специалистов в Data Science, "чтобы они могли сосредоточиться на действительно волнующих их проблемах, а не тратить время на выполнение рутинных задач типа очистки данных". Первые благоприятные отклики и интерес к системе PClean свидетельствуют о том, что такая перспектива вполне вероятна, и мы этому рады".
Из этой статьи становится понятно, что искусственный интеллект, в виде кода занимающий всего около 50 строк, на шаг приблизился к тому, каким его представляют в фантастических фильмах, когда человек отдаёт приказы-инструкции на простом, естественном для людей языке без формализмов.
Однако на данном этапе развития искусственного интеллекта естественный интеллект не только не уступает ИИ, но, напротив, становится всё нужнее, чтобы решать ещё более сложные задачи, в том числе в области данных. И если эта область интересна вам, вы можете присмотреться к программе нашего флагманского курса о Data Science, где студенты учатся смотреть на данные иначе и видеть в них то, чего сегодня не увидит ИИ.
![](https://habrastorage.org/getpro/habr/upload_files/a5b/956/143/a5b956143c330710fbf6f1ae1b814486.png)
Узнайте, как прокачаться и в других специальностях или освоить их с нуля:
Другие профессии и курсы
ПРОФЕССИИ
КУРСЫ