РАБОТА · 20 сентября 2017, 09:10 · DianaVasileva - Author в dev.by
Кто такой Data Scientist и как им стать. Часть 1: советы от «Яндекса»

Серия успешных сделок белорусских стартапов в области компьютерного зрения и машинного обучения подтолкнула нас к запуску цикла материалов о том, как стать специалистом в этих областях. Сегодня сотрудники минского подразделения «Яндекс» расскажут, чем у них занимаются Data Scientist’ы и что учить, чтобы попасть к ним в команду. Слово — руководителю группы разработки факторов Тимофею Хаткевичу и руководителю бригады акустических моделей Алексею Колесову.

Иллюстрация: Medium

Задачи Data Scientist’ов в «Яндексе»

Перед Data Scientist’ом в «Яндексе» стоит много разных задач: от моделирования человеческой речи до подтверждения или опровержения гипотез о том, делает ли пользователя счастливее дополнительная кнопка на странице почты. Продукты «Яндекса» ежедневно используют миллионы человек, без Data Science проанализировать такой поток данных невозможно.

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

Если хочется заниматься такого рода проектами, приходите собеседоваться, в минском офисе открыта вакансия

Проблема: 95% студентов даже не будет пытаться понять

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

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

Поэтому можем посоветовать практико-ориентированную магистратуру «Алгоритмы и Системы обработки больших объёмов информации», которая уже третий год работает на базе ФПМИ БГУ. Её идейный руководитель, наш коллега Алексей Толстиков делает очень сложное и очень полезное дело по созданию современной специальности. Там читают сложные, современные курсы про алгоритмы обработки больших данных, информационный поиск, unix-системы, machine learning и другое. Занятия ведут ребята, которые используют свои знания в работе, так что иногда программа опережает университетскую на десятилетия. Кроме того, Алексей курирует минский филиал Школы анализа данных Яндекса.

Самостоятельное обучение: с чего начать

Существует целая научная область, которая занимается вопросами применения Computer Science, Data Science и Machine Learning в задачах информационного поиска. Она так и называется — Information Retrieval. Классическая книга про информационный поиск, с которой можно начать знакомство, — «An Introduction to Information Retrieval». Эта книга была переведена на русский язык при поддержке «Яндекса». В книге в основном рассказывается о поиске текстовой информации, о том, как функционируют системы веб-поиска и их элементы. Другая хорошая книга про веб-поиск — от Stefan Buttcher из Google.

В задачах инфопоиска используются методы обработки текстов (natural language processing), машинное обучение (machine learning), статистический анализ данных, а также алгоритмы, эффективно работающие на больших объёмах данных, и распределённые системы. В зависимости от задач, которыми вы хотите заниматься, нужно глубже погрузиться в изучение некоторых из этих дисциплин. Если речь идёт не о поиске текстовой информации, а о видео или изображениях, то полезно познакомиться с дисциплинами про обработку изображений.

Сейчас в Минске есть две возможности получить образование в Information Retrieval:

  • Магистратура «Алгоритмы и Системы обработки больших объёмов информации» ФПМИ БГУ. В программе читают курсы по информационному поиску и смежным дисциплинам.
  • Школа анализа данных «Яндекса». Курсы в ШАД читают одни из лучших специалистов в своих областях, многие из них работают в «Яндексе». С некоторыми курсами можно ознакомиться в открытом доступе.

Если хочется узнать о последних достижениях в области информационного поиска, то советуем следить за публикациями на тематических конференциях. Основные: SIGIRWSDM, CIKM, WWW, KDD. Также есть летние школы, посещение которых может быть полезно как студентам и аспирантам, так и начинающим специалистам: European Summer School in Information Retrieval и Russian Summer School in Information Retrieval.

Математическая статистика. Можно ли без неё?

Если говорить в целом про Data Science/Machine Learning, то для серьёзного понимания и работы нужен фундаментальный курс теории вероятности (а значит, и математического анализа как необходимого инструмента в теории вероятности), линейной алгебры и, конечно, математической статистики. Фундаментальные математические знания важны для того, чтобы уметь анализировать результаты применения алгоритмов обработки данных. Есть примеры сравнительно сильных инженеров в machine learning без такого бекграунда, но это, скорее, исключение.

