gjwei


  • 首页

  • 标签

  • 分类

  • 归档

  • 搜索

leaning-to-rank-for-IR

发表于 2019-01-23 | 阅读次数:

Learning to Rank for Information Retrieval

https://www.cda.cn/uploadfile/image/20151220/20151220115436_46293.pdf

目标:本周内读完前11页的内容

Chapter 1 Overiew

本章主要是介绍l2r,首先以文档搜索为例介绍排名问题,然后,回顾传统方法,提出广泛使用的评估方法,之后给出机器学习解决排名问题的冬季,并对现有的方法进行分类和简化描述

介绍


搜索引擎包括:爬虫,解析器,索引器,链接分析器,查询处理器和排名起。
爬虫复杂爬去网页信息;解析器复杂分析文档并生成对应的索引和超链接图。
ranking在搜索引擎中是处于核心作用,在其他信息检索任务中也是同样的呃核心作用,如协同过滤,问答,多媒体检索,文本摘要等。

1.2 Ranking in IR

传统的方法

相关性排名模型
相关性排名模型根据文档和查询之间的相关性产生排序的结果。通常将每个单独的文档作为输入,并计算匹配的分之,然后按照这些分值进行降序排序。
早期相关性的排名模型基于文档中查询项的出现来检索文档,例子包括布尔模型。基本上,这些模型可以预测文档中是否与查询相关,但是无法预测相关的程度。
为了进一步建立相关度模型,提出了向量空间模型,文档和查询都表示为欧几里得空间中的向量,向量的内积可以表示为它们的相关性。其中TF-IDF常用语表示查询和文档的向量。

虽然VSM暗示了查询单词之间的独立性,隐藏语义索引LSI避免了这种假设,尤其是使用SVD作为讲原始线性空间分解为“潜在语义空间”。然后使用这个新空间中的相似性来定义查询和文档之间的相似性。

另外,基于概率排序模型也取得很大成功。BM2和语言模型等著名的排序模型都可以看作是概率排序模型。BM25是按照文档相关性的对数概率对文档进行排序。
给定一个query q,包含了很多的单词t1,t2,…,tM, 计算一个文档的BM25值的公式:

其中TF表示文档d中单词t的出现频率,LEN(d)表示文档d的长度(字数),avdl表示文档集合的平均文档长度。$k_1$和$b$表示自由参数,控制每个项的权重。
LMIR是将统计LM应用到IR上。统计LM会对一个序列的单词分配一个改了。当应用到IR上,LM会与文档相关联。利用查询query q,基于文档会产生query的可能性$P(q|d)=\prod_{i=1}^{M}P(t_i|d)$.

$\lambda$表示平滑系数。

重要的排序模型

PageRank模型
PageRank使用随机点击链接的浏览者到达特定网页对网页进行排名的概率。 在一般情况下,任何页面的PageRank值都可以表示为

网页$d_u$的PageRank值依赖于所有指向du的网页的rank值处于该网页的外链数。

Query-Level Position-Based Evaluations 基于query位置的评估方法

有了模型,我们就需要一个可以用来衡量模型好坏的评估方法。

Cranfield 实验方法:

  • 收集很多随机选择的query
  • 对于每个query
    • 收集与这个query相关的文档集${d_j}_{J=1}^M$/
    • 人工对这些文档进行相关度评价
    • 使用模型对文档集进行排序
    • 使用评估方法衡量模型排序结果和真实结果的差异
  • 使用所有query评估结果的平均值作为模型的性能结果

相关度判断方法:

  1. 相关程度:人工标注判断一个文档是否相关。假设对同一个qeury q的两个文档,我们分配对应的相关度量。如果两个文档$d_u$和$d_v$,对应的相关度$l_u>L_V$那么,u就要比v更相关。
  2. 成对偏好:指定一个文档比其他文档更相关。如果一个文档u要比文档v更相关,我们标定$l_{u,v}=1$,否则就标定为-1.
  3. 整体顺序:对于给定的query标定文档集的整体排序。对于文档集合${d_j}_{j=1}^M$,将其表示为一个特定的序列,表示$\pi_l$

