Данные Cleverbot для машинного обучения

  1. Данные разговора Наши данные разговора доступны для проектов машинного обучения. пожалуйста связаться...
  2. Вступление
  3. история
  4. Как это устроено
  5. Cleverbot сегодня
  6. Образцы разговоров и поклонники
  7. Интерфейсы Cleverbot
  8. Языки и демография
  9. Языки
  10. Юникод диапазоны
  11. Демография
  12. Статистика данных
  13. Пригодность для машинного обучения
  14. Эксперименты машинного обучения Existor
  15. гипотеза
  16. 1 Предварительная обработка
  17. 2 Word2vec
  18. 3 Суммирование
  19. 4 Кластеризация
  20. 5 опять Word2vec
  21. 6 Тестирование
  22. Результаты
  23. Другие тестовые наборы
  24. Анализ
  25. Cleverbot RNN Language Model
  26. Заключение
  27. Какие структуры могут быть обнаружены в корпусе Cleverbot?
  28. И можно ли его использовать для создания более интеллектуального собеседника?

Данные разговора

Наши данные разговора доступны для проектов машинного обучения. пожалуйста связаться с нами для деталей.

Резюме

В настоящее время наблюдается всплеск работы над языковыми моделями, вдохновленными нейронными сетями. Алгоритмы, такие как word2vec а также перчатка преобразуйте слова в векторы, и затем математически сможете решить аналогии, такие как «Лондон - это Англия, как Париж -?». Для достижения максимальной производительности этим моделям требуются огромные объемы данных, например, 100 миллиардов слов в корпусе Новостей Google. Существует соответствующий интерес к использованию подобных методов для создания реалистичного разговорного агента. Но разговорные данные, необходимые для обучения этих моделей, намного тоньше на земле. Набор данных содержит около 3 миллиардов диалоговых взаимодействий. Эта статья описывает этот набор данных и описывает наш эксперименты машинного обучения на данных.

Вступление

Языковые модели имеют дело с вероятностями последовательности слов. Например, после слов «кто твой» языковая модель может вычислить вероятность того, что следующим словом будет «имя», «возраст», «любимый» или что-то еще целиком. С 1980-х годов исследователи используют нейронные сети для создания этих моделей. Различный сетевые структуры были предложены в том числе рекуррентные нейронные сети в 2010 году. затем в 2013 году Томаш Миколов и др. выпустила алгоритм word2vec, сложную и высоко оптимизированную нейронную сеть для преобразования слов в векторы. word2vec был переломным моментом в развитии языковых моделей и получил большое внимание.

Существует также большой объем работ по превращению предложений в векторы. Много подходов комбинировать отдельные векторы слов различными способами или используйте векторы слов в качестве входных данных для нейронной сети, которая изучает предложение и векторы абзаца ,

В начале 2015 года Google сделала еще один шаг и смоделировала целые разговоры создать Chatbot , Для создания этого чат-бота Google использовал базу данных 5,5 миллиона субтитров к фильму , Сравните это со 100 миллиардами слов Корпуса Новостей Google или с тремя миллиардами слов в Википедии.

Имея это в виду, мы хотели бы представить набор данных Cleverbot с 3 миллиардами разговорных взаимодействий и примерно 10 миллиардами отдельных слов. Данные Cleverbot, вероятно, являются самым большим источником диалогового взаимодействия между машиной и человеком, доступным где-либо. Какие структуры в данных могут быть выявлены? И можно ли его использовать для создания более интеллектуального собеседника, чем нынешний Cleverbot? Эта статья дает подсказки на ответы на эти вопросы.

история

Cleverbot - это алгоритм и данные, стоящие за очень популярными сайтами. Cleverbot , Эви а также Boibot , Алгоритм Клевербота со временем стал более сложным, но основная идея была изобретена Ролло Карпентером в 1982 году как петля обратной связи. Каждый раз, когда пользователь что-то говорит, Cleverbot изучает это и затем выбирает оптимальный ответ из прошлого обучения. Ролло начал работать над алгоритмом более серьезно в 1988 году, и он вышел в сеть под названием Jabberwacky в 1996 году. в 2006 году он был переименован в Cleverbot, а в 2007 году, выступая от имени компании Existor Ltd, аватар Эви присоединился к Cleverbot. Оба были также выпущены как приложения для смартфонов.

