Исследователи из Сколтеха, МГУ имени М.В. Ломоносова и компании Syntelly разработали и обучили нейронную сеть для генерации названий органических соединений в соответствии с системой наименований химических соединений ИЮПАК. На этом примере они показали, что современным нейросетям по силам решать точные алгоритмические задачи. Статья с описанием исследования опубликована в журнале Scientific Reports.
В химии существует общепринятый язык для записи названий органических соединений — номенклатура ИЮПАК, Международного союза теоретической и прикладной химии. Например, привычная всем сахароза называется (2R,3R,4S,5S,6R)-2-[(2S,3S,4S,5R)-3,4-дигидрокси-2,5-бис(гидроксиметил)оксолан-2-ил]окси-6-(гидроксиметил)оксан-3,4,5-триол, а популярное лекарство парацетамол — это N-(4-гидроксифенил)ацетамид.
Такое название вещества полностью отражает его химическую структуру, поэтому для сложных молекул названия по номенклатуре ИЮПАК могут оказаться весьма громоздкими. При этом ошибка даже в одном символе будет критичной, то есть использование номенклатуры ИЮПАК требует от химика внимательности и хорошего знания ее многочисленных правил. На рынке есть коммерческие программные продукты для компьютерной генерации названий по ИЮПАК, но нет программ под свободной лицензией.
«Изначально мы хотели создать генератор названий по ИЮПАК для Syntelly, нашей платформы искусственного интеллекта в химии. Осознав, что создание алгоритма путем оцифровки правил ИЮПАК может занять больше года, мы решили воспользоваться нашим опытом создания нейросетевых решений», — говорит Сергей Соснин, руководитель исследования, научный сотрудник Сколтеха и сооснователь стартапа Syntelly.
Исследователи взяли за основу Трансформер, одну из самых мощных современных нейросетей, созданную компанией Google для машинного перевода с одного языка на другой. Команда обучила Трансформер «переводить» молекулу из структурного представления в наименование по ИЮПАК и наоборот.
Для обучения и тестирования сети авторы исследования использовали самую большую в мире открытую базу PubChem, содержащую около 100 миллионов соединений. Нейросеть, созданная примерно за полтора месяца, оказалась способна «переводить» почти с той же точностью (около 99%), что и алгоритмические решения на базе химических правил.
Кроме того, исследование показало, что нейронные сети способны достаточно точно решать алгоритмические задачи. «И человек, и нейронная сеть хорошо справятся, к примеру, с задачей различения фотографий кошек и собак, для которой невозможно эффективное алгоритмическое решение без машинного обучения. В то же время человек плохо перемножает многозначные числа, а простейший калькулятор делает это мгновенно и с абсолютной точностью – это пример чисто алгоритмической задачи, как и генерация названий по номенклатуре ИЮПАК», — поясняет Соснин.
«Ранее господствовала парадигма, что нейросети не следует применять для решения таких «точных” задач, мы же показали, что это может быть разумной альтернативой сложным алгоритмическим решениям. В машинном переводе, например, допустимы замены слов на синонимы, но в нашей задаче ошибка даже в одной букве приводит к полностью неправильной молекуле. И тем не менее Трансформер успешно справляется с этой задачей», — добавляет ученый.
Разработанное решение внедрено в платформу Syntelly и доступно онлайн. Исследователи надеются, что их метод можно будет применять не только для перевода между химическими нотациями, но и для других технических нотаций, например, для генерации математических формул или трансляции компьютерных программ.
Комментарии