大多数评估测量是首先针对每个查询定义的,作为排名模型和相关性判断给出的排序列表π的函数。然后对测试集中的所有查询求平均度量。
一下介绍的方法都是通过最大化值进行优化。如MRR,MAP,NDCG等,我们可以通过考虑使用1减去这些值来最小化值作为优化目标。

Mean Reciprocal Rank(MRR) 平均倒数排名
对于query q,排序结果中第一个相关文档的位置表示为$r_1$, MRR表示为r1的倒数。

Mean Average PrecisionMAP
首先,我们定义位置k(P@K)的精确度。假设我们有两个标签相关和不想关。1表示相关,0表示不想关。


然后,就可以定义AP:

m表示和query q相关联的所有文档的数目。$m_1$表示为相关文档的树木。
对于上图1.4,我们可以计算得到:P@1=1,p@2=1/2,p@3=2/3,然后,AP=5/6

Discounted Cumulative Gain (DCG)
DCG可以根据多个有序列类别来利用相关性判断,并在定义中具有明确的折扣因子。假设查询q的排序列表是pi,那么位置k的DCG表示为:

在这里,G(.)表示文档的评级,通常设置为$G(z)=(2^z-1)$ $\eta(.)$表示为位置的折扣因子,通常设置为$\eta(j)=1/log(j+1)$。

对其进行归一化,除去DCG@k的最大值。得到归一化的NDCG:

以下摘自链接:http://sofasofa.io/forum_main_post.php?postid=1002561

Rank Correlation (RC)

总结下:

  1. 所有评价方法都是计算在query level的。
  2. 都是基于位置进行度量的。这些方法通常是不可微的,所以优化起来很麻烦。

Learning to rank

Machine Learning Framework

许多机器学习研究中,一下几个关键组成部分:

  1. 输入空间。通常,对象是由特征向量组成,根据不同的应用进行提取。
  2. 输出空间,包含了针对输入对象的学习目标。机器学习的输出空间有两个相关但是不同的定义。首先是任务的输出空间,她高度依赖于应用的场景。第二个是让学习过程更容易的输出空间,这个可能和任务的输出不同。例如,使用回归方法解决分类任务的时候。
  3. 假设空间。定义了输入空间到输出空间的函数类。
  4. 为了优化参数,通常使用训练集。损失函数测量模型输出和真实标签的一致程度。利用损失函数,可以在训练集上定义经验损失,通过经验损失最小化学习最优假设。

    Learning to rank定义

    我们定义使用机器学习完成排序任务的方法为learning-to-rank方法。
    多数的算法都是通过监督学习优化query-documnet对的特征。我们称具有以下两种属性的方法为leanring-to-rank方法
  5. Feature Based。
    基于特征意味着所有的文档都是用向量表示。学习排名的典型特征包括文档中查询术语的频率,BM25模型和PageRank模型的输出,甚至本文档与其他文档之间的关系。
  6. 判别训练
    判别训练是指leanring to rank有自己的输入空间,输出空间,假设空间和损失函数。
    判别式训练事是从训练数据中自动学习的过程,这个对于真实搜索引擎是十分重要的,因为搜索引擎每天都会接受大量用户反馈和使用log,自动学习并不断改进排名机制是非常重要的。

Learning-to-Rank Framework

排名算法分为三种:PointWise,pairwise,listwise
不同的方法,定义不同的输入和输出空间,使用不同的假设函数以及不同的损失函数。

Pointwise方法

输入空间是包含单个文档的特征向量。
输出空间是每个文档的相关度,可以根据相关程度,转换为不同的标签。ground truth label表示正确的标注。

  • 如果判断是直接通过相关程度$l_j$给出,那么文档的标签就可以定义为$y_j=l_j$
  • 如果判断是给定了一个成对的偏好$l_{uv}$,则可以通过计算击败其他文档的频率来得到文档的正确标签。
  • 如果判断结果是给定了一个总顺序$\pi_l$。则可以通过使用映射函数获得真是标签。例如,文档在$\pi_l$的位置可以当作是真实标签。

假设空间包含了将文档的特征向量作为输入并预测文档的相关度的函数,我们称之为评分函数。基于评分函数,我们可以对文档进行排序生产最终的排序列表。

