学习元素的顺序

时间:2016-10-08 14:45:51

标签: algorithm machine-learning ranking reinforcement-learning

我有一个元素列表,但关于它们的信息很少。这些元素是有序的,我需要找到正确的顺序。我所能做的就是提交一个带有假设完整订单的查询并得到一个得分(介于0和1之间),它表示我的排序与真实排序的距离,而没有关于排序的哪个部分是正确/不正确的任何信息。

这似乎是一个标准问题,但我找不到相关的信息。

编辑:为简单起见,假设给定假设排序的得分是正确对排序的百分比(与真实的未知排序相比)。因此,如果给出反向排序,则得到0;如果给出实际排序,则得到1。 是否有一种策略/算法可以根据过去的答案生成查询,以最大限度地缩短学习时间并最大限度地提高分数?

我认为学习排名算法应该有所帮助,但他们的表述似乎远非我所需要的,尽管我可能错过了一些东西。我也在研究一些强化学习算法

但是,任何参考/提示/帮助将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:1)

这主要是一种如何思考问题的方法。

您需要了解距离的计算方式。想到这个问题的一种方法是组合空间中的问题。如果你有 n 元素,那么想想一个n维空间,其中空间中的每个点代表元素的排序。其中一个点是“正确”的最佳分数。

您有一个距离指标,从空间中的任何(有效)点到给定的正确点。问题是:你怎么能找到“正确”的答案。

梯度下降解决方案可能有效。应用于此问题时,它将从一个随机点开始,考虑各个方向的简单“步骤”(通过交换值)并向最佳改善分数的方向移动。问题在于解空间可能具有广泛分散在解空间中的局部最优,这意味着“局部”方法(例如步进)可能被局部最优所欺骗。但它可能会奏效。

替代方案可能是像这样的蛮力。从全零的向量开始并测量其得分。然后测试每个位置的第一个值,并选择最小化得分的位置。我的预感是,当价值处于正确的位置时,评分指标会被最小化。然后,重复每个其他值。