Великая работа по прикладной (данных) науке

Великая работа по прикладной науке' -> 'Великая работа по прикладной науке

Что помогает решать проблемы реальной жизни от начала до конца, от бизнес-требований до убедительной презентации результатов

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

Цель: Что такое успешная работа в области прикладной науки?

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

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

Успешная научная работа находит технически правильные и прагматичные решения: это может означать использование передовых методов глубокого обучения, но научная работа высокого уровня также может состоять из нескольких умных SQL-запросов. Великие ученые знают, как выбрать правильный инструмент для работы.

Великие ученые понимают, что легко застрять на неправильных технических подходах. Чтобы избежать этого, они структурируют свою работу инкрементально: они способны разбить большую проблему на более мелкие подпроблемы; они проверяют отдельные подходы, создавая промежуточные результаты, и активно запрашивают обратную связь у своих коллег.

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

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

Резюме: 4 принципа

Нижеследующие четыре принципа лежат в основе этих рекомендаций для работы в области прикладной науки в индустрии:

  1. Ответственность: Наша задача — решать неопределенные проблемы от начала до конца.
  2. Эффективное любопытство: Мы любим учиться. Идеально более эффективно, чем через грубую экспериментацию.
  3. Измерь дважды, режь однажды: В исследовательской работе ясное планирование помогает избежать заблуждений.
  4. Итеративные результаты: Частая обратная связь уменьшает неопределенность.

Путь: Что делает научную работу более успешной?

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

1. Роль прикладной науки

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

Работа с людьми

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

Выполнение

В рамках научной работы команды часто генерируют идеи на совместных встречах или в одиночку. Эти сессии могут быть чрезвычайно ценными и помогать создавать работу гораздо более высокого качества, чем любой отдельный человек мог бы сделать самостоятельно. Но если сессии мозгового штурма не связаны непосредственно с последующей работой, они часто бесполезны. Вам следует избегать последнего — это означает активное следование за обсужденными идеями и задачами: если команда согласилась, что что-то должно быть сделано, сделайте это (и сообщите о результатах). Если это слишком много для выполнения немедленно, напишите тикет для идей (и сообщите о тикете). Во время мозгового штурма часто полезно активно спрашивать о конкретных выводах и ответственных за следующие шаги — и это может делать любой участник команды, делясь своими заметками со всей командой.

Прозрачность и доверие

Не все идет по плану, и сущность научной работы заключается в том, что большинство экспериментов не удается. Ожидается, что планы не сработают так, как надеялись. Это делает научную работу деятельностью с высокой вариацией: даже если вы можете точно предсказать “ожидаемое значение” вашей работы, вероятно, случится что-то неожиданное.

Когда что-то не идет по плану, будьте полностью прозрачны. Более того, незамедлительно сообщайте своей команде, когда что-то идет не так. Это позволяет более эффективно координировать планы и результаты. Взамен ожидайте доверия: неудавшиеся эксперименты являются частью нашей повседневной работы.

Самым раздражающим результатом эксперимента является “неоднозначный” результат: эксперимент не совсем провалился, но и не удался. И они, тоже, являются частью научной работы, и они, тоже, заслуживают представления и обмена: можем ли мы сформулировать гипотезу, почему научная проблема не может быть решена? Если бы мы начали сначала, что бы мы сделали по-другому?

Когда вы работаете в команде, естественно не понимать все в презентации, разговоре или задаче. Однако проблематично просто кивать головой – когда другие предполагают, что вы поняли что-то, чего на самом деле не поняли, это скорее всего приведет к недоразумениям и несоответствию в результатах работы. Как ученые, “почему” должен быть нашим любимым вопросом: когда что-то неясно, продолжайте задавать вопросы, пока не почувствуете взаимопонимания. Если сомневаетесь, переформулируйте что-то своими словами – это мощный инструмент для проверки, правильно ли вы поняли.

2. Понимание бизнес-проблемы

Правильное понимание бизнес-проблемы часто является “более сложной” задачей, чем чистая научная работа: понятия не определены ясно, величины неизмеримы, цели заинтересованных сторон несогласованы. Но неправильное понимание проблемы, которую необходимо решить, ведет к разочарованию и уменьшает ценность прикладной научной работы – никакая научная сложность не сможет спасти это позже.

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

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

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

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

3. Исследовательские дорожные карты – это деревья гипотез

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