损失函数检查了每个文档的真实标签预测准确度,在不同的pointwise算法中,排序是作为一个回归,分类模型来做的,因此相应的损失函数也可以当作该算法的损失函数

需要注意的是,逐点方法不考虑文档之间的相互依赖性,因此文档在最终的排序结果的位置对于其损失函数是不可见的,该方法没有利用某些文档实际上与同一个查询相关联的事实。这种发发有其局限性。

Pairwise方法

输入空间是成对的文档,都表示为特征向量。
输出空间也是包含了成对的属性(我们从{+1,-1}中取值)。根据成对偏好,我们可以将不同类型的判断转化为标签。

  • 如果相关程度定义为$l_j$,那么$(x_u,x_v)$成对标签就可以定义为$y_{u,v}=2*I_{l_u>l_v}-1$
  • 如果相关程度是直接给定的偏好,就直接设定$y_{u,v}=l_{u,v}$
  • 如果给定的是总的顺序$\pi_l$,定义$y_{u,v}=2*I_{\pi_l(u)<\pi_l(v)}-1$

假设空间包含了双变量函数h,他将一对文档作为输入并输出它们的相对顺序。为了简单,我们使用评分函数f定义,即:$h(x_u,x_v)= 2·I {f(x_u)> f(x_v)} - 1$。

损失函数是衡量$h(x_u,x_v)$和真实标签$y_{u,v}$。

成对方法使用的损失函数仅仅考虑了两个文档之间的相对顺序。然而,仅仅查看一对文档,很难得出最终的列表的位置。考虑到信息检索中都是使用query级别和位置,我们可以看到这种方法和信息检索的排序之间的差别。

Listwise方法

输入空间是一个queyr对应的相关联的文档集合,如$x={x_j}_{j=1}^m$
输出空间是文档的排序列表。不同的判断发过誓可以转化为排序列表的标签。

  • 对于给定了相关度的判别,按照相关度的大小排序得到一个列表作为真实标签。
  • 如果给定的是pairwise的偏好,同样定义一个满足所有pairwise偏好的列表座位真实标签。
  • 给定一个总的列表,直接定义标签为$\pi_y=\pi_l$

对于列表方法,学习过程是为了让输出空间与任务的输出完全相同。优化过程更直接。

假设空间包含了多变量的函数h,会对一个文档集进行处理并预测他们的序列。假设函数h通常由评分函数f来实现,例如$h(x) = sort \odot f(x)$

Listwise方法的损失函数通常有两种,一种是和评价方法有关(度量特定损失函数),另外一种无关(非度量特定损失函数)。我们主要参考一下标准来将listwise方法和其他两种方法区分:

  • 列表损失函数是根据一个query以及对应的所有训练文档定义的
  • liswise损失函数不能完全分解为单个文档或者文档对的求和
  • 强调排序列表的概念,并且最终的排序结果的文档位置在损失函数中是可见的。

总结表:

文章使用的符号:

Chapter2 The Pointwise方法

本章讨论了基于回归算法,基于分类的算法和基于序数的肃反啊,然后讨论他们的优缺点。
对于基于回归的算法,输出空间包括实数值相关分数。对于分类的算法=,输出空间包含了无序的类别,对于基于序数的算法,输出空间输出有序的类别。

Regression-Based Algorithms

排序问题被当作一个回归问题。

Subset Ranking with Regression

给定了 query q对应的文档集$x={x_j}_{j=1}^m$,真实标签 $y={y_j}_{j=1}^m$. 打分函数f用来排序这些文档。损失函数定义为:

只有当评分函数 能够准确输出时候,没有损失,否则就会有二次的损失。对于相关文档,只有当打分函数准确输出为1时候,损失为0,否则如果打分为2,看起来是对这个文档具有更强的相关预测,也会有损失。所以,某种意义上,这样的损失函数不合理。

作为一种拓展,有提出一种加权回归模型。权重有助于模型更集中雨相关文档的回归错误。另外,还对回归损失增加了正则化项,减少过拟合风险。

平方损失的理论是基于NDCG的排名误差的理论上限,然而根据以上的讨论,即使有较大的损失,对应的排序结果可能也是最优的。我们可以认为平方损失是基于NDCG排名错误的松散约束。

