上周我读到一篇论文,建议将 MDP 作为推荐系统的替代解决方案,该论文的核心是用 MDP 表示推荐过程,即状态、动作、转换概率、奖励函数等。
如果我们为简单起见假设一个单用户系统,那么状态看起来像 k 元组(x1, x2, .. , xk)
,其中最后一个元素 xk 表示用户购买的最后一个项目。例如,假设我们当前的状态是(x1, x2, x3)
,用户按时间顺序购买了 x1,然后是 x2,然后是 x3。现在如果他购买 x4,新状态将是(x2, x3, x4)
.
现在,该论文的建议是,这些状态转换是由动作触发的,其中动作是“向用户推荐项目 x_i”。但问题是这样的行动可能会导致不止一种状态。
例如,如果我们当前的状态是(x1, x2, x3)
,并且操作是向用户“推荐 x4”,那么可能的结果可能是二分之一:
用户接受 x4 的推荐,新状态将是(x2, x3, x4)
用户忽略 x4 的推荐(即购买其他东西),新状态将是(x2, x3, xi)
xi != x4的任何状态
我的问题是,MDP 是否真的支持触发两个或多个不同状态的相同动作?
更新。我认为动作应该被表述为“获得项目 x_i 的推荐并接受它”和“获得项目 x_i 的推荐并拒绝它”,而不是简单地“获得项目 x_i 的推荐”