rank查询,rank算法?
是搜索引擎最核心的一个模块。在搜索引擎中,对于用户输入一条查询query(关键词/句),搜索引擎将索引出一个相关的document(文档)列表,然后系统计算(query, document)之间的相关度,对列表中的文档进行排序,并返回给用户。
传统的rank有很多经典的模型来完成这一任务,比如bool model(布尔模型),VSM(向量空间模型),language model(语言模型)等,这些方法都比较简单,任何一本IR的书籍都有介绍。
rank分数查询?
这个我是可以直接的回答你,目前英雄联盟已经是没有rank分这个概念了,如果我们想要查询这个的话,那么我们就可以直接对段位进行一个查询,我们可以通过英雄联盟官方助手,或者是怎么玩一个掌上英雄联盟App,然后直接输入游戏的ID,就可以对其进行一个查询。
LPL三支队伍选手的韩服Rank胜率让人堪忧?
艾薇巴蒂,大家好。我是解说夜色,今天咱们聊一聊LPL各支队伍以及选手的状态,以及推测各支LPL战队的出征S9大名单,好的闲话不多说,咱们进入正题。
IG战队队员状态还算中规中矩IG战队所在的D组将面对TL战队以及AHQ战队,当然入围赛也可能晋级上来DWG来争夺IG的出线名额。所以,IG战队看似出线前景很乐观,但是以IG战队现在的状态也存在翻车的可能。那么S9抽签结束之后,IG的队员们的训练情况怎么样呢?
从IG各队员的韩服账号来看,Rookie、乐言、Ning、JackerLove、West(替补AD)都一直在训练,战绩几率都显示在这两天IG的这些队员都在韩服训练。但是TheShy与Duke的韩服记录一直停留在9月中旬,Duke更是从9月8日之后就再没打过韩服。这么看来,IG的出征S9大名单应该是带TheShy、乐言、Ning、Rookie、JackeyLove、BaoLan跟West?
我们再来看下IG队员在韩服打Rank的状态怎么样,从图中看Rookie最近的胜率达到了60%,不过MVP非常少,战绩来看Rookie最近的状态只能说中规中矩。
小乐言依旧是Rank大神,在韩服Rank中胜率虽然才是50%,但是MVP与SVP非常多,所玩的英雄也比较多,看来小乐言是在积极地为S9做准备呢,首发打野应该是跑不了了。
Ning最近也开始了韩服Rank,看来Ning是去定了S9了。胜率50%与小乐言持平,而且游戏内的战绩也可以说是与小乐言不分上下,英雄池同样很深。
JackeyLove作为现在IG的第二个稳定Carry点,他的韩服战绩可以说是有点惨啊,胜率仅仅只有10%,而且从战绩上来看,JakeyLove完全不像是在打比赛,倒像是在送,不知道JakeyLove的这个战绩是怎么回事。
总体来说,IG整体的状态还是可以的,两个打野的手感都很火热。除了JackeyLove的战绩有些差强人意,剩下的队员都比较稳定。
RNG战队战绩堪忧RNG战队被分到了C组,与FNC、SKT同组,可以说是四组中唯一的死亡小组了。虽然RNG出线的压力比其他LPL的队伍大,但是只要出现就能保证淘汰赛初期遇不到太强的对手。
RNG的队员们打韩服Rank结束的时间要比IG队员们稍稍晚一些,但是RNG的八名队员中只有七名队员在打Rank。替补上单AmazingJ最近没有玩,所以看来RNG的大名单应该就是Langx、LoveZrr(替补上单)、Karsa、Xiaohu、Uzi、Ming以及Wink(替补AD)了。
在RNG各位置中,网友们最担心的莫过于是上单了。本次RNG带两名上单选手去S9也是为了防止上单被打爆的情况出现,但是夜色查询了两名上单选手的韩服Rank战绩,感觉两名上单选手的状态都不好啊。首发狼行的胜率仅仅20%,而且战绩也很一般。而替补Zrr虽然胜率达到了50%,但是看战绩,无论输赢Zrr都是队伍中比较混的那个。
Uzi作为RNG的当家明星,他的伤病一直是影响他发挥的重要因素。Uzi最近在韩服Rank的胜率也非常低,虽然很多局战绩都不错,但是可以看出来Uzi现在的发挥也不算稳定,这也是RNG带替补AD选手的原因。XiaoHu与Karsa这对中野组合在韩服也遇到了麻烦,特别是OB了Karsa玩蜘蛛的网友表示‘Karsa的蜘蛛E技能命中率非常低’,看来前段时间的休赛期,Karsa没怎么玩游戏啊。
对于现在的RNG,从韩服Rank上来看是整体低迷,但是在S9上能表现出什么状态就要看这段时间的调整了。
FPX队员比较轻松FPX战队由于分到了天命圈,虽然FPX没有世界大赛的经验,但是面对两个非常弱的赛区的队伍,LPL的头号种子只要不托大,基本上是稳定小组第一出线的。
不过,就算是小组赛再稳,对于FPX的第一次S系列赛,FPX的队员对待这次比赛的态度还是很积极的,依旧是Rank到了很晚。而S9的大名单扩充到了7人,作为只有6名选手的FPX,肯定是全员参加了,不过替补打野选手Xinyi的韩服Rank记录从8月6日就停止了,估计就算Xinyi去了S9估计也不会有上场机会了。
夜色总结:对于LPL的各支队伍中,从状态上来看FPX肯定是稳定进入淘汰赛了。IG战队的队员在韩服Rank中有好有差,但是IG依旧是能期待奇迹的一支队伍。RNG这边从韩服战绩上来看是惨了点,如果这种状态进入S9的话,小组赛估计会打的很艰苦。不过,韩服Rank并不代表选手的真正实力,毕竟现在赛季末,韩服的很多高手也开始了上分节奏,所以一切还是以真正比赛的时候为准。
rank函数啥时候锁定?
rank函数在以下情况下会锁定:1. 当使用排他锁或共享锁时,rank函数会锁定相关的数据,以确保在执行rank函数期间其他操作不会影响结果的准确性和一致性。
2. 如果在事务中使用了rank函数,并且事务正在进行中,那么rank函数会锁定相关的数据,以保证事务的隔离性和一致性。
3. 当对rank函数所涉及的数据进行修改或更新时,系统会自动锁定这些数据,以防止其他操作对数据进行干扰。
综上所述,rank函数在特定的情况下会锁定相关的数据,以确保操作的正确性和数据的一致性。
rank有哪些比较好的开源库?
从使用的数据类型,以及相关的机器学习技术的观点来看,互联网搜索经历了三代的发展历程。 第一代技术,将互联网网页看作文本,主要采用传统信息检索的方法。 第二代技术,利用互联网的超文本结构,有效地计算网页的相关度与重要度,代表的算法有 PageRank 等。 第三代技术,有效利用日志数据与统计学习方法,使网页相关度与重要度计算的精度有了进一步的提升,代表的方法包括排序学习、网页重要度学习、匹配学习、话题模型学习、查询语句转化学习。 这里主要介绍机器学习排序。
1. 机器学习排序(Learning to Rank)
利用机器学习技术来对搜索结果进行排序,这是最近几年非常热门的研究领域。信息检索领域已经发展了几十年,为何将机器学习技术和信息检索技术相互结合出现较晚?主要有两方面的原因。
一方面是因为:在前面几节所述的基本检索模型可以看出,用来对査询和文档的相关性进行排序,所考虑的因素并不多,主要是利用词频、逆文档频率和文档长度这几个因子来人工拟合排序公式。因为考虑因素不多,由人工进行公式拟合是完全可行的,此时机器学习并不能派上很大用场,因为机器学习更适合采用很多特征来进行公式拟合,此时若指望人工将几十种考虑因素拟合出排序公式是不太现实的,而机器学习做这种类型的工作则非常合适。随着搜索引擎的发展,对于某个网页进行排序需要考虑的因素越来越多,比如网页的pageRank值、查询和文档匹配的单词个数、网页URL链接地址长度等都对网页排名产生影响,Google目前的网页排序公式考虑200多种因子,此时机器学习的作用即可发挥出来,这是原因之一。 另外一个原因是:对于有监督机器学习来说,首先需要大量的训练数据,在此基础上才可能自动学习排序模型,单靠人工标注大量的训练数据不太现实。对于搜索引擎来说, 尽管无法靠人工来标注大量训练数据,但是用户点击记录是可以当做机器学习方法训练数据的一个替代品,比如用户发出一个查询,搜索引擎返回搜索结果,用户会点击其中某些网页,可以假设用户点击的网页是和用户查询更加相关的页面。尽管这种假设很多时候并 不成立,但是实际经验表明使用这种点击数据来训练机器学习系统确实是可行的。 PS:简言之,上面两个原因论述了为什么会出现学习排序? 传统的排序方法是通过构造一个排序函数实现,在Information Retrieval领域一般按照相关度进行排序。比较典型的是搜索引擎中一条查询query,将返回一个相关的文档document,然后根据(query,document)之间的相关度进行排序,再返回给用户。而随着影响相关度的因素变多,使用传统排序方法变得困难,人们就想到通过机器学习来解决这一问题,这就导致了LRT的诞生。
2. 机器学习的基本思路
传统的检索模型靠人工拟合排序公式,并通过不断的实验确定最佳的参数组合,以此来形成相关性打分函数。机器学习排序与此思路不同,最合理的排序公式由机器自动学习获得,而人则需要给机器学习提供训练数据。
图1是利用机器学习进行排序的基本原理图。 机器学习排序系统由4个步骤组成:人工标注训练数据、文档特征抽取、学习分类函数、在实际搜索系统中采用机器学习模型。
图1 机器学习排序原理
首先,由人工标注训练数据。也就是说,对于某个查询Q,人工标出哪些文档是和这个査询相关的,同时标出相关程度,相关程度有时候可以用数值序列来表示,比如从1分到5分为3个档次,1代表微弱相关,5代表最相关,其他数值代表相关性在两者之间。对于某个查询,可能相关文档众多,同时用户査询也五花八门,所以全部靠人工标注有时候 不太可能。此时,可以利用用户点击记录来模拟这种人工打分机制。 对于机器学习来说,输入是用户查询和一系列标注好的文档,机器学习系统需要学习打分函数,然后按照打分函数输出搜索结果,但是在其内部,每个文档由若干特征构成的,即每个文档进入机器学习系统之前,首先需要将其转换我饿滴特征向量,比较常用的特征包括: ·查询词在文档中的词频信息 ·查询词的IDF信息 ·文档长度 ·网页的入链数量 ·网页的出链数量 ·网页的pageRank值 ·网页的URL松度 ·査询词的Proximity值:即在文档中多大的窗口内可以出现所有査询词。
以上所列只是影响排序的一部分特征,实际上还有很多类似的特征可以作为特征向量中的一维加入。在确定了特征数量后,即可将文档转換为特征向量X,前面说过每个文档会人工标出其相关性得分y。这样每个文档会转換为<X,Y>的形式,即特征向量及其对应的相关性得分,这样就形成了一个具体的训练实例。
通过多个调练实例,就可以采用机器学习技术来对系统进行训练,训练的结果往在是一个分类函数或者回归函数,在之后的用户搜索中,就可以用这个分类函数对文档进行打分,形成搜索结果。
从目前的研究方法来说,可以将机器学习排序方法分为以下3种:单文档方法(Pointwise)、文档对方法(Pairwise)和文档列表方法(Listwise)。 PS:Ranking学习作为机器学习研究的一个新方向,在信息检索、协同滤波、专家发现等领域广泛应用。Ranking学习是指通过使用机器学习技术和有标签的数据来产生一个ranking模型,它是一种新的学习,一种介于分类和回归之间的学习。 Pointwise和Pairwise把排序问题转换成 回归 、分类或有序分类问题。Listwise把Query下整个搜索结果作为一个训练的实例。3种方法的区别主要体现在损失函数(Loss Function)上: •Regression: treat relevance degree as real values •Classification: treat relevance degree as categories •Pairwise classification: reduce ranking to classifying the order between each pair of documents.
下面是两张图,第一张表示学习排序的过程,第二章是基本的实现算法。
3. 单文档方法(PointWise Approach)
单文档方法的处理对象是单独的一篇文档,将文档转换为特征向量后,机器学习系统根据从训练数据中学习到的分类或者回归函数对文档打分,打分结果即是搜索结果。下面我们用一个简单的例子说明这种方法。 图2是人工标注的训练集合,在这个例子中,我们对于每个文档采用了3个特征: 査询与文档的Cosme相似性分值、査询词的Proximity值及页面的PageRank数值,而相关性判断是二元的,即要么相关要么不相关,当然,这里的相关性判断完全可以按照相关程度扩展为多元的,本例为了方便说明做了简化。
图2 训练数据例子中提供了5个训练实例,每个训练实例分别标出来其对应的查询,3个特征的得分情况及相关性判断。对于机器学习系统来说,根据训练数据,需要如下的线性打分函数: Score(Q, D)=a x CS+b x PM+cx PR+d 这个公式中,cs代表Cosine相似度变徽,PM代表Proximity值变量,PR代表pageRank, 而a、b、c、d则是变量对应的参数。
如果得分大于设定阀值,则叫以认为是相关的, 如果小于设定闽值则可以认为不相关。通过训练实例,可以获得最优的a、b、c、d参数组合,当这些参数确定后,机器学习系统就算学习完毕,之后即可利用这个打分函数进行相关性判断。对于某个新的查询Q和文档D,系统首先获得其文档D对应的3个特 I特征值,之后利用学习到的参数组合计算两者得分,当得分大于设定的闽值,即可判断文档是相关文档,否则判断为不相关文档。 PS:而微软给定的数据如下 ============================================================= 0 qid:1 1:3 2:0 3:2 4:2 ... 135:0 136:0 2 qid:1 1:3 2:3 3:0 4:0 ... 135:0 136:0 ============================================================= 其数据格式: label qid:id feaid:feavalue feaid:feavalue ... 每行表示一个样本,相同的查询请求的样本qid相同,上面就是两个对qid为“1”的查询;label表示该样本和该查询请求的相关程度,该label等级划分方式为 {Perfect, Excellent,Good, Fair, Bad} 共五个类别。
4. 文档对方法(PairWise Approach)
对于搜索系统来说,系统接收到用户査询后,返回相关文档列表,所以问题的关键是确定文档之间的先后顺序关系。单文档方法完全从单个文档的分类得分角度计算,没有考虑文档之间的顺序关系。文档对方法则将重点转向量对文档顺序关系是否合理进行判断。
之所以被称为文档对方法,是因为这种机器学习方法的训练过程和训练目标,是判断任意两个文档组成的文档对<D0C1,D0C2>是否满足顺序关系,即判断是否D0C1应该排在DOC2的前面。图3展示了一个训练实例:査询Q1对应的搜索结果列表如何转换为文档对的形式,因为从人工标注的相关性得分可以看出,D0C2得分最高,D0C3次之,D0C1得分最低,于是我们可以按照得分大小顺序关系得到3个如图3所示的文档对,将每个文档对的文档转换为特征向量后,就形成了一个具体的训练实例。
图3 文档对的方法训练实例
根据转换后的训练实例,就可以利用机器学习方法进行分类函数的学习,具体的学习方法有很多,比如SVM. Boosts、神经网络等都可以作为具体的学习方法,但是不论具体方法是什么,其学习目标都是一致的,即输入- 个査询和文档对<Docl,DOC2>, 机器学习排序能够判断这种顺序关系是否成立,如果成立,那么在搜索结果中D0C1应该排在D0C2 前面,否则Doe2应该摔在Docl前面,通过这种方式,就完成搜索结果的排序任务。 尽管文档对方法相对单文档方法做出了改进,但是这种方法也存在两个明显的问题:
一个问题是:文档对方法只考虑了两个文档对的相对先后顺序,却没有考虑文档出现在搜索列表中的位置,排在搜索站果前列的文档更为重要,如果前列文档出现判断错误,代价明显高于排在后面的文档。针对这个问题的改进思路是引入代价敏感因素,即每个文档对根据其在列表中的顺序具有不同的权重,越是排在前列的权重越大,即在搜索列表前列如 果排错顺序的话其付出的代价更高? 另外一个问题是:不同的査询,其相关文档数量差异很大,所以转换为文档对之后, 有的查询对能有几百个对应的文档对,而有的查询只有十几个对应的文档对,这对机器学习系统的效果评价造成困难 ?我们设想有两个查询,査询Q1对应500个文文档对,查询Q2 对应10个文档对,假设学习系统对于査询Ql的文档对能够判断正确480个,对于査询 Q2的义格对能够判新正确2个,如果从总的文档对数量来看,这个学习系统的准确率是 (480+2)/(500+10)=0.95.即95%的准确率,但是从査询的角度,两个査询对应的准确率 分别为:96%和20%,两者平均为58%,与纯粹从文档对判断的准确率相差甚远,这对如何继续调优机器学习系统会带来困扰。
PS:Pairwise方法有很多的实现,比如SVM Rank(开源), 还有RankNet(C. Burges, et al. ICML 2005), FRank(M.Tsai, T.Liu, et al. SIGIR 2007),RankBoost(Y. Freund, et al. JMLR 2003)等等。 你通常会看到微软数据集每个Fold文件夹下有train.txt test.txt vail.text三个文件,它们分别的作用是什么呢? 训练集--用于学习参数,比如可以训练10个不同阶的线性模型,这里得到每个特征值的权值;验证集--用来选择模型,主要考虑的准则是在新的数据上的泛化能力,比如根据各个模型在验证集上的权值,选择了3阶的模型;测试集--测试模型,测试这个被选中的3阶模型的表现。
4. 文档列表方法(ListWise Approach)
单文档方法将训练集里每一个文档当做一个训练实例,文档对方法将同一个査询的搜索结果里任意两个文档对作为一个训练实例,文档列表方法与上述两种表示方式不同,是将每一个查询对应的所有搜索结果列表整体作为一个训练实例,这也是为何称之为文档列表方法的原因。 文档列表方法根据K个训练实例(一个査询及其对应的所有搜索结果评分作为一个实 例)训练得到最优评分函数F, 对于一个新的用户査询,函数F 对每一个文档打分,之后按照得分顺序由高到低排序,就是对应的搜索结果。 所以关键问题是:拿到训练数据,如何才能训练得到最优的打分函数?
这里介绍一种训练方法,它是基于搜索结果排列组合的概率分布情况来训练的,图4是这种方式训练过程的图解示意。
图4 不同评分函数的KL距离
首先解释下什么是搜索结果排列组合的概率分布,我们知道,对于搜索 引擎来说,用户输入査询Q, 搜索引擎返回搜索结果,我们假设搜索结果集合包含A. B 和C 3个文档,搜索引擎要对搜索结果排序,而这3个文档的顺序共有6种排列组合方式:
ABC, ACB, BAG, BCA, CAB和CBA,
而每种排列组合都是一种可能的搜索结果排序方法。
对于某个评分函数F来说,对3个搜索结果文档的相关性打分,得到3个不同的相关度得分F(A)、 F(B)和F(C), 根据这3个得分就可以计算6种排列组合情况各自的概率值。 不同的评分函数,其6种搜索结果排列组合的概率分布是不一样的。 了解了什么是搜索结果排列组合的概率分布,我们介绍如何根据训练实例找到最优的 评分函数。图4展示了一个具体的训练实例,即査询Q1及其对应的3个文档的得分情况,这个得分是由人工打上去的,所以可以看做是标准答案。可以设想存在一个最优的评分函数g,对查询Q1来说,其打分结果是:A文档得6分,B文档得4分,C文档得3分, 因为得分是人工打的,所以具体这个函数g是怎样的我们不清楚,我们的任务就是找到一 个函数,使得函数对Ql的搜索结果打分顺序和人工打分顺序尽可能相同。既然人工打分 (虚拟的函数g) 已知,那么我们可以计算函数g对应的搜索结果排列组合概率分布,其具体分布情况如图4中间的概率分布所示。假设存在两个其他函数h和f,它们的计算方法已知,对应的对3个搜索结果的打分在图上可以看到,由打分结果也可以推出每个函数对应的搜索结果排列组合概率分布,那么h与f哪个与虚拟的最优评分函数g更接近呢?一般可以用两个分布概率之间的距离远近来度量相似性,KL距离就是一种衡量概率分布差异大小的计算工具,通过分别计算h与g的差异大小及f与g的差异大小,可以看出f比h更接近的最优函数g,那么在这个函数中,我们应该优先选f作为将来搜索可用的评分函数,训练过程就是在可能的函数中寻找最接近虚拟最优函数g的那个函数作为训练结果,将来作为在搜索时的评分函数。
上述例子只是描述了对于单个训练实例如何通过训练找到最优函数,事实上我们有K 个训练实例,虽然如此,其训练过程与上述说明是类似的,可以认为存在一个虚拟的最优 评分函数g (实际上是人工打分),训练过程就是在所有训练实例基础上,探寻所有可能的 候选函数,从中选择那个KL距离最接近于函数g的,以此作为实际使用的评分函数。 经验结果表明,基于文档列表方法的机器学习排序效果要好于前述两种方法。