我正在为电子商务建立一个搜索推荐系统,在输入查询时生成最相关的结果。我把它描述为一个分类问题(学习排序),并使用点态排序来计算关联分数。
让我们说,对于每个输入查询Q1,我们必须生成30个最相关的结果。假设用户启动一个搜索查询并选择第三个结果作为相关结果。我的问题是,如何利用这种交互作用为模型生成培训数据集:
那4-30级呢?可能是用户看到了4-8级,但是在这些级别之后,用户甚至没有看到结果。是否应该使用这些较低的级别来生成隐含的负面信息,以提供给模型?
因此,主要的问题是,我们是否应该将4-30级的结果包括在内,这可能甚至没有被用户看作是训练数据集中的负面例子?
发布于 2019-11-29 09:50:01
是的,我们应该包括阴性样本,更多的是为了纠正选择或抽样偏差。
用户只会看到由另一种算法或规则选择的子集,这些子集决定了子集与用户最相关。其中,位置偏差起作用,用户可能看不到一切。因此,查询中的选择或查询中的文档可能非常相似(可能差别很小)。这使得算法不需要学习参数。
然而,在生产中得分时,几乎所有的选择/文档都必须为每个查询打分。除非首先使用旧模型来选择酒店的子集,而且如果学习到排名模型,则在子集之间重新选择。
在我的经验中,添加负示例(我们可以安全地告诉用户,即使他/她看到了该项目,他/她也不会选择/单击该项目)。但是很难为所有用例定义这样的基础。
我们还在试验这个。
https://datascience.stackexchange.com/questions/38181
复制相似问题