首页 > 解决方案 > 如何将可能的手臂推荐限制为项目的子集?

问题描述

我有以下情况:

有很多项目要推荐 [i1....iN],其中 N 非常大(比如 100 万)。有类别 [c1...cK]。每个类别由项目的一个子集组成。

用户可以转到显示来自给定类别的项目的页面。

我想在所有类别页面上使用单个强盗模型向用户显示每个类别页面的推荐项目。因此,当我要求为类别页面 ci 提供一组 top-K 建议(“操作”)时,结果应仅限于 ci 中可用的项目集。

有没有办法用 Vowpal Wabbit 做到这一点?

标签: vowpalwabbit

解决方案


当您使用 ADF(动作相关特征)表单向大众询问上下文老虎机预测时,您可以指定可以为该预测选择哪些动作。ADF 形式可以在这里阅读更多信息,并与更常见的标准上下文强盗进行对比。这将允许您只要求对您当前正在查看的类别中的操作进行预测。这是有效的,因为动作被定义为组成它们的特征集,因此您可以为每个预测呈现每个动作的任何特征集。这意味着在调用之间更改操作不是问题。

然而,根据经验,我们发现使用 > ~100 个动作的上下文强盗并不是很有效。本质上,非常小的探索概率不适用于更新规则。

所以,这是可行的,但我不确定它会有多有效。

在这种情况下,一种常见的方法是使用另一个模型来获得一个推荐池,然后使用一个上下文强盗作为 L2 ranker 来个性化一个包含 50 个左右建议动作的池。


推荐阅读