如何对用户选择概率建模:二元模型与多类模型

数据挖掘 机器学习 预测建模 多类分类 可能性 二进制
2022-02-17 14:56:06

假设 Morpheus 有多个用户提供彩色药丸(来自无限的彩色药丸),Morpheus 总共可以提供 3 种独特的彩色药丸(红色、蓝色、绿色)。诀窍是,Morpheus 只能向用户提供一种药丸,而用户可以选择服用或拒绝服用。(另外,用户的决定是相互独立的)

现在,Morpheus 想对他的提议变得聪明,并希望对用户进行建模,以便用户选择他提供的药丸。用户喜怒无常,不确定他们会随机选择。

拒绝可能是由于多种未知原因,例如I didn't like the color of the pill, I will choose the pill later, I want to understand more about this pill,Show me other pills before I decide

现在有两种方法可以考虑建模:

  1. 将此视为二元分类
  2. 将其视为多类分类

当我将其视为二元分类时,我将pill color作为特征与其他特征一起传递user features给模型,我的输出是用户服用或拒绝给定药丸颜色的药丸的概率。然后,Morpheus 可以提供最高概率的药丸颜色。这将在建模时同时使用用户AcceptReject决策,但存在一些不确定性,同一类型的用户可以随机接受或拒绝。

当我将其视为多类分类时,我尝试预测药丸颜色本身。我不会在训练中使用被拒绝的案例,只会考虑用户选择某些东西的案例。这样,我可以减少这种情况下的不确定性,但必须完全忽略被拒绝的情况。然后,Morpheus 可以对每个类使用 softmax 或 sigmoid,并使用 argmax 来获得提供的最佳选择。

我不确定是否有其他方法可以对这个问题进行建模,但是在这两种方法中哪一种可能是更好的方法?

药丸

2个回答

这是一个教科书式的多臂强盗问题,Morpheus 需要学习有关提供药丸的正确政策。正如您所说的 Neos 是独立的,并且假设总体上存在最好的药丸,我们需要一种算法来对每种药丸进行试验,以找出最有可能被接受的药丸。这与拥有三台武装老虎机并试图找出哪一台最频繁支付相同。

在 Neos 是可观察到的情况下(这样我们就有了关于每个 Neo 的一些信息,并且可以根据他们的特征预测他们想要什么药丸),这变成了一个上下文强盗问题。这是强化学习问题的基本形式

在上下文强盗问题中,您需要平衡探索(尝试向不同的 Neos 提供不同的药丸以找出他们喜欢什么)和利用(根据我们目前看到的情况选择似乎是最好的药丸)。这就是为什么直接监督多项式分类方法(例如 Benji Albert 的回答)将难以收敛:它们没有充分探索“动作空间”(即尝试一堆响应)以生成各种为自己训练示例。

在您的具体情况下,我们的测试“Neos”可能根本不吃药,因为 Morpheus 只提供一种特定颜色的药丸。

我们将不得不修改我们的多类模型以包含“无颜色/拒绝”,或者二元模型会工作得更好。

从实际的角度来看,我会在这里使用多类模型,原因很简单:

它是唯一一个直接解决 Morpheus 用例的!

如果我们设计一个带有pill color预测变量的二元模型,我们将不得不运行模型三次(使用人员数据和每种药丸颜色),比较接受度的预测并选择最佳结果,而多类模型只是告诉我们接受可能性最高的药丸颜色。

现在从理论的角度来看,我们还必须考虑这些类是相互独立地呈现的,这与电影中不同。仅呈现一种颜色,用户不了解其他颜色,因此没有建立相对偏好。因此,决策的上下文更接近二元模型。

然而,最终与所有预测情况一样,性能获胜。所以我会简单地构建两个模型并比较性能。