我在查看Vowpal Wabbit的文档,了解它是如何实际进行学习的。传统的上下文强盗学习通过F(上下文, 动作) = 奖励来学习,找到最大化奖励的动作,并返回该动作作为推荐。“F”可以是任何模型;线性模型、神经网络、XGB等,通过批处理学习。即收集100个上下文、100个动作、100个奖励,训练机器学习模型,然后重复这一过程。
现在,VW文档中说它将“所有上下文强盗问题简化为成本敏感的多类分类问题。”好的,我查阅了相关资料,但似乎仍然需要一个函数F来最小化这个问题,对吗?
我已经仔细阅读了文档,要么是:
- 错过了批处理的默认学习器是什么,或者,
- 不明白VW在这种成本敏感框架下是如何实际学习的?
我甚至在pyvwlib中仔细查看了vw.learn()方法。谢谢你的帮助!
回答:
错过了批处理的默认学习器是什么,
VW的默认学习器是线性表示上的SGD,但可以通过命令行参数进行修改。
不明白VW在这种成本敏感框架下是如何实际学习的?
在上下文强盗学习中,与所采取的动作相关的奖励被用于学习。VW在ips模式下,通过在未采取的动作处放置零,并对所采取动作的奖励进行重要性加权,将其转换为每个动作的奖励。填补缺失数据后,它将问题视为一个监督学习问题来处理。