Маленький шкандаль в семействе нуворишей

7 март, 2014 - 12:38Андрей Зубинский

Давно я ждал чего-то подобного - чтобы кто-то задался очевидным вопросом о "data science". Задался им Мико Мастсумуро, вице-президент Hazelcast, компании, широко известной в узких кругах. Матсумуро настолько смело задался этим вопросом, что с совершенно подростковой прямолинейностью заявил - "Data Science is Dead". Упс. А как же - "это"? Ну, всё "это"? Как же ж книги, которых наштамповали (справедливости ради, - собирая в эти книги "по кусочку того-сего")? Как же ж рейтинги популярных профессий? Как же ж всё, что ещё толком не стало всем, а только входило в пик hype?

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

"Data science is the study of the generalizable extraction of knowledge from data"

Интересное определение, и авторы статьи википедии "нажимают" на слово science.

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

Если мы собираемся "выжимать" из массива данных знания, мы можем это делать известными и давно обобщёнными до алгоритмов и программных реализаций методами. Речь по сути идёт о задачах распознавания образов, или ещё проще - о задачах классификации.  Как вы ни называйте эти задачи по-другому, всё одно они сведутся к механизму классификации, выделяющему в пространстве параметров какие-то области, к одной (или нескольким) из которых с некоей степенью уверенности можно отнести объект, описываемый набором параметров. Всё прочее, что в первую очередь касается семантики этих выявленных областей пространства параметров, - оно далеко за пределами любой науки. Вы вольны строить любые гипотезы о "смыслах" и этих областей, и их взаимного расположения в многомерном пространстве параметров, и о чём угодно вообще, в чём явно или неявно присутствует слово "смысл". Просто потому что формальные методы классификации (распознавания образов, факторного анализа etc) никогда и никак, никаким боком, с семантикой не связаны. Благодаря чему и работают. В некоторых областях. В каких именно - чуть дальше. Пока же зафиксируем очевидное - результатом формального анализа данных в общем (и даже в лучшем) случае могут быть только *гипотезы*. А гипотезы, что очевидно, вовсе не знания.

Теперь вернёмся к данным. Любой механизм классификации или распознавания с обучением строится на основе понятия "представительной выборки". На пальцах объяснить его просто - чтобы научиться визуально хорошо отличать "яблоко" от прочих фруктов, даже такому совершенному механизму распознавания, как наш мозг, нужно предъявить очень много очень разных фруктов, среди которых очень много очень разных яблок и долго подсказывать - где яблоко, а где - нет. И то, не факт, что какой-то вовсе вычурный сорт, плод трудов обезумевших мичуринцев, будет надёжно распознан. На более научном, но не менее внятном языке, всё то же самое звучит так:

"Представительной считается такая обучающая выборка A, которая в заданном пространстве признаков и заданном классе решающих функций позволяет построить правило распознавания новых объектов (контрольной выборки Q) с ошибкой, не превышающей заданной величины"

Об этом логичном определении отлично известно одно "но" - оно не является конструктивным. Поясню, о чём идёт речь. Если бы процесс обучения проводился на всех возможных данных (например, на множестве "вообще всех яблок, существовавших, существующих и которые будут когда-либо существовать"), проблем бы не возникло. У нас есть полная выборка, мы формально строим правила классификации или распознавания - и вуаля. Но вот беда, - полной выборки у нас никогда нет. И никакие big data полноту выборки не обеспечивают, вообще ничто не обеспечивает её в бесконечной (что пространственно, что во временном смысле) Вселенной. И всегда возникает очевидное противоречие - механизмы распознавания или классификации обучаются на одной выборке, а для распознавания им предъявляются объекты, которых в обучающей выборке не было. Потому и ошибку, которая "не превышает заданной величины", абсолютно невозможно как-то формально измерить или вычислить. Речь, опять же, может идти только о гипотезах. И о неисчислимых эвристиках, которые позволяют эти гипотезы хоть как-то формировать.

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

