Техносфера Mail.Ru: проекти студентів, лабораторія та чемпіонати з Data Science

З 2014 року в МДУ їм. М. в. Ломоносова діє освітня програма в області Data Mining та інформаційного пошуку від Mail.Ru Group. Її студенти вивчають різні дисципліни у цій сфері та проходять стажування у відповідних підрозділах компанії, а також в лабораторії при МДУ, яку ми відкрили восени 2014 року. Ми вже писали про Техносферу тут і тут, а в цій статті хочемо докладніше розповісти про програму навчання, її результати, про діяльність лабораторії в стінах університету, а також взяти невеличке інтерв'ю у стажистів програми.



Програма Техносфери
В даний час програма складається з чотирьох семестрів і десяти дисциплін, деякі з них річні (йдуть два семестри). В рамках кожної дисципліни робиться акцент на практику, студенти виконують проект індивідуально або в групах. Спочатку програма Техносфери була річний, але досить скоро ми зрозуміли, що цього недостатньо, і вирішили розширити її до двох років, збільшивши тривалість вивчення деяких дисциплін. Додали ми тільки одну дисципліну «Введення в аналіз даних», куди винесли деякі необхідні аспекти з області математики і статистики, а також головні теми по використанню інструментарію (мови програмування, бібліотеки тощо). З лекціями за цим курсом можна ознайомитися на нашому YouTube-каналі. Інші дисципліни ми розширили. Зокрема, до многопоточному програмування на З++ додалася частина з поглибленого вивчення С++, а блок з інформаційного пошуку став ключовим.

Також, щоб допомогти тим, хто приходить з непрофільних факультетів, ми додали підготовчий курс «Алгоритми та структури даних». На цьому курсі хлопці аналізують різні базові алгоритми і навчаються обґрунтовано вибирати структури даних для конкретних завдань. Ці лекції також доступні у відповідному плейлисті на YouTube.

Розробляються навчальні проекти (кілька цікавих прикладів)
Введення в аналіз даних. протягом семестру учні мають виконати відтворюване дослідження, засноване на відкритих даних. Робота ведеться в групах по 4-6 чоловік, у кожної команди своя тематика. Дослідження виконується в Project Jupyter, дозволяється використовувати мови Python, R, Java; в основу повинна бути покладена методологія, схожа з CRISP-DM, яка визначає етапи дослідження.

В якості вихідних дата-сетів хлопцям пропонується кілька на вибір (відкриті дані уряду США, дані соціологічної служби США, дані ООН, портал відкритих даних Європейського союзу), також можна самостійно знайти інший дата-сет.

Алгоритми інтелектуальної обробки великих обсягів даних. Вирішується завдання класифікації користувачів соціальної мережі Twitter. В якості вхідних даних студентам видається список ідентифікаторів користувачів, для частини з них дана категорія, до якої належить користувач. Прикладом категорії може бути захоплення комп'ютерними іграми (захоплюється / не захоплюється). Мета проекту — створити алгоритм, який найбільш точно передбачить категорію тих користувачів, для яких вона не дана. В ході виконання студенти самостійно збирають дані, використовуючи відкриті API веб-сервісів, реалізують і застосовують різні алгоритми конструювання і відбору ознак, а також алгоритми машинного навчання.

Методи обробки великих обсягів даних. Підсумковий семестровий проект присвячений визначенню наявності мутації в клітинах. Для цього використовувався дата-сет p53 Mutants, особливістю якого є зміщене розподіл міток: менше 1% позитивних семплів. Робота може бути виконана на будь-якій мові програмування, але найчастіше хлопці використовують Python і C++.

Дворічне навчання хлопців буде завершувати семестр повністю присвячений розробці випускного проекту в командах. Яким він буде — розповімо навесні наступного року, коли діти довчаться до четвертого семестру.



Де стажуються студенти?
Знання та навички, які отримують студенти в рамках Техносфери, можуть бути застосовані в різних підрозділах — рекламних технологій (таргетинг реклами, категоризація новин), Пошук Mail.Ru, Антиспам. У даний момент із 23 випускників Техносфери 12 є стажистами в проектах Tarantool, Мій Світ, Пошта та деяких інших. Ми попросили поділитися своїми враженнями.