Classification-Based Algorithms

二元分类

基于SVM的方法

假设文档对应的标签y为1表示相关,-1表示不想关

image-20190125144519164

其实就是1以文档的特征向量作为输入,使用SVM做二元分类判断该文档是否和query匹配。

Logistic Regression-Based Method

Multi-class Classification for Ranking

Boosting Tree-Based Method

给定了一个文档集合 $x={x_j}^m_{j=1}$.对应的相关度为 $y={y_j}_{j=1}^m$. 假设又一个多元分类器,预测文档对应的相关度。

然后,用于学习分类器的损失函数是定义为0-1分类错误的替代函数:

在增强树算法,我们使用以下代理损失函数:

image-20190125145407636

Association Rule Mining-Based Method 基于关联规则挖掘的方法

从训练数据中发现文档归属于某一类的特征。

基于序数回归的算法

此时,输出空间包含的是有序类别。

通常是找到一个打分函数,然后用一系列阈值对得分进行分割,得到有序类别。采用 PRanking、基于 margin 的方法都可以。

Perceptron-Based Ranking (PRanking)

Pranking的目的是在投影文档之后找到参数向量定义的方向,在文档上可以容易使用阈值将文档区分为不同的有序类别。

Ranking with Large Margin Principles

主要是使用SVM技术学习模型参数和阈值b

讨论

与相关反馈的关系

学习排名的逐点方法,特别是基于分类的算法,与相关反馈算法有很强的相关性

相关反馈算法在信息检索中有重要作用。基本思想是从显示,隐式或者盲目的反馈中学习以更新原始的query,新的query用于检索得到一组新文档,通过迭代式执行这个操作,我们可以使query更接近于最优query,从而提高检索性能。

如Rocchio算法:

image-20190125152124659

所以,我们相当于将query vector看作是一个模型的参数。

这种方法和learning 2 rank方法的区别在于;

  1. 该算法空间是VSM算法空间,query和document都表示为向量,他们之间的内积当作是相关程度。与此不同的是,l2r算法中,特征空间是从每一个query-document对中抽取得到的。
  2. 该算法从反馈中学习模型的参数,然后去对和相同query的文档进行新的排序。l2r则是会对未知的query进行排序验证
  3. 该算法的模型参数w实际上具有物理意义,即是更新的查询向量。而l2r则没有这个含义,并且仅对应于每个特征对于排名任务的重要性。
  4. 算法的目的是更新query以获得更好的结果,但是不学习最佳的排名。

Pointwise算法问题

  1. pointwise 类方法并没有考虑同一个 query 对应的 docs 间的内部依赖性。一方面,导致输入空间内的样本不是 IID 的,违反了 ML 的基本假设,另一方面,没有充分利用这种样本间的结构性。其次,当不同 query 对应不同数量的 docs 时,整体 loss 将会被对应 docs 数量大的 query 组所支配,前面说过应该每组 query 都是等价的。

  2. ranking 追求的是排序结果,并不要求精确打分,只要有相对打分即可。

  3. 损失函数也没有 model 到预测排序中的位置信息。因此,损失函数可能无意的过多强调那些不重要的 docs,即那些排序在后面对用户体验影响小的 doc。

改进方法

RankCosine介绍了一种query-level normalization factor,定义的损失函数是基于query q的得分函数f和真实标签的得分向量的cosine相似度。

Chapter 3 The PairWise 方法

Pairwise方法不关注与每个文档的相关程度,它只关心与两个文档之间的相对顺序,从这个意义讲,它更接近于“排名”的概念。

在成对方法汇总,排名通常被简化为文档对的分类,即,确定一对文档中哪个文档是优选的。也就是,学习的目标是最小化错误分类文档的数量。

示例算法

The BellKor 2008 Solution to the Netflix Prize

发表于 2019-01-22 | 阅读次数:

介绍

主要介绍论文结构

新方法

因子模型

SVD

Asymmetric-SVD

SVD++

这些模型的学习方法是使用SGD,参数$\mu$是指训练集中的平均打分值。

时间效应

