算法思想理解系列 -- 检索排序学习之pairwise类型

2024-06-21 23:58

本文主要是介绍算法思想理解系列 -- 检索排序学习之pairwise类型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 不那么重要的引言

  • 一般地,在推荐系统中,对于召回结果集需要经过排序截取topN露出,那么就需要给每条结果打一个分值,按分值排序。
  • 因此,找到一个合适的打分函数就至关重要,那么排序学习算法的作用就是通过学习训练找到这样一个打分函数。
  • 『pairwise』顾名思义,就是两两成对。在排序学习算法中,pairwise其实就是一种算法思想,与传统的打分函数相比,pairwise另辟蹊径。

2 通俗理解pairwise

在引言中我们提到,pairwise相较于构造传统的打分函数的做法大有不同。具体详解:

(1)pairwise不考虑使用打分函数给分值后做排序,而是考虑找到召回结果集中每条结果与其它结果的偏序关系(即位置先后关系),然后利用所有偏序关系得出整体排序结果。这样做的好处就是可以利用结果之间的隐含关系。

(2)然后,排序问题就简化为找偏序关系。假设,有result1和result2,那么它们的偏序关系只存在两种情况:(1)result1位置在result2之前,(2)result1位置在result2之后。

(3)因此,找偏序关系问题就可以简化为一个二分类问题。两个结果为一组输入,通过二分类模型得出分类结果(即偏序关系)。

(4)最后,利用拓扑排序将所有偏序关系对排列,得到最终的排序结果。

木马

 

这篇关于算法思想理解系列 -- 检索排序学习之pairwise类型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1082704

相关文章

MyBatis中的两种参数传递类型详解(示例代码)

《MyBatis中的两种参数传递类型详解(示例代码)》文章介绍了MyBatis中传递多个参数的两种方式,使用Map和使用@Param注解或封装POJO,Map方式适用于动态、不固定的参数,但可读性和安... 目录✅ android方式一:使用Map<String, Object>✅ 方式二:使用@Param

C# WebAPI的几种返回类型方式

《C#WebAPI的几种返回类型方式》本文主要介绍了C#WebAPI的几种返回类型方式,包括直接返回指定类型、返回IActionResult实例和返回ActionResult,文中通过示例代码介绍的... 目录创建 Controller 和 Model 类在 Action 中返回 指定类型在 Action

GO语言zap日志库理解和使用方法示例

《GO语言zap日志库理解和使用方法示例》Zap是一个高性能、结构化日志库,专为Go语言设计,它由Uber开源,并且在Go社区中非常受欢迎,:本文主要介绍GO语言zap日志库理解和使用方法的相关资... 目录1. zap日志库介绍2.安装zap库3.配置日志记录器3.1 Logger3.2 Sugared

java中的DDD思想指的是什么及在Java中的体现详解

《java中的DDD思想指的是什么及在Java中的体现详解》领域驱动设计(简称DDD)是一种软件开发方法,旨在通过对业务领域的深入理解,构建高内聚、低耦合的系统,:本文主要介绍java中的DDD思... 目录前言什么是 DDD(Domain-Driven Design)?核心思想:DDD 的三大核心概念DD

深入理解Redis线程模型的原理及使用

《深入理解Redis线程模型的原理及使用》Redis的线程模型整体还是多线程的,只是后台执行指令的核心线程是单线程的,整个线程模型可以理解为还是以单线程为主,基于这种单线程为主的线程模型,不同客户端的... 目录1 Redis是单线程www.chinasem.cn还是多线程2 Redis如何保证指令原子性2.

深入理解MySQL流模式

《深入理解MySQL流模式》MySQL的Binlog流模式是一种实时读取二进制日志的技术,允许下游系统几乎无延迟地获取数据库变更事件,适用于需要极低延迟复制的场景,感兴趣的可以了解一下... 目录核心概念一句话总结1. 背景知识:什么是 Binlog?2. 传统方式 vs. 流模式传统文件方式 (非流式)流

深入理解Go之==的使用

《深入理解Go之==的使用》本文主要介绍了深入理解Go之==的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录概述类型基本类型复合类型引用类型接口类型使用type定义的类型不可比较性谈谈map总结概述相信==判等操作,大

python中的鸭子类型详解

《python中的鸭子类型详解》鸭子类型是Python动态类型系统的灵魂,它通过强调“行为”而非“类型”,赋予了代码极大的灵活性和表现力,本文给大家详细介绍python中的鸭子类型,感兴趣的朋友一起看... 目录1. 核心思想:什么是鸭子类型?2. 与“传统”静态类型语言的对比3. python 中无处不在

Java枚举类型深度详解

《Java枚举类型深度详解》Java的枚举类型(enum)是一种强大的工具,它不仅可以让你的代码更简洁、可读,而且通过类型安全、常量集合、方法重写和接口实现等特性,使得枚举在很多场景下都非常有用,本文... 目录前言1. enum关键字的使用:定义枚举类型什么是枚举类型?如何定义枚举类型?使用枚举类型:2.

Java Map排序如何按照值按照键排序

《JavaMap排序如何按照值按照键排序》该文章主要介绍Java中三种Map(HashMap、LinkedHashMap、TreeMap)的默认排序行为及实现按键排序和按值排序的方法,每种方法结合实... 目录一、先理清 3 种 Map 的默认排序行为二、按「键」排序的实现方式1. 方式 1:用 TreeM