Святослав Фельдшерів

— якому підрозділі працюєш?

— Я працюю у підрозділі Tarantool близько трьох місяців. Вибрав саме його, тому що більш-менш уявляв, чим займається команда, і сподобалася атмосфера всередині. Крім того, наш керівник, Костянтин Осипов, читав в Техносфери семестровий курс, це було складно і по-своєму чудово: відразу знав, що у нього величезна кількість крутих завдань.

— Які завдання вирішуєш?

— Я працюю над великою і ємною завданням — впровадженням підтримки SQL в Tarantool. Крім мене, їй займається ще один випускник Техносфери. Справа в тому, що зараз спілкування з Tarantool відбувається мовою Lua, а ми реалізуємо можливість використання SQL. Основна ідея — щоб більше користувачів могли працювати з нашою системою. Пишемо в основному на С і С++.

— Де застосовуються результати роботи?

— Поки не застосовуються. Ми робимо прототип, а потім буде стадія рефакторінгу і велика переробка наших результатів більш досвідченими учасниками. Загалом, нам належить ще довгий шлях.

— Які плани розвитку — в яких підрозділах хотів би працювати?

— Мені подобається те, чим я зараз займаюся. Якщо все складеться і зрозумію, що це моє, хочу заглибитися в цю область. Але іноді почитаєш статті, поспілкуєшся з товаришами, і дуже хочеться кинути все і продовжити займатися аналізом даних (це було основне напрям навчання у Техносфери). Але поки ще зовсім незрозуміло, як складеться. Час покаже.

Михайло Галков

— якому підрозділі працюєш, як враження?

— Я працюю у відділі рекомендаційних систем, хоча очікував, що буду працювати в Пошуку. Про рекомендаційні системи я знав небагато, познайомився тільки на лекції Техносфери, тому перший час довелося надолужувати знання і читати багато наукових статей по темі, але вистачало мотивації: перед нами стояли дуже амбітні завдання, які дійсно цікаво вирішувати. З того, що розповідали на лекціях, майже всі так чи інакше підтвердилося. Big data дійсно «big». Розуміння алгоритмів та інструментів для їх обробки дуже допомогло, також майже вірним виявилося розподіл часу на роботу з даними/алгоритмами, для себе я оцінюю приблизно 70 на 30.

— Які завдання вирішував на самому початку стажування?

— Перший час я розбирав статті з різними алгоритмами, досліджував їх особливості і порівнював з різних метрик.

— Які завдання вирішуєш зараз?

— В основному я займаюся побудовою алгоритмів для нашої універсальної рекомендаційної системи і підготовкою даних.

— Де застосовуються результати роботи?

— В Однокласниках та на головній Пошуку.

— Які плани розвитку — в яких підрозділах хотів би працювати?

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

— Які твої враження про наставника?

— Мені дуже пощастило, що Дмитро Соловйов виявився моїм наставником. Крім корисних зауважень і допомоги у постановці цілей і їх досягнень, я особливо ціную обмін новими ідеями і готовність пробувати нове.

Лабораторія Техносфери для студентів


Восени 2014 року, через півроку після запуску Техносфери, ми вирішили відкрити власну лабораторію, де студенти нашого проекту могли б працювати над реальними завданнями від підрозділів компанії. Найбільш зацікавленим в делегування завдань студентам виявилося одне з підрозділів департаменту рекламних технологій, яке займається сегментированием аудиторії. Ми поставили керівнику цього підрозділу, Артуру Кадурину, кілька запитань. Нижче читайте наше інтерв'ю.

— Які завдання ставилися перед хлопцями при проектуванні лабораторії?