发现了三种强时间效应

  1. 电影偏差:电影会随着时间发生流行度变化
  2. 用户偏差:用户会随着时间改变他们的打分基线
  3. 用户偏好:用户的偏好会随着时间发生变化

之后,开始介绍下如何在模型中使用这些时间效应
以SVD++为例:

Here,我们预测随着时间t的打分值r。请注意,相关的参数现在构造为和时间相关的函数。这些偏差是同时学习的。
时间偏差效应更容易捕捉到,因为我们不需要最精细的细粒度。
对于item的时间效应,比较容易捕获到:
作者将训练集时间切分了30份,每一份作为一个bin。同一个电影在不同bin具有不同的结果。

对于用户层面的时间效应:


the-wistom-of-the-few

发表于 2019-01-22 | 阅读次数:

The Wisdom of the Few

A Collaborative Filtering Approach Based on Expert Opinions from the Web

matirx-factorization-for-RS

发表于 2019-01-21 | 阅读次数:

矩阵分解技术在推荐系统中的应用

潜在因子分解最成功的案例是基于矩阵分解的,在其基本形式中,矩阵分解对商品评价来推断出用户和item的隐藏因子向量。item和user之间的高匹配会导致推荐。
推荐系统通常依赖的数据防止在矩阵中,其中一个维度是用户,一个维度是感兴趣的项目。通常这个矩阵是稀疏的,因为单个用户可能仅仅评估了项目中一小部分。
矩阵分解的优势在于,它允许结合其他的信息。当显示反馈不可用时候,推荐系统可以根据隐式的反馈意见判断用户偏好。
隐式反馈通过观察用户行为间接反映意见,包括购买历史,浏览历史,搜索模式,甚至鼠标移动。 隐式反馈通常表示事件的存在或不存在,因此它通常由密集填充的矩阵表示。

基础的MF模型

item i对应的向量为$q_i$,用户u对应的隐向量为$p_u$,两者之间的感兴趣程度可以表示为
$$ r_{ui}=q_i^T p_u $$

然后,可以计算得到一个用户最感兴趣的商品。

这个模型的方法最相关是SVD。但是,在使用SVD时候,是需要被分解的矩阵是完整的,但是实际中的用户-项目矩阵是稀疏且有大量missing value。所以,不能直接使用SVD。

有一些方法是直接建模去拟合已经有的用户打分数据。

使用惩罚系数$\lambda$来控制隐藏因子矩阵,防止过拟合。

学习算法

SGD

alternating least squares
因为两个向量都是位置的,所以公式2是非凸的问题,所以,如果我们固定其中一个向量,优化另外一个,就可以进行优化。

ALS方法就是交替性的固定某个向量,优化另外一个向量,直到收敛为止。

Add Bias

观察到的评级大小的变化是由于用户和项目相关的影响,称为偏差,与任何交互无关。在实际中,某些用户比其他用户更倾向打高分,某些项目更容易获得更高的评分等。
我们可以通过增加bias来解决:


其中,$\mu$表示整体的平均打分值。$b_u$ $b_i$分别表示用户u的偏差和项目i的偏差。

额外的输入

通常,一个系统必须要解决冷启动问题。
解决这个问题的方法是合并有关用户的其他信息源。

随时间动态变化

矩阵分解方法非常适合对时间效应建模,这可以显著提高准确性。将评级分解为:

可变置信度的输入

并非所有的评级都是具有相同的权重和置信度。

使用$c_{iu}$表示评价$r_{iu}$的置信度

Filtering

发表于 2019-01-21 | 阅读次数:

Recommendations Item-to-Item Collaborative Filtering

推荐系统是使用消费者的兴趣作为输入生产一个推荐项目的列表。很多的应用只有使用顾客购买的item以及明确的评价,但是他们可能也会有其他的属性,包括查看的项目,人口统计数据,主题兴趣和喜好的艺术家等。

点击量:广告被点击的次数
点击率:点击率:广告被点击的比例,点击量/展现量
转化次数:访问这到达转换目标页的次数
转化率(VR):转换次数/访问次数