Всё это - совершенно не откровения, а азы. И это всё реально работает, и даже работает хорошо. В некоторых областях применения. Например, у вас есть автомобильный двигатель внутреннего сгорания. Конкретный, определённой модели. Вы "обвешиваете" его датчиками вибрации. И пытаетесь из потока данных о вибрациях разных узлов двигателя "вынимать" знания о неполадках в его работе. Несмотря на в целом стохастический низкоуровневый характер работы двигателя (случайные различия в объёмах  впрыснутого горючего, в углах опережения зажигания, в постоянно меняющихся износах узлов, в однородности масла и его распределения, etc, список огромен), вы добьётесь положительных результатов. Потому что двигатель в целом - вполне хорошо определённая (иначе он бы вообще не существовал) тремодинамико-механически-электрически-электронно замкнутая система, для которой даже есть понятие "нормальных режимов работы".

Если же вы те же самые методы попытаетесь использоваться для другой стохастической системы, например, для покупателя большого универсального магазина, все ваши гипотезы разобьются в щепки реальностью - покупатель не является "замкнутой системой" в том смысле, что только на основе содержимого его чеков вы не можете строить никаких гипотез, кроме основанных на здравом смысле и на знаниях о "надсистеме" (например, перед каким-то праздником в этой надсистеме принято покупать какие-то мелочи в качестве подарков, и характер мелочей связан с семантикой праздника). Например, у покупателя внезапно возник всплеск - он накупил каких-то странных залёжанных дешёвых рыболовных крючков, лески, удочек, спинниг и блёсны, несмотря на погоду (гарантированно не клюёт), время года (гарантированно ничего не ловится на спиннинг) и вообще ни на что объяснимое. И вдруг алгоритмика выявляет класс таких покупателей,  человек 20. И всё это происходит за два дня. Data scientist морщит умище и выдаёт сложное объяснение "тренду" - "рост спроса на рыболовецкие снасти нижнего ценового диапазона свидетельствует об осторожном росте интереса к активным видам отдыха blah-blah-blah", который на деле заключается в том, что к бывшим выпускникам приехал в гости давно уехавший куда-то приятель и созвал всех "на рыбалку" (ну, вы понимаете, как оно бывает), а всё это копеечное барахло нужно больше для успокоения жён и оправдания "движухи". И таких "трендов" в открытой и неизвестной системе будет примерно столько, сколько есть покупателей, а на деле - даже ещё больше, ведь возможны и неявные связи между покупателями. Безусловно, вы можете пытаться объединять анализ социальных сетей с анализом чеков (для какого-то "замыкания системы"), но это "замыкание" строится на гипотезе, что все пользователи социальных сетей непременно и для вас пишут там "ура! приехал Вася! мы едем на рыбалку такого-то числа с тем-то, тем-то etc!". Одной этой гипотезы достаточно для иллюстрации серьёзности всех последующих "построений".

Так вот я к чему это всё.

Мико Мастсумуро, конечно, излишне эмоциален, но формально прав. Если говорить о Data Science как о науке из определения википедии - то лучше или не говорить, или вносить алхимию в список наук.

Если говорить о Data Science как о науке, изучающей, формализующей и создающей алгоритмы анализа данных и определяющей области и  способы применения этих алгоритмов, - то ничего с Data Science не случилось, она на своём месте, где всегда и была (причём и в докомпьютерные времена, что характерно, статистика - вовсе не детище IT).

Вся проблема - в hype и в формах игривого использования "сакральных" знаний Data Science не по назначению (модный "хакинг стайл").

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

Теперь о совсем другом буквально два слова.

Поздравляю приватные бизнесы США - Федеральная Администрация Авиации (FAA) этой страны легализовала коммерческое использование дронов.

Совершенно не понимаю, чем это может помочь нам или как может сказаться на нас, но завидно.

Откланиваюсь.