— Спочатку ми планували давати дітям різні завдання — і дослідні та прикладні. Але нам як бізнесу складно було повірити, що студенти зможуть виконувати частину завдань віддалено, поза стінами компанії, адже нам важливо, щоб завдання було не просто виконано, а виконана своєчасно. При цьому нам дуже хотілося спробувати попрацювати зі студентами, і ми виділили серед усіх завдань, які вирішувалися підрозділом, найкращу для віддаленої роботи — це актуалізація категорій всередині каталогу рекламних рубрик. Вона важлива як для користувачів нашої системи (рекламодавці зацікавлені у виборі цільової аудиторії, щоб можна було більш ефективно витрачати рекламний бюджет), так і для відвідувачів сайтів, на яких працює наша рекламна система (їм менше показується нецікавою реклами, менше негативу до банерів).

— А хто працює в лабораторії?

— У нашому підрозділі на момент створення лабораторії вже працювали два співробітника — випускника Технопарку з МДТУ їм. Баумана, тому спочатку при проектуванні лабораторії був план набрати близько десяти лаборантів з усіх освітніх програм. Але, так як запропоновані завдання досить специфічні і вимагають підготовки, вирішили набирати хлопців тільки з Техносфери.

Всього в один момент часу в лабораторії працює близько восьми осіб. На жаль, є плинність. Вона пов'язана з тим, що програма була річний і після закінчення Техносфери хлопці переходили в підрозділи компанії. Тепер, коли програма триває два роки, ситуація покращилася.

— Які завдання вирішує лабораторія?

— Зараз у нас є кілька принципово різних типів завдань. Обов'язкова частина роботи — це, по суті, асессорская розмітка. Хлопці збирають тематичні сайти і сторінки, пишуть регулярні вирази або підбирають ключові слова, для того щоб ми могли точніше розуміти інтерес користувача або те, що інтерес змінився. Крім того, вони самі оцінюють якість роботи своїх колег, перевіряючи на анонимизированных даних, чи правильно система розмічає сторінки, і виправляють помилки. Мабуть, ця робота займає найбільше часу.

Однак істотна частина процесу розмітки так чи інакше автоматизується, і вагому частку цієї автоматизації роблять хлопці. Вони пишуть сценарії для обробки дерева сайту, збору ключових слів і підготовки даних для написання регулярних виразів, а також автоматизують саме складання регулярних виразів.

Очевидно, що ми працюємо з величезною кількістю доменів і ще більш величезною кількістю сторінок, тому зібрані дані часто доводиться зберігати і обробляти засобами Hadoop, тоді хлопці самі пишуть MapReduce-завдання і запускають їх на нашому навчальному кластері.

Як би те ні було, частина роботи, а саме експертну оцінку, автоматизувати не можна. І основна цінність роботи лаборантів для нас — ця сама «людська» експертиза. Перший час ми думали, що добре б встигати повністю оновлювати каталог тематик раз на рік, зараз, в тому числі завдяки автоматизації, запропонованої лаборантами, ми вкладаємося в 4-6 місяців і, швидше за все, ще прискоримося.

Крім завдань, пов'язаних безпосередньо з тематичним каталогом, з кінця минулого року ми вирішили займатися в лабораторії дослідницькою роботою. Напевно, це теж не в повному сенсі наукові завдання, тому що вони в будь-якому випадку йдуть від бізнесу, але все-таки це саме дослідження, і серед KPI є статті та виступи на конференціях. Для цього з «виробничої» частини лабораторії ми виділили двох хлопців, а також куратора з нашого боку — мою співробітницю Ларису Маркееву. Поки ще ми не можемо похвалитися значними результатами, однак можу сказати: те, що хлопці вже зробили, обнадіює.

Яка структура в лабораторії?

— Крім мене, хлопців курирує наш колега з МДУ Сергій Ступников. Сергій працює на факультеті ВМК з 2008 року, також він є старшим науковим співробітником Інституту проблем інформатики РАН. В лабораторії Техносфери він щотижня курирує роботу хлопців, що забезпечує делегування завдання від компанії вузу.

Про внутрішні завдання лабораторії ми запитали куратора Сергія Ступникова.

— чи Є відмінності у постановці і вирішенні завдань бізнесу, а не наукових?

— У бізнесі часто досить знайти в літературі відповідне рішення і адаптувати його під потреби компанії. Звичайно, при цьому необхідно довести реалізацію до промислового рівня, відточити ефективність. Для наукових завдань характерно поява нової ідеї, її прототипування.