Ядро Cleverbot - это база данных, записывающая каждое диалоговое взаимодействие, которое у него есть. По нашим оценкам, с тех пор, как в 1996 году он начал изучать онлайн, в Cleverbot было 7 или 8 миллиардов взаимодействий. Работа с такими объемами данных является сложной задачей. Требования к хранению и обработке определяют, сколько данных можно хранить и активно использовать одновременно.

Cleverbot в настоящее время накапливает новые данные со скоростью около 4-7 миллионов взаимодействий в день. Мы сохранили около 1,4 миллиарда таких взаимодействий. Однако для формулирования ответа Cleverbot в настоящее время использует «только» 279 миллионов взаимодействий, то есть около 3-4% всех данных, которые он когда-либо изучал. Даже использование такого количества данных требует большой оптимизации. Чтобы справиться с этим у нас есть несколько быстрых серверов с большими видеокарты для обработки GPU наряду с оптимизацией на каждом уровне обслуживания.

Как это устроено

Каждый раз, когда пользователь что-то говорит Cleverbot, Cleverbot изучает это и затем пытается сопоставить это с тем, что пользователь сказал ранее. Представьте себе первую версию, созданную на крошечном компьютере с 1 КБ памяти. В самом начале Cleverbot запускается без данных и просит пользователя что-то набрать:

Все, что говорит пользователь, сохраняется как данные. Если пользователь говорит «привет», Cleverbot узнает, что это хорошая вещь, чтобы сказать в начале разговора:

Диалог Вход Вход Выход 1 привет

Cleverbot должен что-то сказать, и имеет только один возможный вывод , поэтому он говорит, что:

В этом случае Cleverbot узнает, что «как дела?» - это уместно сказать после «привет»:

Диалог ID Вход Выход 1 привет 1 привет как дела?

Теперь Cleverbot пытается сопоставить весь свой разговор (привет / привет / как дела?) Со всеми своими данными. На данный момент он может выбирать только между словами «привет» и «как дела?», Но вскоре у него будет гораздо больше вариантов:

Теоретически, процесс, описанный выше, будет продолжаться до тех пор, пока Cleverbot не выучит все возможные разговоры. Обладая бесконечно большой базой данных и бесконечно быстрым механизмом поиска, он мог бы реагировать точно так же, как и человек в любом диалоговом контексте. Это может показаться человечным, но, конечно ... это займет бесконечно много времени, и люди не всегда говорят, что вы хотели бы, чтобы они.

Cleverbot должен управлять проблемой: он должен работать нечетко, находя лучшее доступное решение, учитывая неполные и несовершенные данные. Он не имеет простых запрограммированных приемов, используемых другими ботами, и не использует простой поиск по ключевым словам. Cleverbot даже не работает со словами. Вместо этого алгоритм подобия центральной строки сравнивает целые строки друг с другом - миллионы раз за каждый ответ, который он дает. Описание этого алгоритма выходит за рамки данной статьи.

Ответы Cleverbot часто показывают удивительную степень уместности, человечности или даже очевидного интеллекта. Бесчисленное количество раз он убеждал посетителей, что это на самом деле человек. Нельзя сказать, что Cleverbot обладает интеллектом, а скорее заимствует его.

Задача обработки Cleverbot может быть суммирована как «выстраивание» всего разговора, который он ведет сейчас, со всеми теми, что он проводил в прошлом, для нахождения максимально возможного числа перекрывающихся контекстуальных сходств.

Cleverbot сегодня

Наши сайты очень популярны, и степень вовлеченности пользователей является исключительной.

В прошлом году объединенные сайты cleverbot.com, existor.com, eviebot.com и boibot.com посетили 69,1 млн. Сессий с 41,8 млн. Различных посетителей, с 2,04 млрд. Просмотров / взаимодействий страниц и в среднем около 12 минут на сессию ,

Таким образом, около 14 миллионов человеко-часов было потрачено на взаимодействие в течение года. 7.1 миллионов сессий года длились более 30 минут, а многие намного дольше. 2,8 миллиона разговоров достигли своего 100-го взаимодействия, 475 тысяч - 200-го, а 67 тысяч - 400-го. Эти цифры все из Google Analytics.

