Использование игровых концепций для создания пользовательских агентов в целях исследования рынка

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

Цель состоит в том, чтобы иметь возможность взять небольшую часть нашей системы профилирования (статический фрагмент данных вопросов и ответов за заданное время - пол: мужской / женский, напитки: кока-кола / pepsi / mt.dew, доход: и т. Д.) И запустить пользователя агенты (искусственно разработанные программные роботы или агенты) через нашу систему профилирования, чтобы увидеть, какими будут интерактивные результаты. Поскольку данные вопросов и ответов были бы одинаковыми, способности пользовательских агентов выбирать ответы были бы одинаковыми, и менялись бы только алгоритмы и правила, лежащие в основе работы профилировщика - это теоретически позволило бы нам заранее определить исход любых изменений в наша система. Этот результат позволит нам затем подтвердить изменения, прежде чем внедрять изменения в нашу производственную систему. Надежда будет состоять в том, что мы могли бы легче поймать любые ошибки перед выпуском на волю. Но это также позволило бы нам проверить изменения в логике для поиска оптимизаций в профилировщике.

Мой вопрос: для кого-то вроде меня (в основном C#/.NET), который действительно работал только в пространстве веб-приложений, где я могу начать создавать пользовательские агенты, способные взаимодействовать с внешней системой, такой как моя система профилирования? Мне особенно нужно знать, как раскрутить 1000 (тысячу) агентов и заставить их взаимодействовать с моей системой профилирования (в течение заданного промежутка времени), чтобы иметь возможность отвечать на вопросы, которые им предоставляет система профилирования на основе характеристик которые динамически определяются в пользовательском агенте во время инициализации.

Примером этого является то, что мне нужны некоторые черные агенты, некоторые китайские агенты, некоторые мужчины-агенты, некоторые женщины-агенты, некоторые старые агенты, некоторые новые агенты, некоторые религиозные агенты, некоторые, которые пьют кокс, и т. Д., И все они смешаны вместе, чтобы наиболее соответствующим образом напоминают мир. У нас уже есть демографическая разбивка нашего населения, так что мы можем легко раскрутить 10% чернокожих мужчин, 60% белых женщин, оставшихся дома матерями, и все другие представления нашего населения.

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

В разговоре с моим коллегой было предложено использовать некоторые из платформ искусственного интеллекта и графическую карту на 1000 процессоров (у нас она уже есть), чтобы получить сверхвысокую высокую производительность от множества пользовательских агентов. Где каждый процессор является агентом...(как-то так).

Есть ли кто-нибудь с опытом в таких вещах? Доказательство проблем с вымышленной моделью мира?

1 ответ

Решение

Вы говорите "взаимодействовать с внешней системой" - каков интерфейс этой системы и как человек ее использует? Это через Интернет? Если это так, вы тратите время на размышления об оптимизации графического процессора и тому подобное, поскольку узким местом вашей производительности будет сеть, даже по локальной сети. В таких обстоятельствах вы можете просто запустить агентов последовательно. Даже если бы вы могли эффективно порождать 1000 агентов одновременно (возможно, на нескольких машинах), велика вероятность, что вы просто нанесете вред целевому серверу при случайной атаке типа "отказ в обслуживании", так что это контрпродуктивно. Однако если у вас есть возможность изменить этот интерфейс, чтобы обеспечить прямое межпроцессное взаимодействие, вы можете вернуться к рассмотрению подхода массивного параллелизма. Но тогда 1000 не является большим числом в вычислительном отношении. Скорее всего, вы потратите больше времени на выполнение алгоритма параллельно, чем сэкономите, если будете работать таким образом.

Что касается "систем искусственного интеллекта", я не думаю, что есть что-то настолько расплывчатое, что могло бы вам помочь. ИИ и интеллектуальные агенты - это огромная область - книга " Искусственный интеллект: современный подход", которая представляет собой стандартный вводный текст об интеллектуальных агентах, имеет длину более 1000 страниц и содержит, возможно, 20 или 30 полностью независимых методов, многие из которых могут относиться к вашей проблеме, многие из которых не будут. Если вы сможете более четко указать, какие задачи должен выполнять агент и какие у него есть входные данные для принятия этих решений, то становится возможным выбрать достойную технику. На самом деле, может оказаться, что ваша проблема вообще не требует ИИ, если у вас есть четкое соответствие между демографией агентов и принятием решений - вы просто ищете ответ для использования из таблицы, которую вы сделали ранее. Поэтому важно сначала решить, какую проблему вы пытаетесь решить.

Другие вопросы по тегам