— Розкажіть про завдання, які спочатку ставилися перед лабораторією?

— Лабораторія — це підрозділ Техносфери, яка об'єднує студентів проекту і дозволяє їм вирішувати як суто практичні завдання, так і завдання з наукової складової і отримувати за це винагороду. В мої обов'язки входить координація діяльності стажистів і звіти перед відділом аналізу даних та відділом досліджень і освіти. В науковій частині зараз є кілька цікавих завдань. Пара з них пов'язана з фреймворком Giraph, який реалізує обчислювальну модель ітеративного аналізу графів. На ньому можна реалізовувати різні цікаві алгоритми. Зараз зусилля зосереджені на аспектах глибинного навчання. Перспектив у цього методу багато, співробітники компанії займаються цим в тому числі.

— Як робота в лабораторії допомагає студентам у науковій діяльності?

— Звичайно, останнім часом ми більше займалися прикладними завданнями. Але робота допомагає отримати різні навички, в тому числі досвід комунікації з керівництвом та в команді. Сподіваюся, що в майбутньому з'явиться і науковий результат роботи хлопців.

Я можу виділити декілька складових роботи в лабораторії. Найважливіше — це вміння і бажання генерувати нові ідеї, може бути спочатку й невеликі, як в прикладному, так і в науковому плані. Можна також виділити практичні навички:

  • завдання з наукової складової припускають читання і аналіз наукових статей, в тому числі англійською мовою;
  • потрібно вміти прототипировать свої завдання (програмувати алгоритми), показувати їх ефективність;
  • свої результати потрібно вміти презентувати, оформлювати у вигляді звітів, статей.
— Коли краще поступати?

— Лабораторія вимагає інвестування свого часу, самодисципліни. Робота в лабораторії дозволяє не відволікатися на різні області (коли студенти заробляють на життя часто не зовсім по спеціальності), а сконцентруватися на одній — аналізі даних. У студентів, які навчаються в Техносфери, є завдання по основній навчання в університеті, по навчанню в Техносфери, і якщо вони все встигають за цими двома напрямками, то я рекомендую взяти додаткову роботу в лабораторії.

— Що б ти побажав студентам?

— Я б побажав їм вибрати цікаву сферу діяльності, якою вони будуть займатися в своєму житті. Щоб університет, крім уміння вчитися, дав можливість познайомитися з різними бізнес-напрямками, де можна знайти цікаве застосування своїм знанням і вмінням. Я радий, що у студентів МДУ є така можливість.

Стажери лабораторії Антон Гой і Світу Амір також поділилися своїми враженнями про роботу в лабораторії.

Антон Гой

— Що ти очікував від стажування і які твої враження?

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

— Де застосовуються результати твоєї роботи?

— У таргетингової реклами. Ми показуємо користувачам рекламу, грунтуючись на їх поведінку в минулому. Якщо людина заходила на сайти, які містяться в нашому каталозі, система це розуміє і показує те, що йому може бути цікаво.

— Були смішні історії під час роботи?

— Мені траплялися різні тематики, і деякі з них були кумедними. Завдяки роботі тепер розбираюся у всіх видах алкогольної продукції і знаю все про кредитну систему. Іноді також зустрічаються смішні назви сайтів.

— Як допомагає робота в науковій діяльності?

— Зараз я займаюся проектом по нейрофізіології — визначенням по знімках областей мозку, які пов'язані між собою. Даних дуже багато, і треба правильно їх обробляти. У цій роботі я буду використовувати знання, отримані в Техносфери і лабораторії.

— Чим ти хочеш займатися?

— Машинним навчанням, аналізом даних. З наступного навчального року планую перейти в офіс в якийсь підрозділ компанії, де є відповідні завдання.

Мірас Амір

— Які твої враження від роботи в лабораторії?

— Я працюю в лабораторії зовсім недавно, менше місяця. За два тижні я дізнався кілька нових речей, спілкуюся з хлопцями і в результаті помітно зріс. Наставник ставить перед нами практичні завдання, і це сильно відрізняється від завдань в університеті. Ти відразу по-іншому дивишся на проблему і розвиваєшся професійно.