Важно, чтобы вы записали какую-то форму плана и ориентировались в нем по мере продвижения. Один из форматов, которые я нашел полезными, это концепты-карты или маркеры-точки, которые явно накладывают структуру дерева гипотез. Вот грубый “алгоритм” для создания такой карты:

  1. Сделайте мозговой штурм нескольких разных подходов к вашей проблеме; не забудьте искать существующие решения от других команд, в открытом источнике и в опубликованной литературе. Запишите их как “кандидатов”. Идея здесь в том, чтобы собрать широкий набор грубых идей.
  2. Оцените примерное усилие, необходимое для “проверки” подхода: это не усилие, необходимое для решения проблемы с использованием данного подхода, а усилие, необходимое для выяснения, будет ли подход, скорее всего, работать или нет.
  3. Упорядочьте свои подходы по оцененному усилию проверки.
  4. Начиная с подхода с наименьшим усилием проверки, проведите мозговой штурм о том, как проверить подход и, в конечном итоге, решите вашу (под-)проблему с его помощью. Рекурсивно продолжайте спускаться по дереву (т.е. для каждой подпроблемы начните с пункта 1). Повторяйте это для уровней дерева по мере необходимости.

Используя этот метод, вы идеально получаете хорошо структурированный, приоритизированный план о том, что пробовать в первую очередь, и что делать, когда идея работает (следовать этой ветке), а когда нет (продолжать работу на следующей ветке ниже текущей). “Листья” вашего дерева должны быть относительно легкими для тестирования вопросами, на которые можно ответить на основе данных. Структура вашего плана также должна облегчить описание прогресса и получение обратной связи по промежуточным результатам.

4. Прирост работы выигрывает от отличной интуиции

Самый неуловимый совет из всех: у великих ученых есть поразительная интуиция относительно того, какие подходы могут сработать, а какие даже не заслуживают ближайшего рассмотрения. Иногда это создает впечатление, что некоторые люди “просто все заставляют работать” — часто более точно сказать, что эти люди знают, что не стоит пробовать, и что они тратят большую часть своего времени на продуктивные идеи. Конечно, построение такого уровня интуиции сложно и требует целой жизни. Хорошая интуиция означает, что вы проводите большую часть времени над продуктивными гипотезами — это важно, потому что вселенная потенциальных гипотез и идей для исследования огромна, а интуиция сокращает пространство поиска в вашем дереве гипотез.

Интуиция является социальной

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

Построение интуиции особенно полезно при интерактивном обучении: рассмотрите дни парного программирования с коллегами и объясняйте друг другу концепции. Постарайтесь встретиться лично, а не только удаленно: по крайней мере, я еще не нашел полной замены для маркерной доски или двух и нахождения в одной комнате.

Сильные основы помогают

Инвестируйте в понимание основ: вы должны создать умственные модели того, как работают вещи. Они должны быть “достаточно правильными”, но достаточно простыми для применения в реальных ситуациях. Вы должны уметь переключаться между “мышлением в терминах черного ящика” на уровне архитектуры и пониманием внутреннего устройства черных ящиков, когда дело доходит до деталей. Чтобы сделать это более конкретным: при работе с изображениями или текстовыми данными идея использования “вложений” является хорошей интуицией, которая позволяет вам быстро построить умственную архитектуру потенциальных моделей. Но чтобы точно оценить возможность таких подходов, вам следует полностью понимать, как обучаются вложения и какое кодирование информации они дают в результате.

Любопытство

Будьте любопытны относительно похожих, но разных проблем. Думайте о том, в чем они похожи и в чем они отличаются. Думайте о том, как решения для вашей проблемы могут или не могут применяться к этим похожим проблемам. Некоторые примеры: эксперименты с заменяемыми продуктами связаны с экспериментами на социальных сетях (“эффект перелива”). Формирование цены на моду связано с формированием цены на авиабилеты (“товары с ограниченным сроком годности”). Сопоставление продуктов/сущностей связано с применением авторского права в музыке (“грубые + точные шаги сопоставления”).

Подумайте о своей предыдущей работе: когда вам приходилось что-то пробовать, потому что у вас не было сильной интуиции, что можно извлечь из вашего эксперимента? Есть ли общие истины, которые можно извлечь из эксперимента и которые могут помочь вам улучшить вашу интуицию?

Активно ищите критику ваших подходов: будь то часть “Обзора плана исследований” или часть вашего обзора завершенного проекта, различные мнения могут помочь вам уточнить свою интуицию и обнаружить слепые пятна.

5. Решайте проблему с использованием чистого кода

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

Однако, преждевременная “продукционизация” также может замедлить вас: пока решение неясно, должно быть легко заменить части вашего подхода.

Пишите код с учетом читателя

Когда вы пишете аналитические записные книжки, пишите их для читателя, а не только для себя. Объясните, что вы делаете. Используйте хорошие имена переменных. Очистите графики. Разметка ячеек была изобретена не просто так.

Думайте о принципе DRY (Don’t Repeat Yourself) в своем коде. Это особенно сложно при проведении исследовательской работы, характерной для прикладной науки. Когда вы замечаете, что копируете код из предыдущих исследований, возможно, пришло время провести рефакторинг.

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

Документация

