Пример обучения без знания предметной области.

Мотивация

При разработке лекарств скрининг - важная часть процесса раннего открытия. Цель этого скрининга - найти молекулы, которые связывают мишень прочно и достаточно специфично, чтобы иметь клиническую пользу. Ученые наняли лабораторию, чтобы синтезировать всевозможные молекулы, надеясь улучшить их силу связывания. Этот процесс часто руководствуется эмпирическим пониманием взаимодействия лекарственного средства с мишенью. Таким образом, естественно спросить, можно ли разумно «разработать» лекарство, точно так же, как сконструирован смартфон для достижения заранее определенного набора целевых показателей эффективности.

С появлением квантовой механики и молекулярной динамики ученые смогли предсказать взаимодействие между молекулами in silico. Однако для этого требуются глубокие знания предметной области и дорогостоящие вычислительные ресурсы. Развитие высокопроизводительного скрининга также способствовало накоплению большого набора экспериментально определенных сил связывания за последние несколько десятилетий. Тем не менее, люди хотят иметь более быстрый и точный способ получения прочности связывания.

Можем ли мы использовать совокупный эффект всех предыдущих усилий и использовать инструменты из другой области для продвижения вперед? Это цель недавних задач машинного обучения под названием IDG-DREAM Drug-Kinase Binding Prediction Challenge. Этот проект посвящен взаимодействию между лекарствами и киназами. Киназа - это класс белков, критических для неконтролируемого распространения злокачественных клеток, или рака. Ученые успешно разработали лекарства, которые прилипают к определенным киназам и, таким образом, останавливают прогрессирование этого ужасного заболевания. Для борьбы с различными видами рака крайне необходимо больше лекарств с сильными связывающими свойствами.

Предсказание связывания лекарственного средства с киназой, по сути, представляет собой кроссворд без подсказок, как это хорошо проиллюстрировано на следующем рисунке:

Задача состоит в том, чтобы предсказать недостающую силу связывания (крестики) на основе известных данных (желтый). Как показано выше, существует четыре различных сценария в зависимости от того, включает ли предсказываемая пара связывания ноль, один или два препарата или киназы, которые никогда не были охвачены известными данными.

Такое представление проблемы напоминает хорошо известную задачу машинного обучения - совместную фильтрацию. Впервые он оказался в центре внимания Netflix в своем призе в миллион долларов. Мы можем думать о силе связывания лекарства и киназы как о том, насколько лекарство любит киназу. Приз Netflix задает те же вопросы: предсказать, как пользователь оценит фильм, основываясь на том, как пользователь оценивает другие фильмы и как ход оценивается другими пользователями. Это первый сценарий на рисунке выше.

Библиотека Fastai и ее простое применение для решения проблемы связывания лекарственного средства с киназой

Fastai, стремясь снова сделать нейронные сети неохлаждаемыми, позволяет людям с относительно меньшим уровнем подготовки в области разработки программного обеспечения реализовывать современные нейронные сети, включая модели совместной фильтрации. Ведущий автор этой библиотеки считает, что нейронные сети достигли точки, когда можно разработать достойную модель для широкого спектра наборов данных, следуя очень небольшому набору лучших практик. Следовательно, его применение больше не ограничивает то, насколько хорошо человек умеет кодировать и насколько опытен он может настраивать модель. Вместо этого ключом является правильное построение модели на основе уникального понимания предметной области. В проблеме связывания лекарственного средства с киназой совместная фильтрация не является сложной задачей, по крайней мере, на первый взгляд.

Данные по связыванию лекарств с киназой можно скачать здесь. Он обеспечивает большой набор измерений сродства между лекарствами и киназами. Для простоты я начал с Kd, или константы диссоциации. Чем прочнее связывание, тем ниже Kd. Доступно 32536 измерений. Небольшой набор показан ниже:

Обратите внимание, что для моделирования будет использоваться логарифм Kd.

Тренировочный процесс состоит из нескольких этапов:

  • Генерировать данные - реорганизуйте данные в пакетах для обработки графическим процессором.
  • Настройте ученика - выберите подходящую модель для обучения.
  • Найдите скорость обучения - выберите, насколько «агрессивно» ученик исследует пространство параметров, чтобы найти золотую середину.
  • Поезд - используйте данные для оптимизации модели.

Благодаря библиотеке fastai каждый шаг включает буквально одну (1) строку кода. Конечно, это ванильная модель. Опытные пользователи могут создавать более сложные модели, изменяя внутренний механизм библиотеки.

Вот снимок кода, реализующего описанные выше шаги:

Kd_data = CollabDataBunch.from_df(df_Kd, user_name=’compound_id’,
                                         item_name=’target_id’,
                                         rating_name=’KDLog’, 
                                         pct_val=0.1,
                                         seed=40)
Kd_learn = collab_learner(Kd_data, n_factors=20, 
                                   y_range=[-15, 25], 
                                   wd=1e-2)
Kd_learn.lr_find()
Kd_learn.fit_one_cycle(5, lr=5e-3)

Давайте сначала проверим, насколько хорошо мы можем «угадывать» без совместной фильтрации? Если мы «угадываем» неизвестный Kd, генерируя гауссовское случайное число, среднее значение и стандартное отклонение которого рассчитываются на основе известных Kd, не будет очевидной корреляции между предсказанием и фактическим Kd, как показано ниже. Распределение ошибки предсказания выглядит как очень широкое распределение Гаусса.