— Як допомагає робота в науковій діяльності?

— Так як діяльність лабораторії тісно пов'язана з дисциплінами моєї навчальної програми на кафедрі ММП, думаю, їх поєднання позитивно впливає на мою успішність і саморозвиток: допомагає більш відповідально підходити до справи і якісно розподіляти свій час.

— Як ти бачиш своє розвиток?

— Нещодавно потрапила на очі вакансія з аналізу даних, думаю, що, коли наберуся досвіду тут, подам заявку на більш серйозну позицію в компанії.

— Що б ти побажав тим хлопцям, які тільки вчаться, ще не працюють?

— Я побажав би їм організувати свій час так, щоб швидше почати роботу. Тому що розвивається навик роботи в команді, накопичується досвід.



Через рік роботи лабораторії ми підвели підсумки і підрахували ефективність роботи хлопців порівняно з підрядниками і співробітниками, які не мали базової підготовки в області аналізу даних. Виявилося, що хлопці чудово впоралися. Вони не тільки виконували ті завдання, які ставив перед ними ментор лабораторії МДУ Сергій Ступников, але і самостійно розробляли і пропонували інструменти автоматизації цих завдань. Частина з них була трохи доповнена і впроваджена в бізнес-процеси компанії.

Восени 2015 року було запущено другий напрямок всередині лабораторії — наукові дослідження. Таких питань у компанії також приділяється час. Зокрема, ми активно вивчаємо можливість застосовувати нейронні мережі в бізнес-задачах, але, на жаль, випробувати їх «в бою» ми поки що не готові: забезпечення їх роботи вимагає вкладення величезних ресурсів, а користь нових методів поки неочевидна.

Тим не менш роботи ведуться, і ми підключили до їх вирішення стажерів з лабораторії. У даний момент двоє з шести стажерів в лабораторії займаються науковими дослідженнями.

Перед ними була поставлена задача, пов'язана з алгоритмом MCL. Вона спрямована на те, щоб зробити кластеризацію в графі.

В березні 2016 року куратором напрямку стала Лариса Маркеєва. Разом з Артуром Кадуриным вони поставили перед хлопцями наукову задачу.

Стажистам необхідно було розібратися з базовою інтерпретацією алгоритму RBM (restricted Boltzmann machine) і реалізувати її під фреймворк Giraph. Таким чином, хлопці повинні побудувати систему розподілених обчислень на графах, за основу якої була взята архітектура Pregel.

Дана техніка дозволяє предобучать нейронні мережі. А нейронну мережу, яка зможе вчитися на кластері, надалі можна буде використовувати, наприклад, для оптимізації CTR в рекламі.

Як ми вже згадали, ми поки що будемо використовувати нейронні мережі в експериментах. Можливо, цю напрацювання викладемо в open source.

В рамках наукового напрямку стажування пропонується використовувати різні технології: Java, Hadoop. Для візуалізації і прототипування використовується Python, Notebook. Також у планах використання Apache Spark. Потенційно алгоритми, які досліджують і розробляють стажисти, можуть лягти в основу бакалаврської або магістерської роботи.

Ми запитали одного із стажистів, Павла Коваленко, про роботу в науковому блоці лабораторії:

— Які твої враження від лабораторії?

— Мене покликали працювати в лабораторію в лютому минулого року. Для мене це перший досвід цієї роботи в колективі. Формат лабораторії дуже добре підходить для поєднання з навчанням: робота вдома плюс раз в тиждень зустріч в університеті.

— Які завдання вирішував на самому початку?

— На початку ми працювали кимось на кшталт асесорів. Потрібно регулярними виразами розмітити сторінки великих сайтів з тематики їх вмісту (авто, нерухомість, одяг тощо). Набір навчальної вибірки — це перший етап у вирішенні задачі автоматизованої класифікації сторінок за тематикою, над якою зараз працюють декілька студентів лабораторії.

— Які завдання вирішуєш зараз?