零售商拥有大量数据,数千万的用户和商品

  1. 许多场景需要在半秒内返回结果,同时要生产高质量的建议
  2. 新客户冷启动问题
  3. 老客户可以获取稻粱信息
  4. 数据不稳定:每次交互都能提供有价值的客户数据,算法必须要即使响应新的信息

Recommendation Algorithms

多数的推荐系统都是首先找到一组和当前客户的购买和评价的商品有重叠的用户,算法聚集这些相类似的顾客,消除该用户已经购买的商品,然后推荐给这个用户剩余的商品。

传统的协同过滤算法

传统方法将客户表示为项目的N维度向量,其中N是不同的项目目录。向量的组成部分对于购买或者评级为正的项目为正,对于负评级项目为负。
为了抵消流行商品的影响,算法会通过乘以一个反频率(购买或者评价商品顾客数量的倒数),使不知名的商品更具有相关性。对于所有用户来说,这个向量是十分稀疏的。
该算法基于与用户最相似的少数客户生成推荐,他可以以各种方式衡量两个顾客A和B的相似度,可以通过余弦距离测量。
通过对一个商品计算有多少相似顾客会购买它来进行排序。

使用协同过滤的方法复杂度很高,最差会有O(MN)的复杂度。M是顾客数据,而N是每个顾客对应的N个商品。

聚类模型

使用一个相似度衡量方法,聚类算法可以将最相似的几个顾客聚到一起组成一个族。然后根据同一个Cluster中的顾客作为相似顾客做推荐

Search-Based方法

基于搜索,也叫做基于内容的推荐方法,是通过搜索相关商品来做推荐。
给定一个用户的购买记录,算法能够构造出一个搜素的query,去找到其他相关的相似商品。

Item-to-item协同过滤算法

amazon会提供购物车建议,基于他们的购物车推荐给用户商品。amazon使用推荐算法为每个客户的兴趣进行个性化,item-to-item协同过滤,可以实时生成高质量的建议。

如何工作?

这种方法并不是将客户和类似的客户做匹配,而是将客户购买的商品的每一个和类似的商品做匹配,然后将这些商品组合到推荐列表中。
为了确定给定商品的最相似匹配,该算法通过查找客户倾向于一起购买的商品构建项目表。

这个方法的优势在于,可以在离线状态下计算similar-items,然后线上能够实时推荐用户相似的商品。
而传统的方法无法保证这一点。

深度文本匹配模型

发表于 2018-09-02 | 阅读次数:

DSSM(Deep Semantic Structrured Model)

结构

可以在检索的场景下,使用点击数据来训练语义层次的匹配


阅读全文 »

semantic-textual-similarity

发表于 2018-07-31 | 阅读次数:

Semantic textual similarity

Model:

ESIM

包含的部分:

阅读全文 »

Batchnorm如何发挥作用的

发表于 2018-07-16 | 阅读次数:

How Does Batch Normalization Help Optimization? (No, It Is Not About Internal Covariate Shift)

MIT的研究人员从优化过程对应的空间平滑性这一角度进行分析BN在深度学习中的作用

BatchNormalizatio是一种通过固定层输入的分布来改善神经网络训练的技术,通过引入一个附件的网络控制这些分布的均值和方差。

阅读全文 »

mix-of-softmax

发表于 2018-07-12 | 阅读次数:

BREAKING THE SOFTMAX BOTTLENECK: A HIGH-RANK RNN LANGUAGE MODEL

ICLR2018

Abstract

将LM看做是一个matrix分解的问题,现有的softmax-based models会受限于Softmax bottleneck。作者证明了,使用对于分布式的word embedding 使用softmax没有能力model language。
作者提出了MoS的方法,改进了softmax。

阅读全文 »

Simplified-deep-learning笔记

发表于 2018-07-12 | 阅读次数:

概率论和信息论

  1. 基本概念

贝叶斯准则:在已知P(y|x)和P(x)的情况下,$P(x|y) = \frac{p(x)P(y|x)}{P(y)}$, 贝叶斯准则经常被用在已知参数的先验分布情况下求后验分布。

阅读全文 »

12…6
gjwei

gjwei

56 日志
18 标签
GitHub E-Mail
© 2019 gjwei
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4
访问人数 总访问量 次