Статьи / Разработка разговорного ИИ для предприятия: разработка с учетом контекста, а не контента
11.03.2024 г., перевод статьи из блога Rasa, Andrea Kelemen
В нашей серии блогов «Разработка разговорного ИИ для предприятий» сотрудники Rasa рассказывают о ключевых моментах и уроках, извлеченных из опыта работы в этой области. Во втором блоге серии Андреа, старший менеджер по продуктам с опытом работы в UX-исследованиях, делится своими соображениями о важности разработки с учетом контекста, а не контента.
Диалоговые интерфейсы представляют собой новый этап взаимодействия человека и компьютера — коммуникация с помощью визуальных представлений уступает место общению на основе языка. Что это значит для области разговорного ИИ? Как нам адаптировать разработку ПО, ориентированного на взаимодействие с человеком, для создания разговорных ассистентов, которые не просто понимают слова, но и то, что мы хотим выразить ими.
Управление представлениями
Стремление «общаться» с машинами было одной из главных движущих сил развития информатики на протяжении десятилетий. В научном репортаже Массачусетского технологического института, транслировавшемся по телевидению в 1963 году, профессор Стивен Кунс (Steven Coons) объявляет о демонстрации компьютерной программы под названием Sketchpad следующим образом:
Сейчас мы покажем вам человека, который по-настоящему разговаривает с компьютером, но делает он это не совсем привычным способом: не голосом, а графически. Он будет рисовать, а компьютер поймет его рисунки.
Sketchpad стал первым программным обеспечением в истории взаимодействия человека с компьютером, использовавшим концепцию прямого управления визуальными представлениями: с помощью «светового пера» оператор мог рисовать линии и круги, захватывать их, перемещать, изменять их расположение и размер. Sketchpad был разработан Айвеном Сазерлендом (Ivan Sutherland) в 1963 году в рамках диссертации под названием «A Man-Machine Graphical Communication System» — сегодня его обычно называют первым примером графического пользовательского интерфейса, который позволил оператору, не владеющему языками программирования, «общаться» в режиме реального времени с компьютером.
Примерно в то же время, когда появился Sketchpad и первые графические пользовательские интерфейсы, начала набирать силу новая академическая дисциплина, называемая когнитивной наукой. На заре становления этой дисциплины ученые-когнитивисты изучали компьютеры с точки зрения модели человеческого познания и полагали, что, если запрограммировать в систему правильные представления / символы вместе с правилами для управления и передачи, компьютеры смогут научиться рассуждать как человек.
Под влиянием идей когнитивной науки исследователи и дизайнеры в области человеко-компьютерного взаимодействия (HCI / Human-Computer Interaction) начали работать с концепцией ментальных моделей. Они утверждали, что ментальная модель — это существующее в головах пользователей представление о взаимодействии с интерфейсом системы на основе полученного ранее опыта. Дизайнеры полагали, что если они выяснят, какие аффордансы создадут в сознании пользователей правильную концептуальную модель работы системы, то пользователи быстрее научатся управлять системами.
Таким образом, чтобы облегчить создание «правильных» ментальных моделей (достоверного представления реальности), дизайнеры ранних графических интерфейсов основывали свои проекты на привычных объектах реального мира. Файлы стали выглядеть как листы бумаги, каталоги файлов — как папки с файлами, а арифметические операции — как привычные физические калькуляторы. Хороший визуальный дизайн стал синонимом создания скевоморфных представлений: визуальных элементов, смоделированных по образцу объектов реального мира. Этот подход действительно значительно сократил кривую обучения в этих системах, но не по тем причинам, которые в то время теоретизировали исследователи HCI
Я отчетливо помню тот момент, когда в детстве я внезапно осознала, что операционная система Windows была создана по образцу типичных объектов на рабочем месте. Мне тогда было около 8 лет, и я уже свободно владела Windows. Будучи восьмилетним ребенком, живущим в незападной стране, я не была знакома с офисной работой «белых воротничков», поэтому не могла использовать ее в качестве ментальной модели для обучения работы с системой. И все же я поняла, как все устроено, интуитивно, методом проб и ошибок, примерно так же, как научилась говорить: не через зубрежку значений слов и грамматики, а через взаимодействие с родителями.
Успех этих ранних графических интерфейсов заключался в их способности создавать «онтологически чистый» опыт благодаря тому, что они были разработаны на основе довольно специфической области жизни, неизвестной большинству пользователей. Но тот факт, что они были смоделированы на основе примера с устоявшейся организационной структурой, помог создать целостный «мир» или «язык», который было легко освоить даже тем, кто не был знаком с областью, на основе которой они были смоделированы.
Как на самом деле работает язык
Разработка Sketchpad базировалась на предположении, что человеческое общение основано на обработке символических представлений объектов и явлений реального мира. Но на самом базовом уровне человеческий язык — это не просто обращения к хранилищу репрезентаций, а фундаментально контекстуальное и перформативное средство для взаимодействия двух собеседников.
Витгенштейн (Ludwig Josef Johann Wittgenstein нем.), один из самых выдающихся теоретиков языка 20-го века, утверждал, что значение слов не существует независимо от их контекста, использования и грамматики. Чтобы понять значение слова, нужно не иметь в голове какое-то определение, а уметь правильно использовать это слово в тех видах деятельности и практиках, в которых оно обычно используется.
Как пишут Терри Виноград (Terry Winograd) и Фернандо Флорес (Fernando Flores) в своей работе «Компьютеры и познание»:
Когда мы отказываемся от интерпретации, то остаемся не с сутью значения, а его оболочкой.
Или, другими словами, нет языка, существующего вне взаимодействия, и нет взаимодействия, которое происходит в вакууме, вне определенного контекста
Морфологические, синтаксические и семантические соответствия между миром и языком возникают в процессе использования, но не предшествуют ему в качестве управляющей надстройки. Это модели, созданные людьми для структурирования системы (языка), понимание которой у нас есть. Но они не присущи самому языку. И это становится очевидным благодаря успеху моделей нейронного языка.
Когда нейронные сети распознают шаблоны для определения контекстно-ориентированной интерпретации, которая может предсказать вероятность появления последовательности слов, они выявляют паттерны, которые являются наиболее «полезными» для конкретного контекста. Таким образом, если мы определим конкретный контекст взаимодействия, мы сможем подобрать правильные обучающие данные и заставить нейронные сети находить наиболее полезные шаблоны для их адаптации. Это имеет непосредственное значение для разработки: мы должны вести разработку с учетом контекста, а не контента.
Разработка с учетом контекста
Большинство неудачного программного обеспечения становится таким, потому что разработчики не учитывали контекст, в котором оно должно было быть развернуто. А поскольку язык по сути своей контекстуален — это в большей степени актуально и для диалоговых интерфейсов. Плохая разработка не учитывает ситуационный контекст, предысторию и ожидания пользователей, которые приводят к интерпретации, что выливается в определения, принадлежащие не к той области разговора.
Чтобы создавать системы, способные адекватно реагировать на то, что хотят пользователи, а не только на то, что они говорят, мы должны глубоко понимать различные ситуационные и языковые контексты конечных потребителей и то, как они связаны друг с другом и с общей бизнес-задачей.
Многие разработчики чат-ботов считают, что контекст исчерпывается просто созданием нескольких слотов для отслеживания темы разговора и сегментов пользователей, таких как аутентифицированные и неаутентифицированные пользователи. Однако это неизбежно приведет к несоответствию ожиданиям пользователя
Контекст, как минимум, включает в себя следующие элементы:
- На каком этапе пути взаимодействия с организацией находится пользователь?
- Тема разговора (где в диалоге находится пользователь).
- Предыдущие точки соприкосновения между компанией и пользователем.
- Что компания знает о пользователе: личность конечного пользователя — лингвистический профиль, социокультурный контекст — или контекстные профили пользователей (CUP).
- Условия взаимодействия (время, день, место и так далее).
Контекст и ситуация влияют на выбор языкового кода таким образом, что каждый контекст ассоциируется с определенной языковой разновидностью, которая считается подходящей для использования в данном контексте. Если мы хотим, чтобы наша система работала хорошо, обучающие данные должны быть репрезентативными или точно настроенными для конкретной области и языковой разновидности, которую мы моделируем, иначе чат-бот не сможет распознавать токены, которые выходят за рамки области, для которой мы создаем модель.
С развитием таких технологий, как сквозное обучение (end-to-end learning) и большие языковые модели (LLM), деревья решений будут все больше и больше устаревать, а проектирование ограниченных контекстов (Bounded context) станет основным средством создания систем, способных адаптироваться к уникальным потребностям пользователей
Ограниченный контекст — это термин, заимствованный из Domain-Driven Design: подхода к разработке Software 1.0, ориентированного на моделирование программного обеспечения в соответствии с предметной областью и учетом данных экспертов этой предметной области. Ограниченные контексты могут быть полезны и для концептуальной разработки Software 2.0 (нейронных сетей): после определения области, в которой должна работать модель, разные команды разработчиков должны отвечать за разные ограниченные контексты, чтобы убедиться, что они могут точно собирать и корректировать данные, которые являются репрезентативными для этой области.
В случае с системами, основанными на больших языковых моделях, разработка нужных подсказок дополняет обучение на обучающих данных. Понимая область и изменяющийся контекст конечного пользователя, мы сможем придумать подсказки, которые будут создавать диалоги, приводящие к наиболее точному и контекстуально подходящему результату.
В Rasa мы разработали концепцию адаптивного взаимодействия с брендом, делающую персонализацию еще одним шагом к успеху, открывая парадигму, в которой виртуальный ассистент может не просто хорошо соответствовать статичному сегменту конечных пользователей, но и адаптироваться к их изменяющимся потребностям. Поскольку интерпретация является важной частью обычного разговора, а интерпретация в первую очередь зависит от контекста, мы считаем, что прогнозирование меняющегося контекста конечного пользователя является ключом к разработке виртуальных ассистентов, которые способны распознавать не только то, что говорят пользователи, но и то, что они действительно хотят, даже если они не могут точно сформулировать это.
Другими словами, разработка разговорного ИИ в первую очередь должна опираться на контекст и уметь адаптироваться к меняющимся потребностям пользователя, основываясь не только на его высказываниях (содержании разговора), но и на самом контексте.