Всеволод, CTO at Prophy Science, украинско-швейцарский стартап, занимающийся поиском по научным статьям и работе с научными данными, в основе которого лежит Natural Language Processing

https://www.linkedin.com/in/vsolovyov/
https://twitter.com/murkt

«Стало скучно просто выполнять задачи, и когда через четыре месяца после старта предложили продолжить сотрудничество еще на полгода, я решил отказаться»

Как ты начал работать с Data Science?
Наверное, это можно отнести к случаю. Все началось с того, что я работал в Shopium, а в 2014 году, когда начался кризис, проект закрыли, так как он был рассчитан на местный рынок. Думал, что у меня будет месяц отдохнуть, распланировал курсы контраварийного вождения. О закрытии проекта меня предупредили за пару недель, а за неделю предложили участие с той же командой в другом проекте. По словам заказчика, необходимо было сделать фронтенд, и наша помощь нужна была на пару месяцев. Я дал согласие и подумал, что тогда через два месяца вернусь снова к поиску того, чем заниматься дальше. У меня был на то время такой стек: PostgreSQL, Python, JavaScript и React на тот момент уже немного пробовал. Новый проект был связан с Data Science, правда, этот термин я узнал через несколько месяцев. Система должна была отслеживать новости и Twitter, определять разные темы и сводить всё в одну ленту. Проект готовился к конференции по изменению климата, к которой и разрабатывали новостной портал. В самом начале было очень много непонятной терминологии, которая требовала доменных знаний, сложно было разобраться. Разобрался, но через пару-тройку месяцев стало скучно просто выполнять задачи, и когда через четыре месяца после старта предложили продолжить сотрудничество еще на полгода, я решил отказаться. Тогда эти же заказчики предложили мне перейти к ним на другой проект, связанный с рекомендацией статей для ученых-физиков. На тот момент там не было активных разработчиков, я нанял еще одного человека, и мы начали оживлять этот проект, разгребать авгиевы конюшни. Я потом еще на полгода возвращался в Shopium, но в итоге мы с этими профессорами-физиками решили организовать текущий стартап, в некотором смысле развитие идеи рекомендательного проекта.

Почему в Natural Language Processing чаще всего используется Python?
Я статистику не собирал – очень много Python, но и Java также широко используется. Например, очень распространён Stanford CoreNLP.

Ты работал с Machine Learning?
Natural Learning Processing — это тоже Machine Learning. Впрочем, у нас есть не только NLP часть, есть кластеризации разные, классификации, ранжирование. Ещё в нашей компании присутствует неклассический Machine Learning.

«У нас в парсерах данных искусственный интеллект на if-ах»

Почему за Machine Learning будущее с твоей точки зрения?
Начнем с того, что подавляющее количество задач в программировании — это автоматизация бизнес-процессов. А Machine Learning — автоматизация когнитивного труда. Это не обязательно должны быть глубокие нейронные сети. Какая-то часть того, что на публику для маркетинга называют машинным обучением, — просто «толпа if-ов». Например, у нас в парсерах данных «искусственный интеллект на if-ах» и работает хорошо. Есть шуточное определение, которое звучит так: однослойная нейронная сеть с константной функцией активации. И это и есть if. Если вложенные if-ы, то это уже многослойная.

«Мы сталкивались с проблемой, что люди, разбирающиеся с Data Science, не умели писать код, потому решили пойти обратным путем и обучать толковых разработчиков»

Расскажи о своем стартапе, сколько вас человек в команде?
Нас трое основателей: два профессора-физика и я. И пять разработчиков, включая меня. В целом, команда была сформирована по рекомендациям. Несмотря на рекомендации, мы придерживались такого правила отбора — чтобы разработчики, которых мы нанимаем, умели хорошо решать поставленные задачи. Мы сталкивались с проблемой, что люди, разбирающиеся с Data Science, не умели писать код, потому решили пойти обратным путем и обучать толковых разработчиков. На самом деле, на нашем проекте работы с Data Science не так много. Работа с самим дата сетом, на котором все построено, занимает 10% времени, а все остальное — это сбор данных, обработка, отладка.

Как вы боретесь со случаями, когда нет возможности распарсить статьи, например, присутствуют сокращения?
Статья может быть во многих источниках, в подавляющем числе нет полного текста статьи, нет ссылок, имена сокращенные или еще чего-то. То есть полные данные о статье ты можешь получить из нескольких источников: где-то XML, где-то HTML или PDF. А PDF может оказаться тяжелой, или это может быть сканированная копия из какого-то журнала тридцатилетней давности. В ней не будет структуры — это не XML, не JSON, который легко можно разобрать. Мы используем готовый инструмент, который написан для того, чтобы работать с такими файлами. Конечно же, в каких-то местах он ломается. К сожалению, у нас сейчас нет ресурсов, которые могли бы отследить, как часто и в каких местах ломается этот инструмент, чтобы его дорабатывать. Пытаемся строить максимально полное представление о статье из разных источников и дальше работать с ним.

Считаете ли вы свою компанию по-прежнему стартапом, и если да, то почему?
Начнем с определения стартапа — это компания, которая предполагает быстрый рост и масштабирование. У нашей компании есть все перспективы роста, поэтому можно отнести нас к категории стартапов.

