Предлагаю осудить проблему создания Чат-бота нового поколения ,на базе рекуррентной сети. Данная схема была реализована в Чат-Боте от Gooogle . Эта система яко бы дает более интересные данные чем база вопрос-ответ. Сам я тему понял слабова-то . Поэтому привожу фрагмент из чужой статьи. Давайте обсудим как подобное реализовать в алгоритмах ,которые в последсвии можно будет перевести в коды программные. Потому как статья написана в общем виде. Может кто-то пытался сделать такое. В общем пора и русским сделать Хорошего Чат- Бота ,а не только забугрцам) Архитектура Здесь есть немалый простор для фантазии. Я начал с простых вариантов и продвигался к сложным, чтобы понять, какая реально польза от различных наворотов. В статьях люди обычно стараются сделать круто и прицепить какой-то новый прибамбас, а в связи с тем, что область новая, то польза от этого не всегда очевидна. Самая простая модель берет соединение последовательности векторов слов контекста и ответа и подает все это на обычный полностью соединенный слой. Поскольку ответ бывает разной длины, его записываем в вектор длины фиксированной, заполняя “лишнее” место нулями. Считается, что это плохо. Посмотрим. Второй вариант отличается тем, что до “смешивания” контекста и ответа им дан “свой собственный” слой для формирования представления. Ну и дальше может быть несколько слоев обработки, на рисунке показано два. Третий вариант кодирует последовательность разной длины с помощью рекуррентного LSTM кодировщика. Это много медленнее и обучается дольше. Но вроде как должно работать лучше. Результаты По способности выбирать правильный ответ из нескольких предложенных вариантов (случайно взятых ответов), самый лучший результат показала модель номер 2, с пятью слоями для анализа данных по 700 нейронов в каждом (+1 слой репрезентации входных данных, тоже из 700 нейронов). Чтобы обучить такую глубокую сеть, пришлось использовать Хайвей (Highway) слои, которые позволяют информации проще распространятся от нижних слоев к верхним, также подождать несколько дней пока модель рассчитывалась на GPU. Модель номер 1 явно недообучилась, а номер 3 долго думала, и тоже не добрала до результатов модели номер 2 несколько процентов. Что напоминает нам о том, хотя самые простые модели не годятся для больших объемом данных, все же никогда не следует умножать сущности сверх необходимости. Получившаяся система располагает базой в 30 миллионов пар реплик, а нейронная сеть имеет около 3 млн. обучаемых параметров. Какие же диалоги можно в результате получить? Ч: Привет К: привет. Ч: Как твои дела? К: Не знаю. Ч: Как тебя зовут? К: меня зовут юнис. Ч: Сколько тебе лет? К: Пятнадцать. Ч: Где ты живешь? К: Дома. Ч: ты учишься в школе? К: Нет Ч: а где ты учишься? К: в бундесвере. Ч: Ты любишь музыку? К: да, я люблю музыку. Ч: Какая музыка тебе нравится? К: в основном я слушаю r&b, фанк. Ч: Ты веришь в бога? К: я и сейчас верю в бога, старина Ч: что такое мораль? К: два человека вместе — разве это не мораль? Ч: какого цвета море? К: цвета океана после шторма. Достаточно хорошо, на мой взгляд. Вот еще пример: Ч: Где живет бегемот? К: Жил Ч: а что, сейчас не живет? К: Я не знаю. Ч: тогда где он жил раньше? К: у парка, на мэйпл стрит. Ч: куда же он пропал? К: куда он пропал? Ч: я тебя спрашиваю, куда он пропал? К: я не понимаю, почему я снова в больнице. Ч: потому что ты болеешь К: я просто хочу помогать людям. Ч: Тогда скажи мне, где бегемот! К: почему ты так сильно хочешь это знать? Ч: просто ответь мне К: ты хочешь, чтобы я помогла тебе попрощаться с родными? Ч: Это угроза? К: Наблюдение Ч: Так где же все-таки бегемот? К: он на гавайях, но радж управляет отсюда Ч: Кто такой радж? К: не встречалась с ним? Ч: Нет, никогда К: жили-были муж с женой, только муж каждую ночь исчезал.