学习用户输入的算法,并提供建议

我正在寻找一种算法或方法,用于学习用户在特定程序中的操作(输入),并基于已建立的用户操作信息库,向用户提供未来操作的建议。信息库应由使用同一软件的多个用户的操作构建。用户操作取决于它们发生的顺序。这意味着,建议应基于用户在一次会话中已完成的操作。会话是一个抽象的时间段,用户在此期间使用软件。

在我的初步方法中,我考虑将用户操作建模为一个有向图,其中每个节点代表一个独特的用户操作实例。首次执行的用户操作会生成一个新节点。节点有一个计数器,表示用户执行此操作的频率。当一个用户操作在另一个操作之后执行时,就存在从一个节点到另一个节点的转换(模拟用户操作的序列)。对于每次转换,根据后续节点的计数器计算概率(即,有转换的节点)。有一个作为起点的根节点,指向所有初始节点(会话中首先执行的用户操作)。这可能是一个(隐藏的)马尔可夫模型,但我并不确定。这肯定不是贝叶斯网络,因为它可以是一个循环图(这是可取的)。

对于这个问题,已经有方法、算法、库等了吗?如果没有,我的方法如何?有替代方案或更好的想法吗?


回答:

看起来你在尝试做“推荐”,在你的案例中,特征是用户执行的“操作”。考虑到个性化(基于用户行为为每个用户构建模型)或协同过滤(通过寻找相似用户关联性构建模型)作为一个总体方向

你建议的类似于HMM,其中你认为观察是用户操作,状态是用户意图。根据你的实际应用,这可能有效也可能无效。

另一种更有前景的方法是直接构建一个判别模型(逻辑回归、SVM),使用之前的用户操作和用户历史作为特征来预测下一步行动。如果你有足够的数据,这将效果不错

Related Posts

Keras Dense层输入未被展平

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

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

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

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

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

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

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

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

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

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

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

发表回复

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