首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何选择推荐系统中的否定示例?

如何选择推荐系统中的否定示例?
EN

Data Science用户
提问于 2018-09-12 23:35:27
回答 1查看 2.7K关注 0票数 5

我正在为电子商务建立一个搜索推荐系统,在输入查询时生成最相关的结果。我把它描述为一个分类问题(学习排序),并使用点态排序来计算关联分数。

让我们说,对于每个输入查询Q1,我们必须生成30个最相关的结果。假设用户启动一个搜索查询并选择第三个结果作为相关结果。我的问题是,如何利用这种交互作用为模型生成培训数据集:

  1. Q1 -结果3:阳性标签
  2. Q1 -结果1,2 :负标签(用户明显看到结果1,2,不喜欢它。也提到了跳过高点在一些论文/博客)。
  3. Q1 -随机:负标签(只需添加一些随机结果来向数据集添加随机负数)。

那4-30级呢?可能是用户看到了4-8级,但是在这些级别之后,用户甚至没有看到结果。是否应该使用这些较低的级别来生成隐含的负面信息,以提供给模型?

Pros

  • 从低层隐式负数中随机抽样将确保模型在预测过程中必须对整个特征分布进行训练。如果我们仅仅使用步骤1/2中的显式正负,模型只会被训练到非常相关的结果上。从较低级别的抽样将确保该模型也将在整个范围的相关结果进行培训。

Cons

  • 我们在训练数据集中添加噪声,因为用户甚至没有与这些结果交互。

因此,主要的问题是,我们是否应该将4-30级的结果包括在内,这可能甚至没有被用户看作是训练数据集中的负面例子?

EN

回答 1

Data Science用户

发布于 2019-11-29 09:50:01

是的,我们应该包括阴性样本,更多的是为了纠正选择或抽样偏差。

用户只会看到由另一种算法或规则选择的子集,这些子集决定了子集与用户最相关。其中,位置偏差起作用,用户可能看不到一切。因此,查询中的选择或查询中的文档可能非常相似(可能差别很小)。这使得算法不需要学习参数。

然而,在生产中得分时,几乎所有的选择/文档都必须为每个查询打分。除非首先使用旧模型来选择酒店的子集,而且如果学习到排名模型,则在子集之间重新选择。

在我的经验中,添加负示例(我们可以安全地告诉用户,即使他/她看到了该项目,他/她也不会选择/单击该项目)。但是很难为所有用例定义这样的基础。

我们还在试验这个。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/38181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档