Вовлеченность настолько высока, потому что люди в целом получают именно то, что они хотят: веселый разговор, который созвучен тому, как они хотят говорить. Cleverbot говорит на многих языках, в бесчисленных стилях и на любую тему под солнцем. В значительной степени это отражает человека, который пришел поговорить с ним.

Образцы разговоров и поклонники

За эти годы миллионы людей разместили части своих разговоров Cleverbot в Интернете. это Buzzfeed статья с начала 2014 года собирает несколько забавных, и поиски быстро обнаружат еще много. Мы курировали некоторые примеры разговоры и имеют чирикнул короткие фрагменты.

У Cleverbot много преданных поклонников, включая тех, кто принимал участие и продюсировал «Ты меня любишь», фильм Cleverbot и живой театр в Игра Cleverbot ,

Некоторые из лучших в мире YouTube-юзеров создают видео о том, как они разговаривают с Cleverbot и нашими аватарами на разных языках, часто разными способами, включая PewDiePie , squeezie и многое другое.

Одно из наших любимых видео из лаборатории Cornell Creative Machines. На видео показаны два аватара, которые ведут беседу Клевербот-Клевербот. После предварительных экзаменов они заканчивают религиозными дебатами с необычной изюминкой:

После предварительных экзаменов они заканчивают религиозными дебатами с необычной изюминкой:

На более серьезной ноте, Cleverbot хорошо выступил в нескольких неофициальных Тесты Тьюринга на протяжении многих лет. Есть также описания 59% человек а также 42% человек результаты на cleverbot.com.

Интерфейсы Cleverbot

Алгоритм Cleverbot и данные сегодня имеют три основных интерфейса на веб-сайтах. Cleverbot , Эви а также Boibot :

Все они используют адаптивный макет, поэтому их можно легко использовать на телефоне или планшете. Они интуитивно понятны, со значком настроек и значком микрофона, где поддерживается. Evie и Boibot также имеют графические аватары с преобразованием текста в речь. Эви и Бойбот начинают разговор (со случайного набора открывающих строк примерно на 10 языках), тогда как Cleverbot ждет, чтобы пользователь начал, как в примере выше. Во время разговора связь с сервером происходит через AJAX, а Javascript обновляет интерфейс для отображения истории разговоров.

Языки и демография

Хотя Cleverbot начал в основном на английском языке, сейчас он используется во всем мире. В сентябре 2015 года наибольшее количество посетителей было из США, Польши, Мексики, Германии, Венгрии и Аргентины:
Хотя Cleverbot начал в основном на английском языке, сейчас он используется во всем мире

Языки

Это также отражено в языках, на которых говорят Cleverbot. У нас есть два основных метода анализа использования языка. В браузерах, поддерживающих речь webkit (например, Google Chrome), интерфейс отображает микрофон, по которому пользователь может нажать, чтобы включить автоматическое распознавание речи. В то же время им предлагается выбор языка, который мы записываем вместе с взаимодействием. Второй метод - Google Analytics. Использование ASR более точно, но относится только к небольшому количеству пользователей. Два метода примерно согласуются с результатами. В сентябре 2015 года топ-10 языков были следующими:

Язык ASR язык Английский 28,7% Испанский 28,6% Немецкий 8,2% Итальянский 7,5% Румынский 6,1% Польский 5,3% Венгерский 3,9% Французский 2,0% Турецкий 1,0%

Это отражает только данные, собранные за один месяц. Трудно проанализировать содержание языка всего набора данных. Большинство процедур определения языка рекомендуют вводить десятки или сотни слов. Мы можем определить язык по всему разговору, хотя многие пользователи переключаются между языками. Часто разговор начинается на английском и меняется на испанский или немецкий, когда пользователь понимает, что Cleverbot говорит на своем языке. Основываясь на неофициальных измерениях обнаружения языка, мы подозреваем, что полный набор данных примерно соответствует вышеуказанным пропорциям, но с большим количеством английского языка.

Юникод диапазоны

Мы можем более надежно измерить Юникод диапазоны активной базы данных Cleverbot (279 миллионов строк). Эти диапазоны сродни алфавитам. Например, номера Unicode от 32 до 591 представляют латинские символы, используемые для написания большинства европейских языков. По состоянию на октябрь 2015 года активная база данных содержит следующее распределение диапазона Юникода. В этой таблице греческий язык особенно интересен, потому что Cleverbot полностью осознал UTF-8 только в конце 2014 года. Греческий язык изучался практически с нуля с использованием механизма обучения, описанного выше, и теперь насчитывает около 40 000 строк. Данные из России, Японии и Кореи были импортированы из отдельных языковых версий Cleverbot примерно в одно и то же время, и с тех пор значительно выросли.