Если университетское образование оставило много пробелов, рекомендуем книгу «The Elements of Statistical Learning» от Hastie, Tibshirani и Friedman. В этой книге классические разделы машинного обучения изложены с точки зрения математической статистики со строгими математическими выкладками. Несмотря на обилие математических формулировок и доказательств, все методы сопровождаются практическими примерами и упражнениями.

Лучшая книга на данный момент, чтобы разобраться в математических принципах, лежащих в основе нейронных сетей — «Deep Learning» от Ian Goodfellow. В ней во введении есть целый раздел про всю математику, которая нужна для хорошего понимания нейронных сетей. Еще очень хорош сайт-книга от Michael Nielsen — это может и не фундаментальный труд, но для понимания основных принципов очень пригодится.

Языки программирования и фреймворки: от ipython до pandas

Для аналитики и экспериментов с ML-моделями хорошим выбором будет ipython и python-библиотеки scikit-learn, scipy, matplotlib, numpy, pandas. Если хочется развернуть поисковую систему на каком-то наборе данных, то можно воспользоваться достаточно мощными open-source движками elasticsearch или apache solr.

Касательно алгоритмов машинного обучения, для задач ранжирования результатов поиска хорошо работают алгоритмы градиентного бустинга на деревьях. Одна из наиболее популярных реализаций на данный момент — xgboost. Яндекс недавно выложил в opensource свою версию алгоритма — CatBoost, которая в большинстве задач не уступает конкурентам.

Нейросетевые технологии в поиске

Группа разработки факторов в «Яндексе» занимается задачами веб-поиска, т.е. по текстовому запросу пользователя мы должны найти интернет-страницу, содержащую релевантную информацию (как правило, тоже текстовую). Соответственно, интересны те архитектуры нейронных сетей, которые позволяют хорошо описывать закономерности в текстовых данных. В основном это рекуррентные нейронные сети, использующиеся для sequence-to-sequence learning, word2vec и архитектуры наподобие DSSM.

Вот очень хороший обзор нейросетевых технологий в задачах информационного поиска. В обзоре есть ссылки на большинство последних достижений в предметной области. Также можно ознакомиться с презентацией коллег из Microsoft Research c конференции WSDM'17.

Создайте сеть, которая отличает ваш голос от лая собак

Каждая нейронная сеть решает свою очень узкую задачу. Сеть, которая различает котиков и собак, отличается не только от сети, которая распознаёт речь, но даже от сети, которая различает котиков и кроликов. А значит, для каждой сети данные нужно брать из разных источников. Хотите обучить сеть, которая отличает ваш голос от лая вашей собаки, — запишите в домашних условиях по 10 часов того и другого — обучите сеть.

Захотели сеть, которая понимает, какой фильм вы имеете в виду, когда не можете вспомнить название — сохраните на компьютере петабайт пользовательских запросов и правильных ответов — обучите сеть. Ну а чтобы научиться работать с нейронными сетями (и другими алгоритмами machine learning), можно взять данные, которые есть в открытом доступе, например, на соревновательном сайте Kaggle или специализированном.

Будущее нейросетей

Нейросети – это мощный инструмент, но у него есть свои ограничения. Он нужен и полезен далеко не во всех задачах. Машинное обучение тоже важно и полезно, но есть много других не менее важных инструментов. Само по себе машинное обучение — это всего лишь один из методов решения задач. Причем не всегда самый подходящий. Например, интерпретация результатов применения нейронных сетей до сих пор вызывает большие трудности. Сами технологии становятся все доступнее широкому кругу людей, специалистов также становится больше. Со временем всё, что связано с машинном обучении, будет вызывать всё меньший ажиотаж.

 

Источник: dev.by
Новые комментарии

Обсуждение

Missing

сломал мозг пока прочитал

Missing-female
+1

Раз уж упоминается магистерская программа «Алгоритмы и Системы обработки больших объёмов информации», почему бы не упомянуть более релевантную анализу данных программу «Прикладной компьютерный анализ данных» на том же ФПМИ? Кроме того, есть магистерская программа, аналогичная указанной в статье, на базе кафедры Информатики БГУИР - «Обработка больших объемов информации».