С моделью, которую мы обучили, результаты намного лучше.

Вспомните четыре сценария, показанные на первом рисунке, эта модель работает только с первым. Фактически, если мы исследуем предсказание модели, некоторые загадочные составные_id отображаются как # na #. Эти соединения не были охвачены обучающим набором данных. То же самое и с киназами (столбец «target_id»).

Если мы просто проигнорируем эти элементы, качество прогноза улучшится, как и ожидалось.

Для этой модели точная настройка включает настройку следующих трех параметров:

  • wd или уменьшение веса: этот параметр управляет регуляризацией. Проще говоря, больший wd больше наказывает за переобучение.
  • n_factor или количество факторов: суть совместного фильтра состоит в том, чтобы предположить, что существует определенное количество факторов, характеризующих лекарство и киназу. В пространстве, определяемом этими «скрытыми» факторами, лекарство или киназа представлены точкой. Если точка наркотика и точка киназы более или менее указывают в одном и том же направлении от источника, их взаимодействие будет сильнее.
  • lr или скорость обучения: это контролирует размер шагов, предпринимаемых учащимся при поиске глобального минимума во время исследования «жесткого» пространства параметров.

Раньше считалось, что для оптимизации модели путем настройки этих параметров требуется опыт. Действительно, от него зависит, работает модель или нет. Вклад fastai в том, что он обеспечивает легкий доступ к этим важным параметрам. Ведущий автор, Джереми, также утверждает, что существует набор «хороших» параметров, которые неплохо работают для разных наборов данных. В нашем конкретном режиме лекарственной киназы поиск по сетке параметров показал, что скорость обучения является наиболее важным гиперпараметром. Оптимальное значение скорости обучения примерно такое же, какое нашел Джереми для модели MovieLens - прогнозировать рейтинг фильма пользователем.

Для wd или n_factors всегда есть хорошие комбинации параметров, но для плохого lr будет сложно получить хороший результат.

Что мы можем предсказать?

Как обсуждалось выше, здесь рассматривается только первый сценарий. Остальные три часто называют проблемой «холодного пуска». Поскольку наши скрытые факторы были получены в процессе подгонки эмпирической модели, концептуально очень сложно придумать набор скрытых факторов для тех, кто вообще не имеет каких-либо эмпирических данных. Если прогноз основан на врожденных свойствах молекул или их комбинации, проблема холодного старта больше не является проблемой. Этот подход, основанный на метаданных, включает нетривиальную разработку функций и обширные знания предметной области. Тем не менее, совместная фильтрация может помочь в разработке функций, как показано Джереми в наборе данных Россмана. В проблеме лекарственной киназы, если мы считаем, что набор латентных факторов из совместной модели является разумным, возможно, удастся придумать другую модель, которая сможет хорошо предсказать латентные факторы, используя структурные свойства молекул. Затем эту модель можно использовать для решения проблемы холодного запуска. Модель, связывающая метаданные и латентные факторы, может выиграть от подхода трансферного обучения.

Чтобы проиллюстрировать значимость латентных факторов, мы можем выполнить анализ главных компонентов, чтобы объединить латентные факторы в три «главных» фактора. На следующем графике показано положение некоторых киназ в 2D-пространстве, определяемое двумя основными факторами. Эти соседние киназы должны обладать схожими свойствами.

Более строгий подход состоит в том, чтобы найти соседей каждой киназы в их пространстве главных компонентов или даже в пространстве скрытых факторов. Scikit-learn реализует различные подходы к поиску соседей. Биохимик может проверить результат, чтобы понять, имеет ли он смысл.

Например, P00519 (строка 0) и его ближайший сосед P51451 являются тирозиновой протеинкиназой. Это не должно вызывать удивления, поскольку это очень распространенная лекарственная мишень, и в этом наборе данных в любом случае содержится много киназы. Другой пример: P00533 (линия 1) - это рецептор эпидермального фактора роста, а его ближайший сосед P47747 - это гистаминовый H2-рецептор. В качестве последнего примера, P00918 (линия 4) - это рецептор ретиноевой кислоты альфа, а его ближайший сосед P10276 - карбоангидраза II. Действительно ли эти пары связаны функционально? Помните, что вам совсем не нужно разбираться в биохимии, чтобы достичь этого.

По сути, мы хотим знать, полезен ли этот метод для открытия лекарств. Еще предстоит проделать большую работу, чтобы модель была достаточно точной, чтобы ученые не работали на стенде.

  • модель могла бы использовать более точную настройку.
  • Известно, что результат измерений имеет большие полосы погрешностей и широкий спектр форматов / условных обозначений.

Таким образом, дальнейшее сотрудничество между экспериментаторами и разработчиками моделей критически важно для того, чтобы сделать совместную фильтрацию, а также другие подходы к машинному обучению более интеллектуальными.

Для заинтересованных, Jupyter Notebook можно найти здесь. Обращаем ваше внимание, что эта работа носит предварительный характер.

См. Часть 2 для дальнейшего обсуждения знаний в предметной области и другого набора данных.

Примечание редакторам Data Science. Хотя мы разрешаем независимым авторам публиковать статьи в соответствии с нашими правилами и рекомендациями, мы не поддерживаем вклад каждого автора. Не стоит полагаться на работы автора без консультации с профессионалами. См. Подробности в наших Условиях для читателей.