Машинное обучение
Машинное обучение – это фильтрация данных, извлеченных на стадии анализа текста. На первой стадии исследований, положенных в основу этой книги, мы проверили 28 000 параметров, чтобы понять, какие из них имеют ценность в построении прогнозов успешности. Это было необходимо для экспериментов по обучению компьютера классификации книг. Мы трудились долго и в итоге отсеяли тысячи характеристик. В конце концов мы пришли к базовому набору из 2799 параметров, которые, по нашему мнению, действительно позволяют предсказать успех книги. Так что мы сбросили со счетов «Нью-Йорк» и «Стокгольм», игнорировали числа в заглавии («1984» и «1 000 000»), но отметили ценность темы человеческой близости (глава 2), глаголов need и want (глава 5) и сокращений типа I’m и couldn’t (глава 4). Важность этих характеристик мы смогли понять благодаря алгоритмам машинного обучения.
Основная идея классификации, к которой мы пришли в ходе исследования, очень проста. Мы начали с предположения, что книжный мир – «черно-белый»: существуют только два типа книг – те, что попали в список бестселлеров NYT, и те, что не попали
[259]. Затем мы сравнивали параметры книг, попавших и не попавших в список, из нашего корпуса текстов. Первой задачей было просто сравнить их и понять, есть ли между ними существенная разница. Если разница есть (допустим, оказалось, что слово and в бестселлерах встречается в два раза чаще, а слова very и passion гораздо реже по сравнению с прочими книгами) – значит, этот параметр полезен. Частота употребления отдельных слов – конечно, очень простой пример, и читатели едва ли обращают на нее внимание, но, собрав отдельные слова и грамматические конструкции в темы и построив сюжетные графики, мы получим важные, информативные данные.
В своих исследованиях мы использовали три разных алгоритма компьютерной классификации книг. Все эти алгоритмы начинают с определения места каждой книги в так называемом пространстве параметров. Количество измерений этого пространства равно количеству параметров, которые мы хотим исследовать. Иными словами, оно огромно. Поскольку людям сложно представить себе многомерное пространство, допустим, что бестселлерометр оперирует только двумя параметрами. Возьмем для примера две из 2799 характеристик, выделенных нами как важные: тему человеческой близости и частоту употребления слова very. Для каждой книги модель выдаст нам два числа – одно из них показывает долю темы человеческой близости, другое – частоту слова very. Используя эти числа, мы можем отобразить каждую книгу на координатной плоскости, которая в итоге будет выглядеть примерно так, как показано на рис. 18. Каждый значок на плоскости – один роман, а его координаты заданы этими двумя показателями.
Рис. 18
Посмотрев на график, вы заметите, что бестселлеры группируются в правом нижнем углу. Иными словами, график сообщает нам, что в бестселлерах тема человеческой близости встречается чаще (показано координатой по оси х), а слово very – реже (показано координатой по оси у). Если вы внимательно читали нашу книгу, то уже знаете это из глав о темах и стиле. Возможно, вы даже помните, что really
[260] – слово более полезное, чем very, для того чтобы попасть в список бестселлеров. Мы считаем, что это позволяет сделать определенные выводы о современной тональности текста и манере выражения. Вас не удивит и то, что треугольнички сбились в кучу в левом верхнем углу: авторы этих книг уверяют вас, что очень то и очень сё, но их описания человеческих отношений не очень убедительны.
Первый метод классификации, который мы использовали, известен как «K ближайших соседей» (K Nearest Neighbors, KNN). Работа метода KNN начинается с размещения книг в пространстве параметров (примерно как на графике выше). Мы как исследователи затем решаем, чему должно быть равно К. Допустим, мы решили, что оно равно 5. Алгоритм KNN начинает классификацию книги с того, что берет пять ее ближайших соседей в пространстве. Если большинство из этих пяти книг оказываются бестселлерами, компьютер делает вывод, что исследуемая книга – тоже бестселлер, поскольку ее соседи обладают характеристиками, позволяющими попасть в заветный список. Обратите внимание на рис. 19: один бестселлер расположен заметно ближе к кластеру небестселлеров, занявшему верхний левый угол. В этом случае алгоритм KNN посмотрит на ближайшие пять книг и сделает неверный вывод, что эта книга – не бестселлер, поскольку четыре из ее пяти соседей тоже не бестселлеры. На рис. 19 область, в которой расположены соседи данной книги, показана окружностью.
Рис. 19
Все остальные бестселлеры в этом искусственно сконструированном примере будут классифицированы правильно на основании класса пяти книг, непосредственно соседствующих с ними. Единственный небестселлер, расположенный ближе всего к правому нижнему углу, будет неправильно классифицирован как бестселлер, поскольку среди пяти ближайших к нему книг есть три бестселлера и два небестселлера. Теперь вы понимаете, почему средняя точность предсказаний нашего бестселлерометра равна 80 %.
Два других использованных нами алгоритма несколько сложнее, чем KNN. Они называются «машины векторов поддержки» (Support Vector Machines, SVM) и «ближайшие сжатые центроиды» (Nearest Shrunken Centroids, NSC). Второй из них разрабатывался первоначально для классификации типов рака на основе данных экспрессии генов, а мы решили использовать его для своих целей. Подобно KNN, алгоритмы SVM и NSC также используют размещение книг в многомерном пространстве параметров. Определив положение каждой книги в этом пространстве, алгоритм SVM пытается найти максимальный зазор между заведомыми бестселлерами и заведомыми небестселлерами. Этот зазор или граница может выглядеть примерно как на рис. 20
[261].