Picture_1216?1356409833
AnthonyBY
– гребец в галеры

Большой минус «Алгоритмы и Системы обработки больших объёмов информации» — в том что там нет заочки. И всё таки сотрудничество с Яндексом делает «Обработка больших объемов информации» куда более перспективной чем «Обработка больших объемов информации» (о которой на сайте БГУИР ни ответа ни привета)

Missing-female
+1

Ну, мне хватило вот этой информации:

https://www.bsuir.by/ru/magistratura/spetsialnosti

https://www.bsuir.by/ru/magistratura-uchebno-programmnaya-dokumentatsiya,

https://www.bsuir.by/ru/programmy-vstupitelnykh-ekzamenov-v-magstraturu

К слову, информация о магистратуре ФПМИ похуже будет.

Picture_1216?1356409833
AnthonyBY
– гребец в галеры

+1

Спасибо за ссылки (из списка специальностей я сперва не нашёл вступительные экзамены и программу обучения)

Missing
antonkw
– Software Engineer в ISsoft

+2

Уже начинал готовиться к поступлению, но все разбилось о:

1)Пары 3 раза в неделю с 17:30. Звонил-уточнял, там это выставляется как мегабонус в плане совмещения с работой. Так что люди, работающие со штатами, автоматически отсеиваются. И да, посещение контролируется.

2)Поговорил с людьми, которые там уже посдавали сессии. Даже от тех, кто поступал осознанно и целенаправленно, услышал много негатива.

Касательно второго пункта можно/нужно поспорить, а вот первый стал для меня преградой. Решил, что не готов увольняться с нормальной работы, чтобы тратить ~20 часов в неделю на пары.

Picture_1216?1356409833
AnthonyBY
– гребец в галеры

ого, таки с 17:30 не так критично (я работаю с UK).

Если не сложно, подскажите пожалуйста как вы закрывали пробелы в математике? Calculus One на курсере + ещё какие-то курсы?

http://elib.bsu.by/bitstream/123456789/171664/1/60-ВМ-2017.pdf

Missing
antonkw
– Software Engineer в ISsoft

+1

Calculus One на курсере взял на заметку, спасибо.

Уже начинал готовиться - это сильно сказано. Нашел программу экзамена и прикинул, что теоретически могу успеть. Но после разговора с преподавателями и учащимися слился :)

Возможно будет полезной ссылка с литературой от людей из яндекса: https://github.com/demidovakatya/mashinnoye-obucheniye/tree/master/1-mathematics-and-python

Picture_1216?1356409833
AnthonyBY
– гребец в галеры

спасибо, хорошие книги

p.s. я уже третий год прикидываю )

Missing

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

Picture_1216?1356409833
AnthonyBY
– гребец в галеры

+1

там всё у них с этим хорошо (но не уверен что в Яндексе так же)

For people with the title "Data Scientist" listed on their site, the median salary is $120,000 and median is $112,000. 4. Glassdoor includes crowdsourced salary data. According to their site, people with the "Data Scientist" title in the Bay Area make an average of $126,000.

Cd80fc002ca1a97ebd5784b80586f09c?1508797093
+1

В вакансии указано C++, тогда как основной язык в этой сфере сейчас - Python (указан только в секции "рекомендуется знать тоже") - что за перекос?

Список ссылок напоминает стандартный диалог на форумах, когда на вопрос "с чего начать учить программирование" - отвечают рекомендациями почитать вначале (всего) Кнута и Страуструпа. Результат совета очевиден

Missing-male
+3

толково, по делу, без лишней воды

ребятам виртуально жму руку. Пример статьи, которых очень не хватает на ресурсе, посвященном работе в ИТ.


Авторизуйтесь, чтобы оставлять комментарии

Использование материалов, размещенных на сайте, разрешается при условии прямой гиперссылки на dev.by. Ссылка должна быть размещена в подзаголовке или в первом абзаце публикации.
datahata — хостинг в Беларуси