«Милый, ты где? — В ФБР, черт возьми!»
Студенты первого курса магистерской программы «Компьютерная лингвистика» побывали на мастер-классе по созданию диалоговых систем в компании «Яндекс». Лингвист Светлана Григорьева, проводившая мастер-класс, рассказала о том, как пользователи разговаривают с поисковиком и другими продуктами «Яндекса», чем диалоговые и особенно голосовые запросы отличаются от обычных, а также какие алгоритмы и технологии используются для создания современных диалоговых агентов и электронных помощников.
У диалогового поиска, особенно с использованием голосового ввода, есть множество проблем, несущественных для традиционного поисковика. Ведя живой диалог с любым устройством (смартфоном, компьютером), человек быстро забывает, что общается с машиной, поэтому любой неадекватный ответ системы сильно раздражает и приводит к отказу от её использования.
В обычном поиске (т.е. с вводом текстового запроса в поисковую строку) пользователь самостоятельно выполняет часть работы по аналитике выдачи, просматривает ее глазами, отсеивает нужную информацию, не всегда даже отдавая себе в этом отчет. У диалогового агента, отвечающего на поисковые запросы, нет возможности положиться на эту дополнительную экспертизу, а выдать при этом нужно один гарантированно правильный ответ. Практика показала, что ошибка стоит очень дорого — пользователь моментально разочаровывается и уходит в более традиционные способы поиска информации. Человеку психологически крайне неприятно что-то сказать или спросить (— «Какие типы стали есть в нашем цехе?») и не быть понятым правильно (— «Завцеха Иванов и еще двое, места им мало в столовой»).
При этом запросы в диалоге, как правило, сформулированы гораздо сложнее, чем лаконичные 3-4 слова в поисковой строке, в них даже появляются этикетные формы и обращения вроде «милый ботик/Яндекс/поисковичок/Siri/окейgoogle», или «пожалуйста, Яндекс, найди мне...». Такое «очеловечивание» машины со стороны пользователя предъявляет гораздо больше требований к разработчикам любой системы. Например, неожиданные сложности возникли в тот момент, когда «Яндекс» решил предложить альтернативные голоса для команд «Навигатора» (в частности, записи Василия Уткина) — выяснилось, что многие водители, особенно таксисты, уже полюбили оригинальный голос и привязались к нему как к человеку. Однако проблема в том, что этот голос действительно принадлежит живому человеку, сотруднице украинского офиса «Яндекса», и с момента записи он также изменился. Теперь «Яндекс» планирует начать синтезировать голос «Навигатора», но как воспримут это водители, по-прежнему непонятно.
Часть проблем связана непосредственно с голосовым интерфейсом ввода. Так, пользователи стесняются произносить вслух запросы, связанные с болезнями лекарствами и другими интимными вещами (интересно, что это стеснение исчезает при использовании гарнитуры, причем даже в самом людном месте); многие стесняются повторить запрос или слушать при других голосовой ответ, зачитываемый системой; иногда раздражает медленная скорость чтения; возникает «глупое» ощущение из-за того, что непонятно, слушает тебя собеседник или нет; наконец, есть и аппаратные проблемы, связанные с особенностями современных Android-смартфонов (например, единая регулировка громкости динамика для звонка и голосового вывода).
В то же время некоторые возможности, которые в обычных поисковых сценариях воспринимаются как должное, могут выглядеть для пользователя голосового диалогового агента «чудом» и «магией». В первую очередь это относится к исправлению оговорок — задача, конечно, на порядок более сложная, но в целом аналогичная исправлению опечатки в текстовом запросе.
С точки зрения пользовательских сценариев важнейшее отличие диалоговых агентов (в том числе и в первую очередь голосовых) — сама возможность естественной беседы с пользователем. Многие пользователи приходят именно за общением и намеренно вызывают систему на диалог. Создание агента, способного длительно поддерживать такой диалог, хотя бы внутри определенной области, — крайне сложная задача. Существует множество методов разработки диалоговых движков, основанных как на правилах, шаблонах, жестких алгоритмах разговора, так и на различных методах машинного обучения. Последние используют уже имеющиеся корпуса диалогов, а также совершенствуются и «дообучаются» на собственном опыте разговоров.
Разумеется, область разработки диалоговых агентов не мог не затронуть и продолжающийся последние годы бум искусственных нейронных сетей. Эксперименты с нейросетями проводили и в «Яндексе», причем созданная система в некоторых случаях ведет себя с впечатляющей естественностью, особенно на фоне достаточно шаблонных ответов Siri. При этом острой проблемой становится сбор данных для обучения, которых нейросетям требуется особенно много. При отсутствии собственного популярного мессенджера «Яндексу» приходится искать альтернативы. В частности, для обучения тестировался русскоязычный Twitter, который оказался слишком «молодым» (на вопрос «ты где?» обученная на твитах система отвечала либо нецензурно, либо «в школе»). Неидеальны оказались и субтитры фильмов — при их использовании диалоговый агент, по словам разработчиков, стал походить на вампира из кино, а самым частым ответом на все тот же вопрос «ты где?» оказывался «в ФБР, черт возьми».