Сколько времени вы потратили на работу с каталогом библиотечных карточек?
Система карточек представляет собой сердце библиотеки. Для каждой книги в библиотеке заводилась карточка, содержащая важнейшие данные: ее название, имя автора, тему, год публикации, а также крайне важный справочный номер, показывавший, где находится книга. Посетители библиотеки могли проводить за работой с каталогами целые дни, а содержащаяся в каталоге информация, в свою очередь, направляла их в самые дальние уголки здания.
Без каталога библиотека превращается в обычную огромную комнату, в которой царит неразбериха, – в ней невозможно найти ровным счетом ничего.
На протяжении многих столетий одна из самых важных мировых библиотек, Archivio Segreto Vaticano («Секретный архив Ватикана»), выглядела именно так. Ей явно недоставало серьезного каталога карточек для книжного собрания, занимавшего свыше 52 миль пространства книжных полок. Что же там было? Даже люди с неограниченным доступом могли ответить на этот вопрос странной смесью фактов, слухов и легенд. Для того чтобы найти книгу, нужно было знать кого-то, кто знал еще кого-то, кто (возможно) знал, где находится книга. В архиве хранятся бесценные манускрипты, начиная с VIII века (например, материалы суда над Галилеем по обвинению в ереси), однако поиск этих сокровищ превращался в приключение, достойное Индианы Джонса. Что ж, это тоже можно считать способом хранения секретов.
Для нас, как и для любых других пользователей библиотек, самого по себе доступа к книгам было далеко не достаточно. Если мы хотели сравнить тексты из различных мест и времен, то нам были просто необходимы точные метаданные каталогов из карточек, где было написано, как найти каждую книгу, чтобы знать, как классифицировать ее в контексте автоматизированного анализа.
Поначалу мы посчитали это не особенно большой проблемой – Google собрала свой список покупок из 130 миллионов книг, используя информацию каталогов из сотен источников. (В наши дни каталоги на основе карточек, имеющиеся в крупнейших библиотеках, уже были компьютеризированы – одно из первых преимуществ, – а физические карточки часто оказываются в удаленных уголках складов.) Оказалось, однако, что каталоги на основе карточек, даже лучшие, полны ошибок.
И исправление этих ошибок отнимает массу времени. Карточек слишком много, и даже самые большие энтузиасты библиотечного дела не всегда замечают ошибку. Иногда ошибка не позволяет пользователю найти нужную карточку (по принципу «ничего не вижу, ничего не слышу, ничего не говорю») или же кроется в неправильном указании места публикации книги. До тех пор пока справочный номер остается точным, пользователь все равно находит книгу. Неверные метаданные на карточке не особенно беспокоят читателя, поскольку на титульной странице книги его ждет точная информация.
Со временем легионы неисправленных ошибок перекочевали из физических каталогов на основе карточек в каталоги цифровых карточек, затем в созданную Google «мать всех каталогов», а затем и в наши информационные массивы. В отличие от людей, желающих прочитать одну книгу, для нас ошибки представляли особую опасность. Ведь мы просто не могли позволить себе вручную просмотреть каждую из миллионов книг. Однако ошибок в карточках было слишком много. При использовании наполненного ошибками каталога метаданных для создания таблиц n-грамов результаты были порой настолько искажены, что от них попросту не было никакой пользы. Так, по нашим изначальным расчетам выходило, что одна наша подруга, работавшая в соседнем офисе, испытала взрывообразный рост популярности в XVI веке. Когда мы рассказали ей об этом, она сказала, что не настолько стара. Либо она нам лгала, либо перед нами возникла довольно серьезная проблема.
Что было делать?
Поскольку мы не могли проверить данные каждой книги вручную, то решили написать компьютерные алгоритмы для поиска подозрительных карточек – точнее, всего того, что давало основания полагать, будто на карточке размещена ошибочная информация. Возьмем, к примеру, журналы. Обычно библиотеки присваивают каждому выпуску серийного издания – будь то газета, научный журнал или любое другое периодическое издание – дату публикации первого номера. Это значит, что, по данным нашего каталога карточек, каждый номер журнала Time был опубликован в 1923 году. Понятно, что с точки зрения наших целей это была огромная проблема.
Для ее решения мы написали алгоритм с названием Serial Killer («серийный убийца») для поиска всего, что могло бы выглядеть как серийное издание. Другой алгоритм, Speed Dater («экспресс-датировщик»), пытался определить, когда была опубликована книга, основываясь на содержавшемся в ней тексте. При совместном применении оба эти алгоритма помогли нам выявить подозрительные карточки и соответствующие им книги. Затем мы исключали эти книги из нашего анализа.
Наконец летом 2009 года Юань совместил эти методы со своими программными мускулами, чтобы удалить весь мусор, переполнявший наши большие данные. Мы прополоскали в реке вычислений тексты миллионов книг. Эта операция была настолько масштабной, что даже запустила внутренние системы предупреждения Google. После этой ассенизации легендарных масштабов в нашем распоряжении осталась лишь малая доля первоначальных данных. Тем не менее массив был беспрецедентным с точки зрения размера и исторической глубины – 500 миллиардов слов, написанных в течение пяти столетий на семи различных языках. В нем содержалось более 4% всех когда-либо опубликованных книг.
Не менее важно и то, что этот огромный массив данных был по-настоящему блестящим. Несмотря на то, что общий объем текста в тысячу раз превосходил геном человека, он был – буква за буквой – в десять раз более точен, чем последовательность, о которой сообщал проект «Геном человека» .
Теперь, после того как тексты и метаданные каталогов на основе карточек были уточнены, созданные на их основе списки n-грамов стали выглядеть просто отлично. Мы ясно видели широкий спектр лингвистических и культурных изменений, таких как переход от throve к thrived или движение от telegraph («телеграф») к telephone («телефон») и television («телевидение»). Выражаясь научным языком, с данными n-грамов у нас возникла любовь с первого взгляда.
Однако, подобно многим другим летним романам, наши отношения с n-грамами вскоре столкнулись с осенними проблемами. Юань заканчивал интернатуру с начала учебного года, и мы вскоре оказались за пределами Google, а соответственно, все наши данные были спрятаны за брандмауэрами компании.
Нам было необходимо, чтобы Google отправила нам данные. Однако интернет-гигант этого не хотел. По мнению Google, работа с данными n-грамов оставалась довольно деликатным делом. Массив данных был сформирован из полного текста 5 миллионов книг, и юридический расчет Google был прост. Пять миллионов книг соответствуют пяти миллионам авторов – иными словами, пяти миллионам истцов в рамках огромного иска, который мог появиться в случае утечки. Мы проектировали набор данных в виде тени (n-грама), чтобы обойти эту проблему. Мы подсчитывали слова вместо того, чтобы записывать длинные последовательности текста. Однако наша ловкость рук еще не проходила проверки судами. Было вполне понятно, чего опасается Google.
У нас было мало шансов на успех в противостоянии с юридической службой одной из крупнейших мировых корпораций. Однако, имея в кармане два миллиарда n-грамов, мы не были готовы сдаться.