Чтобы понять, как работает Watson, лучше всего представить себе обширный ландшафт, по которому всюду разбросаны слова, имена и другие потенциальные ответы. Первой задачей разработчиков из IBM было расположить эти слова в некоем согласованном порядке. Затем нужно было взять каждый вопрос и снабдить его метками потенциального местоположения.
Следует помнить, что речь идет не об обычном трехмерном ландшафте, подобном тому, что вы можете увидеть, выглянув в окно, а о сложном математическом ландшафте, разные измерения которого соответствуют разным свойствам, зависящим от качеств, которыми может обладать то или иное слово. Определение и отбор таких качеств требуют особого искусства. Например, слово может иметь сильные географические или хронологические ассоциации или быть связано с миром искусства или спорта. Разумеется, у него может быть и несколько таких качеств, и в этом случае его положение будет определено по всем соответствующим направлениям. Например, Альберт Эйнштейн, поскольку он играл на скрипке, будет иметь координаты как по оси «ученые», так и по оси «музыканты». Но в измерении ученых его величина должна быть больше, чем в измерении музыкантов. Проанализировав 20 000 образцовых заданий, сотрудники IBM нашли около 2500 разных типов ответов, приблизительно 200 из которых охватывали более 50 % задаваемых вопросов.
Алгоритм Watson проводит анализ, состоящий из четырех этапов. Сначала он разбирает вопрос на части, чтобы получить некоторое представление о том, где может находиться ландшафт возможных ответов. После этого переходит к процессу выработки гипотез, в котором выбирает около 200 возможных ответов в зависимости от местоположения вопроса. Затем он оценивает разные гипотезы, для чего берет эти 200 многомерных точек и сводит их к точкам, лежащим на одной прямой, что приводит к ранжированию возможных ответов в соответствии с некой степенью достоверности этих ответов. Если уровень достоверности превышает определенный порог, алгоритм нажимает на кнопку зуммера и предлагает соответствующий ответ. Все это нужно проделать в течение нескольких секунд – иначе участвующие в игре люди ответят первыми.
Возьмем, например, такое задание:
ТО ЯМА, ТО КАНАВА: Место в Азии, прославившееся ужасным событием в ночь на 20 июня 1756 года.
Этот вопрос получит высокие значения географической и временной координат. Можно предположить, что что-то ужасное произошло 20 июня 1756 года в нескольких местах в Азии. Но слово «яма» в названии категории поможет алгоритму, когда он дойдет до этапа ранжирования разных гипотез. Значит, Калькуттская черная яма получит более высокий рейтинг, чем все остальные места Азии, связанные с этой же датой, и исходя из этого Watson сможет дать правильный ответ.
Встречающиеся в задании слова вроде «писать», «сочинять», «перо» или «опубликованный» уводят в направлении художественного творчества. Например, фраза «Исходно – поэма, написанная Александром Пушкиным» означает, что ответ следует искать в области «писателей». После того как алгоритм выберет 200 кандидатов, процедура ранжирования требует тщательного взвешивания значимости каждого из многих измерений, которые выбрала программа. Нужно найти способ измерить, насколько далек от задания гипотетический ответ. Точное семантическое совпадение с отрывком из Википедии может дать ответу очень высокий рейтинг, но оно должно сочетаться с другими факторами. Взять, к примеру, такое задание: «В 1594 году он стал работать сборщиком налогов в Андалусии». По семантическому соответствию высокие рейтинги получат ответы «Торо» и «Сервантес». Но во временном измерении у Сервантеса будет более высокое значение, потому что годы его жизни, 1547–1616, ближе к 1594 году, чем годы жизни Торо, родившегося в 1817-м.
Авторы алгоритма Watson разработали 50 разных критериев ранжирования. Алгоритм начинает с широкого спектра кандидатов, потому что на этом этапе еще неясно, какой ответ получит рейтинг наиболее вероятного. Поэтому алгоритм предпочитает включить в рассмотрение множество возможных ответов, а потом выбрать из них несколько с самыми высокими рейтингами. Это несколько похоже на выбор гостиницы. Сначала вы берете все гостиницы в том городе или районе, в котором вы собираетесь остановиться. Но потом вы применяете систему ранжирования в зависимости от цен и отзывов, так что в результате может оказаться, что жить имеет смысл не в самой близкой к нужному месту гостинице.