Организация и обновление центральной базы знаний является одной из самых общих проблем в технических организациях, о которых мне известно. Я не знаю о простых решениях. Но я знаю, что вложения в хорошую документацию окупаются в долгосрочной перспективе. Для центральных знаний должно быть одно (и только одно!) центральное исходное место. Этот документ должен быть источником истины: если код не делает то, что говорит документация, то код ошибочен (а не документация). Это требует частого и легкого обновления документации: плохо написанная, но правильная и полная документация намного лучше, чем хорошо написанная, но устаревшая документация. Вложение в документацию – это продвигаемая работа, и я верю в ее влияние.

6. Представление, а не просто показ результатов

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

Каждый раз, когда вы представляете результаты, думайте о ожиданиях вашей аудитории. Для каждого утверждения (для каждого слайда; для каждого раздела в тексте) вы должны ответить на неявный вопрос «и что?» для аудитории. У разных аудиторий могут быть разные ожидания: старший бизнес-лидер, возможно, больше всего заинтересован в простой истории, которая передает суть ваших результатов и может легко быть поделена с другими старшими лидерами. Ваш руководитель, возможно, больше всего заинтересован в понимании того, как будет решена данная проблема и когда. Коллега, возможно, больше всего заинтересован в том, что он может извлечь из вашего подхода для своей собственной работы. Заинтересованная сторона или клиент захочет знать, какие новые решения или действия позволяет принять ваша работа.

Я замечаю, что многие ученые склонны следовать процессу своего открытия в своей презентации, начиная с первого эксперимента. Я настоятельно не рекомендую это, потому что это часто приводит к потере внимания людей до того, как вы даже перейдете к интересной части: вместо этого, начните с исходного бизнес-вопроса, на который вы пытаетесь ответить, и с вашего лучшего ответа на исходный вопрос. Затем опишите ваш общий подход и объясните, почему вы считаете, что ваш ответ – лучший, который вы можете дать. Предвидьте, какие вопросы вызывает ваша презентация, и подготовьте на них ответы. Самое главное – ответьте на вопрос «и что?» для каждого утверждения, которое вы делаете.

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

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

Четкая визуализация

Все графики должны быть самообъясняющимися и иметь четкое сообщение. Я настоятельно рекомендую следовать нескольким базовым правилам, даже при создании графиков только для себя.

  1. Подписывайте оси описательными описаниями: используйте слова, а не только буквы.
  2. Используйте четкие заголовки диаграмм, которые объясняют, что показано и основное сообщение (опять же, «и что?»).
  3. Сократите показываемые данные до необходимого: например, данные могут содержать категорию “Dummy”, которая явно не предназначена для использования. Не позволяйте этому засорять визуальное пространство на графиках.
  4. При отображении множества серий данных, отличающихся только цветом, убедитесь, что легенда цвета четко отличается (дополнительные баллы за дружественность к людям с цветовыми нарушениями зрения).
  5. Визуализация помогает понять закономерности в данных. Если график просто показывает хаотическое облако точек, его, вероятно, можно удалить (если вы не хотите доказать эту конкретную точку).
  6. Логарифмические шкалы часто помогают очистить графики (положительных) количественных данных.

Четкие числовые результаты

Всегда, когда представляете числовые результаты (например, в таблицах):

  1. Оптимизируйте и представьте соответствующую метрику успеха. Многие прикладные ученые уделяют этому слишком мало времени: знайте разницу между использованием RMSE / MAPE / MAE, логарифмическими шкалами, F1 в сравнении с ROC в сравнении с площадью под кривой точность-полнота.
  2. Почти все проблемы реального мира связаны с взвешенными метриками успеха, но большинство курсов по машинному обучению практически не касаются этой темы: метрика успеха прогноза продаж, например, может требовать взвешивания по ценам, стоимости запасов или габаритам упаковки в зависимости от сценария использования.
  3. Если успех означает оценку контрфактуальных ситуаций (“что если” анализ), сделайте это явным и найдите ясное объяснение, как ваша метрика успеха улавливает такие контрфактуальные ситуации. (Естественные) эксперименты являются популярным выбором.
  4. Предоставьте разумные точки отсчета для любого числа, которое вы представляете. Часто определение “правильной” точки отсчета требует тщательного размышления, но это всегда стоит того. Вы построили сложную модель машинного обучения? Насколько она лучше, чем линейная регрессия? Вы составили прогноз на следующую неделю? Насколько он лучше, чем предположение, что следующая неделя будет такой же, как текущая? Вы представляете результаты A/B-теста? Насколько это увеличение по сравнению с нашим ежемесячным доходом или по сравнению с последним улучшением?

Спасибо за то, что дочитали до этого момента! Я хотел бы услышать ваш отзыв: Что прозвучало знакомо? В чем отличается ваш опыт? И что еще помогает решать ценные проблемы реального мира от начала и до конца?

Фото от NASA на Unsplash