热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

RankNet学习思路

整理了一下学习ranknet需要知道的几点:1、ranknet是从概率角度,利用pairwise解决排序问题;2、最终我们学习的是一个为搜索结果打分的函数(ScoringFun

整理了一下学习ranknet需要知道的几点:

1、ranknet是从概率角度,利用pairwise解决排序问题;

2、最终我们学习的是一个为搜索结果打分的函数(Scoring Function),这个函数的作用是用来给搜索结果排序的,函数中带有未知参数,RankNet会帮你把参数训练出来,这个Scoring Function在这里并不是RankNet中特定的,因此只要提供的Scoring Function是smooth的,也就是可导的,那么就可以灌入RankNet中求解,至于Scoring Function的设计,并不是RankNet的责任,甚至可以直接选择一个线性函数f(x)=wx; 但由于RankNet是用神经网络训练的,而神经网络说到底又是用梯度下降来训练的;

技术分享

3、把样本两两组成一个pair,对于一个pair,有两个概率需要定义,一个是预测概率:

技术分享

s_i代表f(x_i)的预测结果。这就是一个sigmod函数,其物理意义就是第i个样本排在第j个样本前面的概率,还有一个概率是真实概率,定义如下:

技术分享

S_i_j取{0,1,-1},如果i比j相关,则取1,相同取0,不相关取-1;

4、P_i_j保持一致性,即如果i比j相关,j比k相关,则i一定比k相关;通过P_i_j的定义,可能容易推出:

技术分享

令P_i_j=P_j_k=p,则p和P_i_k的关系如下:

技术分享

容易看出,当p>0.5时,即i>j,j>k,有P_i_k>0.5,即i>k。说明概率具有一致性;

5、使用交叉熵来作为训练损失函数:

技术分享

容易推出:

技术分享

损失函数C对排序函数中的w求导,可以得到:

技术分享

技术分享

S_i_j是训练样本目标,s_i,s_j是当前神经网络模型输入出,剩下就是神经网络对参数求导了。

RankNet学习思路


推荐阅读
  • packagecom.panchan.tsmese.utils;importjava.lang.reflect.ParameterizedType;importjava.lang. ... [详细]
  • 本文介绍了一种支付平台异步风控系统的架构模型,旨在为开发类似系统的工程师提供参考。 ... [详细]
  • 使用 Git Rebase -i 合并多个提交
    在开发过程中,频繁的小改动往往会生成多个提交记录。为了保持代码仓库的整洁,我们可以使用 git rebase -i 命令将多个提交合并成一个。 ... [详细]
  • Manacher算法详解:寻找最长回文子串
    本文将详细介绍Manacher算法,该算法用于高效地找到字符串中的最长回文子串。通过在字符间插入特殊符号,Manacher算法能够同时处理奇数和偶数长度的回文子串问题。 ... [详细]
  • malloc 是 C 语言中的一个标准库函数,全称为 memory allocation,即动态内存分配。它用于在程序运行时申请一块指定大小的连续内存区域,并返回该区域的起始地址。当无法预先确定内存的具体位置时,可以通过 malloc 动态分配内存。 ... [详细]
  • 本文介绍了多种开源数据库及其核心数据结构和算法,包括MySQL的B+树、MVCC和WAL,MongoDB的tokuDB和cola,boltDB的追加仅树和mmap,levelDB的LSM树,以及内存缓存中的一致性哈希。 ... [详细]
  • Python多线程详解与示例
    本文介绍了Python中的多线程编程,包括僵尸进程和孤儿进程的概念,并提供了具体的代码示例。同时,详细解释了0号进程和1号进程在系统中的作用。 ... [详细]
  • 本文详细介绍了Linux系统中用于管理IPC(Inter-Process Communication)资源的两个重要命令:ipcs和ipcrm。通过这些命令,用户可以查看和删除系统中的消息队列、共享内存和信号量。 ... [详细]
  • A*算法在AI路径规划中的应用
    路径规划算法用于在地图上找到从起点到终点的最佳路径,特别是在存在障碍物的情况下。A*算法是一种高效且广泛使用的路径规划算法,适用于静态和动态环境。 ... [详细]
  • NX二次开发:UFUN点收集器UF_UI_select_point_collection详解
    本文介绍了如何在NX中使用UFUN库进行点收集器的二次开发,包括必要的头文件包含、初始化和选择点集合的具体实现。 ... [详细]
  • 解决SQL Server数据库sa登录名无法连接的问题
    在安装SQL Server数据库后,使用Windows身份验证成功,但使用SQL Server身份验证时遇到问题。本文将介绍如何通过设置sa登录名的密码、启用登录名状态以及开启TCP协议来解决这一问题。 ... [详细]
  • MySQL 数据库连接方法
    本文介绍了如何使用 MySQL 命令行工具连接到指定的数据库。 ... [详细]
  • 如何解决8080端口被占用问题
    本文介绍了如何通过命令行和任务管理器查找并终止占用8080端口的进程,以确保该端口能够正常使用。 ... [详细]
  • Excel 数据分析基础
    Excel 是数据分析中最基本且强大的工具之一,具备多种实用功能和操作方法。本文将简要介绍 Excel 的不同版本及其兼容性问题,并探讨在处理大数据时的替代方案。 ... [详细]
  • 本文介绍了如何在 ASP.NET 中设置 Excel 单元格格式为文本,获取多个单元格区域并作为表头,以及进行单元格合并、赋值、格式设置等操作。 ... [详细]
author-avatar
玩玩ftgcriug
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有