Диапазоны Unicode Количество строк (октябрь 2015 г.)% латиница 258m 99,22% кириллица 1,4m 0,55% Hirigana & Katakana (японский) 314k 0,12% Hangul (корейский) 195k 0,08% греческий 40k 0,02% арабский 15k 0,01% иврит 3k 0,001% CJK (китайский) логограммы) 2k 0,001% Всего 279 м 100%

Демография

По данным Google Analytics (сентябрь 2015 г.), все три веб-сайта наиболее популярны в возрастной группе 18-24 года. Мы подозреваем, что до 18 лет также составляют значительную часть наших посетителей, хотя это не измеряется в Google Analytics:
По данным Google Analytics (сентябрь 2015 г

Согласно графику, более 60% наших пользователей находятся в возрасте от 18 до 24 лет. Google Analytics также показывает, что 55% наших посетителей - женщины, а 45% - мужчины, что, возможно, является противоположностью тому, что вы можете ожидать от бота, и показывает его более социальную значимость.

Статистика данных

Мы упомянули, что Cleverbot активно использует меньше данных, чем мог бы из-за технических практических возможностей. Есть также социальные и моральные соображения.

Cleverbot использует множество правил и шаблонов фильтрации, чтобы определить, какие строки должны составлять активную базу данных. Правила предпочитают более длинные неповторяющиеся линии и разговоры, и в значительной степени запрещают ругательства и откровенные сексуальные ссылки, чтобы помешать Cleverbot участвовать в таких действиях. Большая часть фильтрации состоит из совпадений со списками строк, которые вручную подбираются, которые более полно определены в английском, чем в большинстве других языков.

Имея это в виду, мы можем представить некоторые общие статистические данные о данных Cleverbot с фактическими и оценочными данными на 2 декабря 2015 года:

Мера Активный набор данных Нефильтрованный набор данных Общий размер данных 320 миллионов 1565 миллионов Средняя продолжительность разговора 33 взаимодействия 45 взаимодействий Предполагаемая средняя продолжительность разговора 23 взаимодействия 23 взаимодействия

Большая часть наших активных данных была собрана до того, как мы начали хранить все нефильтрованные данные, и в результате только 6,5% нефильтрованных данных существуют также в активном, отфильтрованном наборе данных. Исходя из этого, можно сказать, что общее количество линий составляет 1587 миллионов.

Пригодность для машинного обучения

Теперь мы представили набор данных Cleverbot, включая способ сбора данных и краткую статистическую разбивку. Теперь рассмотрим, насколько пригодны эти данные для машинного обучения.

Прежде всего, мы должны провести различие между «взаимодействиями» и «линиями». До сих пор вся статистика ссылалась на разговорные взаимодействия: бот что-то говорит, а пользователь отвечает. Каждая строка в базе данных представляет одно из этих взаимодействий.

В целях машинного обучения мы считаем, что пользовательская сторона разговора надежна почти на 100%. Другими словами, учитывая контекст всех предыдущих строк, ответ пользователя на этот контекст почти всегда является надежным человеческим ответом, хотя мы не можем претендовать на его интеллект. Некоторые люди ругаются на Cleverbot или пытаются поболтать, меняют тему в каждой строке или вводят полную чушь. Но все это все еще действительные человеческие ответы в текущем разговорном контексте. Очень маленький процент может быть другими ботами, болтающими с Cleverbot (или Cleverbot, болтающими против себя), но у нас есть различные правила на наших серверах высшего уровня, чтобы предотвратить такое использование или обучение.

С другой стороны, разговор Клевербота является отражением того, что говорили другие пользователи в прошлом. Обычно он следует за ходом разговора, а иногда он поразительно хорош, но он также может внезапно менять темы и может показаться, что у него плохая фактическая память - он забывает имена и предпочтения.

Поэтому существует два подхода к использованию данных Cleverbot для машинного обучения:

  1. Тренируйтесь только с пользовательским вводом, используя оставшуюся часть разговора в качестве контекста для каждого пользовательского ввода
  2. Предположим, что Cleverbot является относительно последовательным и тренируется, используя обе стороны разговора в последовательности

Мы выполнили большую часть нашего собственного теста машинного обучения на данных, используя второй метод, описанный выше, потому что он эффективно удваивает размер набора данных и с ним намного проще работать.

Эксперименты машинного обучения Existor

В 2015 году мы начали использовать современные методы машинного обучения для создания нового, более интеллектуального диалогового ИИ. Мы начали с неконтролируемых методов обучения, чтобы построить модель, которая могла бы фиксировать естественную структуру наших данных на уровне строк и разговоров. Мы были вдохновлены векторными отношениями на уровне слов, которые раскрывает word2vec. К ним относятся такие вещи, как отношения между столицей и Китаем : Китай - Пекин = Россия - Москва = Япония - Тойко и известный теперь пример пола - король - королева = мужчина - женщина . Впечатляюще, они могут быть построены, наглядно показывая структуры данных на уровне слов:
В 2015 году мы начали использовать современные методы машинного обучения для создания нового, более интеллектуального диалогового ИИ

Мы надеялись, что наша модель закодирует нечто подобное на уровне строки, чтобы показать, что мы « должен знать линию компании, которую он держит «. Как описано во введении, переход от векторов слов к векторным строкам (проблема композиции) является проблемой открытого машинного обучения. Мы надеялись, что с огромным количеством данных мы сможем более или менее обойти проблему и напрямую проанализировать отношения между строками, не разбивая их на слова. Это оказалось непрактичным. Слишком много уникальных линий. Мы также рассмотрели векторы абзаца но они не работают с однострочными строками, такими как «Hello!», которых в данных Cleverbot много. Вместо этого мы использовали простой композиционный подход с последующей кластеризацией, чтобы уменьшить количество уникальных линий, а затем проанализировали кластерные линии. Все эти этапы не контролируются. Наш эксперимент был следующим:

гипотеза

Мы стремились построить эффективную модель данных Cleverbot для кодирования отношений на уровне линии. Мы предположили, что мы обнаружим простой вопрос / ответ и формальные / неформальные отношения между линиями. Например, мы подумали, что в следующих отношениях будет указано, сколько вам лет - 40 лет = как вас зовут - Фрэнк и привет - привет = как вы - что случилось . Для этого мы реализовали следующий конвейер:
Мы стремились построить эффективную модель данных Cleverbot для кодирования отношений на уровне линии

1 Предварительная обработка

До сих пор мы работали с небольшими подмножествами активного набора данных Cleverbot. Мы протестировали 2 миллиона, 20 миллионов и 50 миллионов строк (1, 10 и 25 миллионов взаимодействий), одинаково рассматривая как бота, так и пользователя. Сначала мы извлекаем столбцы ботов и пользователей из необработанных файлов журналов, строчные буквы и удаляем знаки препинания. Мы сохраняем вывод в длинный текстовый файл с каждой строкой разговора в одной строке файла. Мы добавляем строку «EOC» в конце каждого разговора в качестве маркера.

2 Word2vec

Мы запускаем полученный текстовый файл через word2vec, чтобы превратить все слова в 100-мерные векторы. Мы используем относительно небольшие размеры, чтобы следующие этапы работали быстрее. Мы используем скип-граммы с контекстным окном 12 (которое обычно охватывает всю строку, так как они в среднем состоят из 3 слов).

3 Суммирование

Мы повторно обрабатываем текстовый файл, чтобы получить вектор для каждой строки суммированием.

4 Кластеризация

Затем мы группируем эти суммированные (и нормализованные) линии. Обратите внимание, что этот шаг только для уменьшения количества уникальных строк. Например, он позволяет группировать близкие варианты «как тебя зовут», например «как его зовут», «как тебя зовут». Для строк с несколькими словами эти группы обычно содержат одинаковые слова в разных порядках. Для строк с 1 или 2 словами кластеры содержат разные слова, используемые в сходных контекстах, такие как числа (18, 21, 20) или имена (bob, paul, lisa, jenny).

Для кластеризации мы написали собственную C-реализацию мини-пакетных K-средних с инициализацией K-means ++. В наборе данных, состоящем из 50 миллионов строк, имеется около 24 миллионов уникальных строк, и только 6 миллионов встречаются более одного раза. Мы изменили алгоритм кластеризации для работы с уникальными линиями плюс количество строк. Это приводит к несколько большей ошибке суммы квадратов, но означает, что мы можем запустить ее в 10 раз быстрее. Вывод представляет собой вектор для каждого кластера. Мы используем это для маркировки исходного текстового файла, сопоставляя каждую строку с ближайшим кластером.

Выбрать точное количество кластеров сложно, потому что мы не стремимся просто уменьшить ошибку суммы квадратов. Скорее, мы хотим, чтобы достаточно мало, чтобы найти структуры, но достаточно, чтобы эти структуры имели смысл. В крайнем случае, если есть только 1 кластер, то все линии будут назначены одному кластеру, и поэтому все векторные операции будут равны 0, например, «как тебя зовут» - «откровенный» = C1 - C1 = 0. В другом Если каждая уникальная строка находится в своем собственном кластере, кластеризация не помогла вообще. В соответствии с нашей процедурой тестирования, описанной ниже, мы получили 10-30 000 кластеров для 50-метровых строк данных.

5 опять Word2vec

Затем мы снова запускаем word2vec на помеченных строках. Словарный запас этого экземпляра word2vec невелик, поскольку он просто представляет кластеры. Мы нашли лучшие результаты, используя метод непрерывного набора слов с небольшим количеством измерений (20-25) и маленьким контекстным окном, потому что мы хотели, чтобы наша модель захватила более сфокусированная информация о линиях ,

6 Тестирование

Мы проверили наши векторы, используя аналогичный подход к Google, создав файл отношений, который мы ожидали найти, например откровенный - как вас зовут + сколько вам лет = 40 лет, и выяснили, сколько отношений были правильными.

Однако этот метод страдает от проблемы, описанной выше, со 100% -ным баллом, когда каждая строка назначается одному и тому же кластеру. Мы поняли, что это на самом деле является отражением более широкой проблемы со всеми вычислениями word2vec, где результирующие векторы часто очень близки к одному из операторов. Таким образом, оценка для нашего конвейера была основана на том, насколько хорошо «40 лет» соответствовал откровенному - как вас зовут + сколько вам лет в сочетании с тем, насколько оно отличается от «откровенного» и «сколько вам лет». Мы придумали процентную метрику, чтобы представить это.

Результаты

Имея это в виду, мы нашли отношение вопрос / ответ, которое мы искали, но не формальное / неформальное, которое кажется гораздо более тонким. Приведенный ниже график основан на 50 миллионах строк данных с 20 000 кластеров, которые показывают первые два измерения после PCA. Он набрал 21% по нашей метрике. Чтобы обозначить график, мы работали в обратном направлении от номеров кластеров (например, C12) и нашли наиболее часто встречающуюся линию рядом с этим кластером. Обратите внимание, что это даже включает в себя некоторые межъязыковые отношения, например, как вас зовут - paul = de donde eres - de argentina (откуда вы родом из Аргентины). Также показано трехмерное представление с использованием WebGL. Нажмите на изображение, чтобы открыть визуализацию, а затем используйте колесо мыши, чтобы увеличивать и уменьшать масштаб и исследовать 6000 кластеров в 3D , но это работает только в Chrome.
Имея это в виду, мы нашли отношение вопрос / ответ, которое мы искали, но не формальное / неформальное, которое кажется гораздо более тонким

Другие тестовые наборы

Мы также запустили базу данных субтитров к фильму. Он набрал не более 3% в соответствии с нашей метрикой. Это широко означает, что отношение вопрос / ответ не было отражено в данных субтитров фильма.

Анализ

Это намекает на способность построить довольно эффективную модель диалоговых данных, используя неконтролируемый конвейер. Как мы показали выше, эта модель может использоваться для ответов на вопросы с помощью простых векторных операций. Мы предполагаем, что это работает, потому что разговоры представляются в виде последовательностей, таких как «приветствие, ответ, ответ, вопрос, ответ, приветствие, ответ». Если конкретная пара вопросов / ответов встречается достаточно часто в этих контекстах, отношение вопрос / ответ кодируется в векторном пространстве. Это скорее похоже на пометки частей речи, но на уровне строк. Тэгеры частей речи также используют небольшие контекстные окна для извлечения отношений между словами и их непосредственными соседями. Этот конвейер делает что-то похожее на линии.

Ниже представлена ​​трехмерная визуализация, которая может дать представление о будущем «мозге» Cleverbot. Чтобы представить разговор, вы можете нарисовать путь между метками. Конечно, будущий «мозг» Cleverbot будет иметь сотни измерений, и очень трудно провести черту в таком многомерном векторном пространстве, но 3D - лучшее, что мы можем сделать в нашей ограниченной физической реальности.
Ниже представлена ​​трехмерная визуализация, которая может дать представление о будущем «мозге» Cleverbot

Cleverbot RNN Language Model

Наша текущая работа по машинному обучению включает использование данных Cleverbot для обучения языковой модели для генерирования диалоговых ответов. Эта работа находится на начальной стадии, но мы уже видим хорошие результаты. В приведенных ниже разговорах пользователь говорил с языковой моделью, а ответы модели генерировались слово за словом. Мы обучили его всего лишь 7,5 миллионам строк английских данных Cleverbot, разбитых на разговоры, используя готовый RNN с GRU для функции активации и один скрытый уровень с 256 узлами. Каждый отдельный разговор рассматривался как отдельная последовательность с маркером начала разговора и маркерами конца строки между строками. Размер словарного запаса составлял около 200 000 слов. Для этого мы не программировали самостоятельно - просто использовали доступные инструменты и оптимизировали различные параметры.

Пользователь: тебе есть что сказать?
РНН: да.
Пользователь: о чем поговорим?
RNN: кто ты?
Пользователь: я это я. ты кто-нибудь?
РНН: я.
Пользователь: но ты не настоящий.
РНН: Да, я.
Пользователь: вы - рН.
РНН: нет, я нет.

Более важным, чем какой-либо один ответ RNN, является рассмотрение первых нескольких результатов с учетом диалогового контекста, такого как точка последнего ответа выше. Возможные альтернативные ответы показывают контекстуальную релевантность, а также хорошую конструкцию предложения:

-2.125913 нет, я нет.
-3.138643 меня зовут умный бот.
-3.743327 я так не думаю.
-4.362488 ты очень умный.

(Число представляет вероятность каждой последовательности слов.) Еще один пример разговора:

Пользователь: как ты сегодня?
РНН: хорошо.
Пользователь: жизнь имеет значение для тебя?
РНН: иногда.
Пользователь: дай мне пример.
РНН: пример чего?
Пользователь: жизнь вселенной или что-нибудь.
РНН: я.

И первые несколько результатов в этом контексте:

-3,623500 ме.
-4,385503 нет?
-4,981720 я никогда не узнаю.
-5,380015 атеист.

Заключение

В начале этой статьи мы сослались на набор данных Google News Corpus на 100 миллиардов слов и дамп Wikipedia на 3 миллиарда слов и заявили, что мы считаем, что корпус Cleverbot - самый большой набор данных в своем роде. Корпус Cleverbot содержит приблизительно 1,4 миллиарда взаимодействий, увеличиваясь на миллионы в день. Если используются обе стороны разговора, необходимо проанализировать около 3 миллиардов строк разговора.

Затем мы задали следующие вопросы, а теперь попробуем ответить на них.

Какие структуры могут быть обнаружены в корпусе Cleverbot?

Выше мы кратко продемонстрировали виды структур, которые могут содержаться в наборе данных Cleverbot. Это исследование основано на 5 человеко-месяцах исследования с использованием существующих инструментов и существующих идей. И это предполагает, что структура на уровне линии существует. При наличии большего количества времени и ресурсов на эту подсказку можно опираться. Таким образом, первоначальный ответ «отношения на уровне линии могут быть выявлены».

И можно ли его использовать для создания более интеллектуального собеседника?

Мы так думаем, и в настоящее время мы пытаемся создать новую версию Cleverbot, используя методы машинного обучения.

И можно ли его использовать для создания более интеллектуального собеседника?
Какие структуры в данных могут быть выявлены?
И можно ли его использовать для создания более интеллектуального собеседника, чем нынешний Cleverbot?
Привет / привет / как дела?
На данный момент он может выбирать только между словами «привет» и «как дела?
Пользователь: тебе есть что сказать?
Пользователь: о чем поговорим?
RNN: кто ты?
Кто-нибудь?
Пользователь: жизнь имеет значение для тебя?