Сири использует технологию распознавания речи на основе иерархических моделей Маркова, разработанную компанией Nuance. Расширения для использования разговорной речи впервые были созданы в рамках проекта CALO[108], финансированного агентством DARPA[109]. Сири снабжена собственной технологией компании Nuance, кроме того, компания предлагает очень похожую технологию под названием Dragon Go[110].
Методы, используемые для понимания разговорной речи, очень напоминают иерархические скрытые модели Маркова, да и сами ИСММ часто применяются для данных приложений. Хотя иногда в подобных системах не указано, что они используют скрытые модели Маркова или иерархические скрытые модели Маркова, математические основы их функционирования практически идентичны. Все эти системы применяют иерархию линейных последовательностей, каждый элемент которых имеет вес, контакты самостоятельно адаптируются, а вся система в целом самостоятельно организуется в процессе обучения. Обычно обучение продолжается постоянно на протяжении всего времени работы системы. Этот подход отражает иерархическую структуру разговорного языка — это естественное восхождение по понятийной иерархической лестнице от звуков к словам и далее к словосочетаниям и сложным речевым построениям. Имеет смысл применять ГА для параметров, контролирующих конкретный алгоритм обучения в таких классах иерархических систем, и находить оптимальные элементы алгоритма.
За последнее десятилетие возникли новые способы создания подобных иерархических структур. В 1984 г. Дуглас Ленат начал реализацию проекта Cyc (от enCYClopedic) с целью разработки правил кодирования «бытовых знаний». Эти правила были организованы в виде сложной иерархической структуры, и каждое правило, опять же, включало в себя линейную последовательность утверждений. Например, одно такое утверждение может информировать, что у собаки есть лицо (морда). Далее Cyc выводит более общее правило о структуре лиц: на лице есть два глаза, нос и рот и т. д. Нам не нужно иметь отдельное правило для описания собачьей морды и отдельное — для кошачьей, но мы, конечно же, можем создать дополнительное правило, описывающее различие между кошачьей и собачьей мордой. В системе также реализуется следственный механизм: если есть правила, утверждающие, что кокер-спаниель — собака, что собака — животное и что животные потребляют пищу, то на вопрос, питается ли кокер-спаниель, система ответит утвердительно. За прошедшие с тех пор три десятилетия были затрачены тысячи человеко-лет трудов и написано и проверено более миллиона таких утверждений. Интересно, что язык, на котором пишут правила для Cyc (его называют CycL), практически идентичен языку ЛИСП.
Тем временем приверженцы альтернативной теории мыслительного процесса считают, что наилучший подход к пониманию разговорной речи и вообще к созданию разумных систем заключается в автоматизированном обучении системы на многочисленных примерах понятий и явлений. Мощный пример системы такого рода — программа-переводчик Google Translate, которая способна переводить с 50 языков на 50 языков. Это подразумевает 2500 направлений перевода, хотя в большинстве пар языков программа не переводит напрямую с первого языка на второй, а переводит сначала с первого языка на английский, а уже с него на второй язык. Это приводит к сокращению числа направлений перевода всего до 98 (и еще небольшого числа языковых пар, в которых перевод осуществляется напрямую). Данная программа перевода не использует грамматических правил, а создает обширные базы данных для всех пар на основе переведенных документов из программного продукта Rosetta stone («Розеттский камень»)[111]. Для шести официальных языков ООН[112] Google использует документы ООН, поскольку они всегда публикуются на шести языках. Для других языков применяются другие источники.
Результаты такой работы бывают весьма впечатляющими. DARPA организует ежегодные соревнования для выявления лучших автоматических систем перевода для различных пар языков, и Google Translate часто выигрывает эти соревнования для определенных пар, превосходя системы, напрямую разработанные лингвистами.
За последнее десятилетие было сделано два важных открытия, которые в значительной степени повлияли на развитие систем понимания разговорной речи. Первое имеет отношение к иерархическому строению систем. Несмотря на то что подход Google заключается в поиске ассоциаций между линейными последовательностями слов в разных языках, иерархическая структура языка неизбежно влияет на этот процесс. Системы, применяющие метод иерархического обучения (такие как иерархические скрытые модели Маркова), обеспечивают гораздо более высокую эффективность. Однако создание таких систем — далеко не автоматический процесс. Что верно для людей, которые за один раз осваивают один иерархический уровень понятий, то верно и для компьютеров, так что процессом обучения необходимо тщательно руководить.