Когда в то же пространство помещают новую книгу, ее можно отнести к бестселлерам или небестселлерам в зависимости от того, с какой стороны от границы она окажется.
Алгоритм NSC концептуально близок к KNN и SVM. Он начинает работу с определения позиции всех книг в пространстве параметров, а затем находит математические центры множества всех бестселлеров и множества всех небестселлеров – «центроиды». Затем используется пороговый параметр, чтобы их сжать. Неизвестная книга классифицируется на основании того, к какому из сжатых центроидов она окажется ближе
[262].
Рис. 20
На основании 2799 параметров лучшая из наших трех моделей (KNN) смогла правильно отличить бестселлер от небестселлера в 90 % случаев
[263]. Худшая из трех моделей (SVM) угадывала правильно только в 70 % случаев. У NSC показатель был примерно посередине – 79 %, но NSC значительно превосходит KNN в удобстве интерпретирования результата, предоставляя массу интересных данных о том, какие параметры оказались наиболее полезными в выявлении различий между двумя классами книг. В среднем точность трех методов была равна 80 %, и мы использовали все три для «коллективного» предсказания судьбы каждой из книг в нашем корпусе текстов.
Вас, вероятно, интересует, как мы вывели эти процентные соотношения. Мы начали с двух групп книг – бестселлеров и небестселлеров. Мы наблюдали за работой модели на этих двух множествах. Для этого мы сначала обучили модель на случайно выбранном подмножестве книг. Компьютер использовал эту выборку, чтобы понять, какие параметры отличают бестселлеры от небестселлеров. Затем мы заставили компьютер классифицировать на основании полученной информации все книги, которые не использовались на этапе обучения. Компьютер сделал прогноз по поводу каждой из них. Обратите внимание, что на этой стадии компьютеру не была известна подлинная судьба текстов. Затем мы сравнили прогноз компьютера с реальной судьбой книги. Этот процесс (называемый перекрестной валидацией) придал нам уверенность в успехе проекта. Мы использовали два подхода. Для первого (так называемой десятикратной перекрестной валидации) компьютер выбирал случайным образом 10 % бестселлеров и 10 % небестселлеров и изымал их из множества. Затем модель обучалась на оставшихся книгах, и качество обучения проверялось классификацией первоначально изъятой выборки. Процесс случайного выбора книг и построения модели повторяется снова и снова, и после каждой валидации точность предсказания регистрируется. Затем рассчитывается средняя точность предсказания по всем попыткам
[264].
Второй метод перекрестной валидации называется «за вычетом одной». Как ясно из названия, он состоит в том, что из корпуса текстов единовременно изымается только одна книга. Затем строится модель на основе всех оставшихся. Изъятая книга предъявляется модели для вынесения вердикта. Вердикт регистрируется. Затем из корпуса текстов изымается другая книга, и процесс повторяется до тех пор, пока все книги в корпусе не будут по очереди изъяты и классифицированы
[265]. Это долгий процесс, требующий необычайной аккуратности; правду сказать, работа по построению и испытанию модели вообще была гораздо более кропотливой, чем может показаться по краткому описанию. Поскольку небестселлеров в нашей коллекции было намного больше, чем бестселлеров, мы проводили два типа экспериментов.
В некоторых из них количество книг было сбалансировано так, чтобы уравнять число представителей каждого класса. В таких экспериментах модель случайным образом выбирала подмножество небестселлеров из всех небестселлеров нашей коллекции. Таким образом, модель обучалась на множестве, в котором было поровну бестселлеров и небестселлеров. Этот подход позволяет гарантировать, что при случайном выборе книга может с равной вероятностью оказаться тем и другим.
Кроме экспериментов, в которых контролировалось число книг каждого класса, мы реализовали процедуру «контроля авторов», гарантирующую, что чересчур плодовитые писатели не получат несправедливого преимущества. При работе с методом «за вычетом одной» мы конфигурировали эксперимент так, чтобы в обучающих данных не было других книг того же автора. Если бы не это, авторы серий, такие как Гришэм, Паттерсон и Стил, получили бы фору. Но при таком дизайне эксперимента их шансы были равны шансам любого другого писателя.
Только начав работу с обучающейся моделью, несколько лет назад, мы проверили гипотезу Джоди о том, что у всех бестселлеров есть что-то общее в генотипе. Для этого мы работали с тысячами книг, выпущенных до 2010 года. Мы хотели построить модель, которая надежно классифицирует книги, исключает отклонения и дает специалистам по книжному делу полезные данные, которые легко интерпретировать. Результаты построения первой модели нас впечатлили. Затем мы несколько лет наблюдали за книжным рынком. К примеру, в коллекции, на которой обучалась наша первая модель, не было ни «Пятидесяти оттенков серого», ни «Исчезнувшей». Нам нужно было узнать, что скажет наша модель об этих новых книгах – правильно ли она их классифицирует. Конечно, если вы прочитали 3-ю и 5-ю главы нашего труда, то уже знаете, что компьютер отлично справился с этой задачей и что из его классификации мы многое узнали о сюжете и персонажах. Мы постоянно обучаем модель и обновляем корпус текстов, когда на рынке появляется новая Э. Л. Джеймс или новый пулитцеровский лауреат. Но на данном этапе можно сказать, что это происходит скорее для утоления нашего любопытства, чем для усовершенствования алгоритмов. За последние несколько лет мы прилагали все силы, чтобы включить в модель сведения о новых тенденциях – моде на сюжеты, изменениях в литературном стиле и т. д. Конечно, так поступать велит нам этика исследователей. Но вот что нас сначала поразило, а теперь приводит в восторг: компьютер не теряется, когда ему предъявляют нашумевшие новинки. Мы боялись, что он не сможет классифицировать «Пятьдесят оттенков серого» со всеми ее описаниями секса, или «Девушку с татуировкой дракона» – книгу с героиней нового типа. Но компьютер оказался молодцом.