— На початку цього року мені і моєму колезі Олександру Щербакову запропонували нову цікаву задачу: роботу з Apache Giraph надбудова над Hadoop для розподіленої обробки графів), а саме створення розподіленого варіанти обмеженою машини Больцмана. Кажуть, у кого-то в Mail.Ru Group з'явилася потреба застосувати машину Больцмана до дійсно великим даними.

— Як допомагає Техносфера в науковій діяльності, навчанні?

— Для мене Техносфера стала незамінним досвідом. Можливо, я пішов туди трохи рано — на початку другого курсу. Багато моменти були мені незрозумілі. Зокрема, курс Data Mining вимагає хороших знань теорії ймовірностей, а в мене тоді їх не було зовсім. Техносфера вплинула на мій вибір кафедри на ВМК — мені дуже сподобався курс Data Mining і самі ідеї машинного навчання, тому я пішов на кафедру математичних методів прогнозування, яка, власне, і займається машинним навчанням. Для роботи в лабораторії дуже допомагає курс Hadoop Техносфери. Де ще можна отримати практичні навички по роботі на цьому кластері?

Так вийшло, що ті завдання, якими ми займаємося в лабораторії, тісно пов'язані з моїм навчанням на кафедрі, тому одне не заважає іншому, а, навпаки, доповнює. Практичне використання знань, отриманих на лекціях, допомагає краще розібратися в принципах роботи алгоритмів.

— Які плани по розвитку?

— Не хочу поки заглядати настільки вперед. Я вважаю, що в університеті більшу частину часу треба присвячувати навчанні та науковій роботі. Тому так зручний формат лабораторії: можна працювати в зручний час, вільний від навчання, і не потрібно далеко їздити.

— Які враження про наставника?

— З новою задачею у нас з'явився новий наставник — Лариса Маркеєва. З нею дуже приємно працювати, оскільки вона дійсно добре розбирається в цій області (Hadoop і Giraph) і завжди відкрита для спілкування, допомагає вирішити виникаючі труднощі і дає поради по реалізації. У зв'язку з цим нещодавно трапилася кумедна історія. Для роботи нам знадобився Hive (надбудова над Hadoop для розподіленої обробки даних із використанням SQL-подібних команд). Hive був встановлений на навчальному кластері, проте із-за неправильної установки він взагалі не працював. Лариса написала комусь в компанії, хто займався адмініструванням кластера, і він обіцяв розібратися найближчим часом. А на наступний день він звільнився з Mail.Ru Group. Сподіваюся, це не ми його довели. :)

Data Science чемпіонати Mail.Ru Group
Крім навчання в області великих обсягів даних, у Mail.Ru Group також проводиться два великих чемпіонату, де хлопці можуть спробувати свої сили: Russian AI Cup і ML Boot Camp.

Russian AI Cup — щорічний чемпіонат з програмування штучного інтелекту на прикладі ігрових стратегій.

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

Переможці чемпіонату традиційно отримують цінні подарунки, призовий фонд становить близько мільйона рублів, але найголовніше — абсолютно всі учасники покращили свої навички в програмуванні штучного інтелекту. Переможець Russian AI Cup 2015 за підсумками змагання влаштувався працювати в Mail.Ru Group і тепер займається розробкою штучного інтелекту для ігрових проектів компанії.

ML Boot Camp — нова ініціатива Mail.Ru Group з навчання розробників machine learning. На платформі в учасників є можливість навчитися розв'язувати задачі з машинного навчання та аналізу даних, спробувати свої сили в контестах і виграти цінні призи. Бажаючі можуть потренуватися в проміжках між змаганнями, засвоюючи навчальний матеріал і вирішуючи тестові завдання. Періодично запускаються двотижневі контести, з метою виділити кращих фахівців з машинного навчання, а після цього нагородити їх призами.



***

Ми сподіваємося, що скоро зможемо опублікувати перші наукові результати лабораторії, а поки пропонуємо вам ознайомитися із матеріалами, які належать до дослідження даних і випущені в рамках проекту Техносфера:

  1. Курс на Stepic за Hadoop
  2. Курс за многопоточному С++
  3. Лекції на YouTube
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.