2

我正在寻找一种算法,分别是一种在某个程序中学习用户操作(输入)的方法,并基于已完成的用户操作的构建信息库,为用户提供未来操作的建议。信息库应该由使用同一软件的多个用户的操作构建而成。用户操作取决于它们发生的顺序。这意味着,应该根据会话中已经完成的用户操作来提出建议。会话是一个抽象的时间段,用户在其中使用软件。

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

这个问题是否已经有方法、算法、库等?如果没有,我的方法如何?任何替代方案,更好的想法?

4

1 回答 1

2

似乎您正在尝试做“建议”,在您的情况下,该功能是用户完成的“操作”。将个性化(根据每个用户的行为构建模型)或协同过滤(通过查找相似用户关联地构建模型)作为总体方向考虑

您的建议类似于 HMM,您认为观察是用户行为,状态是用户意图。根据您的实际应用程序,这可能有效或无效。

另一种更有希望的建模方法是直接构建判别模型(逻辑回归,svm),使用之前的用户行为和用户历史作为特征来预测下一步行动。如果你有足够的数据,这会很好用

于 2013-08-28T20:33:39.083 回答