使用游戏概念构建用于市场调研的用户代理

我在一家在线市场调研公司工作。一年半多的时间里,我们一直在全力以赴地打造这个领域里的下一个重要产品,即对我们的受访者进行(随着时间的推移)分析,以便更好地将他们分配到可用的调查中。我们的研究人员多次(理应如此)要求我们提供一个工具,以证明这个新的分析系统的价值,并预测对其众多算法和规则进行调整后的结果,以表明哪个版本的规则集具有更好的结果。

我们的目标是能够提取分析系统的一个片段(给定时间的静态问答数据切片——性别:男/女,饮料:可乐/百事/激浪,收入:等等),并通过我们的分析系统运行用户代理(人为开发的软件机器人或代理),以查看交互结果会是什么。由于问答数据是相同的,用户代理选择答案的能力是相同的,只有分析器背后的算法和规则会改变——理论上,这将允许我们预先确定对系统进行任何更改的结果。然后,这个结果将允许我们在将更改推送到生产系统之前进行验证。我们希望能够更容易地在发布到实际环境之前捕获任何错误。但这也将允许我们测试逻辑的更改,以寻找分析器中的优化。

我的问题是:对于像我这样(主要是 C#/.NET)主要在 Web 应用程序领域工作的人来说,我应该从哪里入手构建能够与外部系统(例如我的分析系统)交互的用户代理?我特别需要知道如何启动 1000 个(一千个)代理,并让他们在给定的时间内与我的分析系统交互,通过能够根据在初始化时在用户代理上动态定义的特征来回答分析系统呈现给他们的问题。

一个例子是,我需要一些黑人代理、一些华人代理、一些男性代理、一些女性代理、一些年老的代理、一些年轻的代理、一些有宗教信仰的代理、一些喝可乐的代理等等,并将它们混合在一起,以最恰当地代表整个世界。我们已经有了我们人口的统计分解,所以我们可以很容易地启动 10% 的黑人男性,60% 的白人女性家庭主妇,以及我们人口的所有其他代表。

我创建这种系统的最初想法是利用我的 XBOX 360 的强大功能,以及一些经过深思熟虑的代理,这些代理类似于来自面向对象世界的人,并具有一些额外的特征,能够智能地回答一些问题……并猜测其他问题。

在与我的同事交谈时,有人建议我使用一些人工智能框架和一个 1000 个 CPU 的显卡(我们已经有一个了),以便从大量用户代理中获得超快的性能。每个 CPU 都是一个代理……(类似于这样)。

有没有人在这种事情上有经验?用一个虚构的世界模型来验证问题?


回答:

你说“与外部系统交互”——这个系统的接口是什么,以及一个人如何使用它?它是否通过 Web 进行?如果是这样,你就浪费时间考虑 GPU 优化之类的了,因为你的性能瓶颈将是网络,即使在 LAN 上也是如此。在这种情况下,你最好按顺序运行代理。即使你可以有效地同时生成 1000 个代理(可能跨多台机器),很可能你只会因意外的拒绝服务攻击而瘫痪目标服务器,因此适得其反。但是,如果你有能力更改该接口以允许直接进程间通信,你可以回到考虑大规模并行的方法。但即使这样,1000 在计算方面也不是一个大数字。你很可能花费更多的时间来使算法并行运行,而不是通过这种方式节省的时间。

至于“人工智能框架”,我认为没有任何如此模糊的东西可以帮助你。人工智能和智能代理是一个庞大的领域——这本书 Artificial Intelligence: A Modern Approach 是关于智能代理的标准入门教材,超过 1000 页,包含可能 20 或 30 种完全独立的技术,其中许多可能适用于你的问题,许多则不会。如果你能更清楚地说明代理必须执行哪些任务,以及它根据哪些输入做出这些决策,那么选择一种体面的技术就成为可能。事实上,如果代理人口统计与决策之间有清晰的映射,你的问题可能根本不需要人工智能——你只需从你之前制作的表中查找要使用的答案即可。所以,重要的是首先弄清楚你实际上试图解决什么问题。

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注