文章插图
通过重新排序(使用机器学习模型)可以改进搜索结果 。在本例中,还使用搜索引擎来减少机器学习模型的候选项的数量,从而使评分更快 。
Learning to rank(LTR)是机器学习的一种应用,它根据人的期望对物品进行排序 。LTR模型通常使用人类标记的数据进行训练 。
在召回阶段,LTR模型获取由搜索引擎生成的一个query和返回的文档(项)的子集,作为每个物品的输入和输出相关性 。最后,它可以输出一个经过排序的文档列表(k-最相关的文档) 。请注意,现代系统还可以将用户属性文件作为输入,并执行个性化学习来对机器学习任务进行排序 。
经典预测模型,learning to rank模型和推荐系统之间的区别是什么?
- 预测模型/分类器通常只有几个输出属性,它们的设计目的不是为及百万用户进行几百万物品的排序 。
- Learning to Rank系统,对于给定的query,返回的结果是相同的列表,不涉及个性化 。
- 推荐系统不使用query,它们根据用户历史和用户之间的相似性生成相关物品 。相关物品的计算方法是在评分矩阵中预测它们的评分,或者根据它们的属性推荐类似的物品 。
评估LTR和推荐系统累积收益度量通过learning to rank系统或推荐系统返回的前k项的相关性 。
文章插图
例如,我们可以把6个返回物品的相关性加起来(注意,第4项是不相关的) 。
文章插图
文章插图
显示给用户的物品很少有统一的可见性方式 。例如,在电子商务中,由于大多数用户不想向下滚动列表,所推荐的商品的可见性急剧下降 。在媒体领域,一个内容经常被高亮显示,而其他内容则很难被发现 。
CG的问题是它没有考虑到物品的位置 。例如,第一个推荐可能有比其他五个大得多的图像显示 。此外,用户倾向于浏览列表顶部的几个物品,而他们看到列表更下方的物品的可能性要小得多 。基于这个原因,discounted cumulative gain(DCG)比简单的CG更受欢迎 。
文章插图
在DCG中,相关性值与结果的位置成对数比例递减 。
文章插图
DCG可以很容易地计算,如上例所示 。
有些变体甚至更加强调检索列表顶部的相关物品 。
文章插图
假设一个数据集包含N个query 。通常的做法是对每个query的DCG分数进行归一化,并得到所有query的平均DCG(“NDCG”)分数 。有这样一个评价指标是很好的,但请记住现实世界是残酷的 。
传统的LTR算法
- Pointwise方法将排序转化为单个物品的回归或分类 。然后,该模型一次只获取一个物品,它要么预测其相关性得分,要么将该物品归类到一个相关性类中 。
- Pairwise方法将问题处理为物品对的分类,即确定在第一个位置上的物品是不是具有更高的相关性,反之亦然 。
- Listwise方法把整个物品列表作为一个学习样本 。例如,使用属于一个特定query的所有物品的得分,而不是仅通过比较成对或单个样本 。
PRank算法,使用感知器(线性函数)从文档的特征向量中估计文档的得分 。query被附加到文档嵌入的特征向量中 。我们还可以将文档分类为相关类(例如相关/不相关) 。这个函数几乎可以用任何机器学习方法来建模 。大多数算法使用决策树和森林 。现代方法利用深度学习网络 。
文章插图
最终的排名列表是通过对所有文档进行评分并根据预测的相关性进行排序得到的 。显然,当对模型进行输入嵌入和相应输出相关性的训练时,我们并没有直接最小化NDCG或其他上述评价标准 。与Pointwise方法相一致,Pairwise方法也使用代理可微损失函数 。
文章插图
为了更好地理解pairwise方法,我们应该记住在二元分类中使用的交叉熵损失,它惩罚了模型的高置信度的错误的预测 。
推荐阅读
- 2020年最好的.NET开发工具
- 为什么面试互联网公司的都在刷Leetcode? 正确打开方式是什么?
- 作为程序员的你,这10款在线编辑器,你用过哪一个?
- 不改一行代码,让你的web应用支持https协议
- 冬天喝两款保健茶,保健茶的种类介绍
- 如何在今日头条上开启挣钱之路,适合新手的升级攻略,倾囊相授
- 茶叶美食介绍,抹茶叶形饼的做法
- 我用这个方法,半小时给C盘清理出30G空间!C盘飘红的快来试试
- 冲泡优质黑茶的方法,椰仙苦丁茶的冲泡方法
- 解决网络连接缓慢的故障