«Многие думают, что в стартапах необходимо работать круглосуточно, но так долго не протянете, надо соблюдать баланс, и давать возможность себе отдыхать и восстанавливаться»

Как выглядит твой рабочий день как СТO?
Мой график можно назвать довольно гибким в разрезе планирования. Подбирая команду, я ставил упор на том, чтобы люди могли работать автономно. И это мне помогает сосредоточиваться на главных и серьезных вопросах. Рабочий день, как правило, 7-9 часов. Многие думают, что в стартапах необходимо работать круглосуточно, но так долго не протянете, надо соблюдать баланс, и давать возможность себе отдыхать, спать и восстанавливаться. И сотрудников своих также не заставляю овертаймить. Знаю, что в других компаниях бывают ситуации, когда весь день заполнен митингами и люди остаются вечером, чтобы сделать хоть что-то. Но я сам никогда не работал в крупных компаниях, чтобы бороться с проблемой чрезмерного количества митингов. В нашей компании мы точечно подключаем только тех людей, кому необходимо быть в курсе обсуждения конкретного вопроса.

«Когда люди, начиная стартап, ожидают, что через 3-6 месяцев у них все получится. Что они выйдут в прибыль, и у них будет достаточное количество клиентов. Так случается, но очень редко»

Сколько лет вашей компании?
Нам уже два года. Есть очень распространенная ошибка, которую я тоже раньше допускал и не раз, когда люди, начиная стартап, ожидают, что через 3-6 месяцев у них все получится. Что они выйдут в прибыль, и у них будет достаточное количество клиентов, будут быстро расти. Так случается, но очень редко. Считаю, что необходимо настраиваться минимум на пять лет, а то и дольше. Если рассчитывать только на полгода, скорее всего, будет разочарование. Ожидания обязательно разойдутся с реальностью, закончатся сбережения, тебе-то деньги еще никто не платит. Нужно быть всегда готовым к тому, что все может пойти не так, как ты ожидал. Всегда нужно будет намного больше средств, чем ты предполагаешь; всегда будет необходимо больше времени, чем ты предполагаешь, причем это на всех уровнях.

Как ты отдыхаешь?
Прихожу домой и провожу время с сыном. Ему сейчас 3 года, как раз тот возраст, когда его интересует, как мир устроен, и он задает много вопросов, а мне в свою очередь нравится на них отвечать. Потому для меня отдых — это время с семьей, так я могу переключиться.

«Очень здорово, если ты берешь в команду людей, которым нравится делать то, что тебе не нравится»

Как ты борешься с прокрастинацией?
Поддаюсь ей :) Думаю, что для начала нужно разобраться с природой этого состояния. Бывает, прокрастинируешь, потому что боишься неизвестности или сложности того, что нужно сделать. Бывает, что это связано с твоим отношением к этой задаче, например, считаешь ее бесполезной. Потому, необходимо отловить мысли и состояние, чтобы разобраться с сутью и потом уже искать решение, как переубедить себя или поменять отношение к ситуации. Либо делегировать, если есть такая возможность. Очень здорово, если ты берешь в команду людей, которым нравится делать то, что тебе не нравится. Еще одним из методов могу выделить подход, когда для того, чтобы узнать о задаче детальнее, начинаешь её обсуждать со своими друзьями, либо коллегами. Вспомнился пример — тяжело писать техническую документацию. Постоянно борешься с перфекционизмом, и от этого сложно приступить. Или как мне сложно было вначале создавать вакансии. В таких ситуациях я начинаю писать простым языком, как-будто кому-нибудь в чате, иногда даже эмоционально начинаю с ругательных слов, а потом текст. Проще корректировать что-то, чем приступить. Такой подход дает возможность переступить этот эмоциональный порог, когда не можешь что-то начать.

Какие три книги ты бы посоветовал к прочтению?
Мои рекомендации будут очень разноплановые. Наверное, эти книги и запомнились тем, что зацепили и повлияли на меня тем или иным образом, раз сейчас вспомнил о них.
Итак:
«A Guide to the Good Life: The Ancient Art of Stoic Joy» от William B. Irvine. Эта книга о философии стоиков, адаптированной под современное понимание. Очень интересно, как люди, которые жили тысячи лет назад, понимали психологию человека. Явно были не глупее нас. Большинство вещей по-прежнему актуальны, несмотря на пройденные века и сменившиеся поколения.
Хочу посоветовать «Harry Potter and the Methods of Rationality» от Eliezer Yudkowsky. С одной стороны, это развлекательное фэнтези, а с другой — книга о том, как думать. Когда она вышла завершенной, провел немало зимних вечеров за чтением.
Сложно вспомнить книгу, которую можно было бы поставить третьей в такой ряд, потому посоветовал бы курс «How to start a Start-up», который мне очень понравился. Его можно найти на Youtube-канале «Y Combinator». Очень мощный ресурс, из него можно почерпнуть информацию, о которой ты раньше даже не задумывался, а для кого-то это пройденный и усвоенный опыт.

«Я бы советовал больше разбираться в том, как устроен мир, что будет расширять горизонты и возможности»

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