DSSM这篇paper发表在cikm2013,短小但是精炼,值得记录一下

DSSM结构

DSSM最大的卖点在检索场景下 使用点击数据来训练语义层次的匹配,简单的来说,传统检索场景下的匹配主要有:

  1. 字面匹配:TFIDFBM25
  2. 使用LSA类模型进行语义匹配,但是效果不好

而DSSM训练出来之后,检索场景下用户输入query之后,可以根据该query计算各个doc的语义相似度。

这里上图最直接:

Read More

Federated Search 介绍1

Federated search is an information retrieval technology that allows the simultaneous search of multiple searchable resources. —from WikiPedia


上图就是一个Federated Search的栗子,在搜索了lyon关键词之后有地图图片视频以及网页,其各种资源一般来说是不在同一个引擎的,其中召回排序算法也是不一致的,而Federated Search要做的就是接收到关键词之后给用户展现一个统一的界面。

Read More

最大熵原理

:其物理意义是体系混乱程度的衡量,在热力学中越大表示物质越混乱,但同时也为越稳定~
现假设离线随机变量$X$的概率分布为$P(X)$,则其熵为定义为:
$$H(P)= -\sum_x P(x) \text{log} P(x)$$

当$X$为均匀分布时,熵值最大:

Read More

Softmax 介绍

多分类是机器学习中一类非常常见的任务,比如将0~9某个字写到图片上,使用多分类的方法来识别这个图片上写的到底是几(MNIST手写体识别),对于多分类任务常用的机器学习方法有:

  1. 借助二分类,使用One vs All或者One vs One来完成多分类
  2. 使用朴素贝叶斯来完成多分类
  3. 决策树类模型~
  4. 最大熵模型
  5. 。。。

Read More

文本相关性

在信息检索中文本相关性是排序因子中非常重要的一个特征,大部分的文本相关性特征是直接根据querydoc上的term进行各种匹配、各种计算得到的, 比如词频/频率tf/idf/tf*idfbm25布尔模型空间向量模型以及语言模型,今天看到参考[1]这篇paper,提到了可以将点击日志构成二部图,根据二部分进行向量传播,最终收敛之后进行文本相关性的计算,也算是比较新颖了,下文就主要是对该paper的一个学习以及自己理解的记录。
该paper提出的三个贡献:

  1. 可以使querydoc在同一空间上生成词向量考虑
  2. 对于未曾有点击行为的querydoc也可以进行该空间词向量的估计
  3. 最终计算的效率较高,可以用于商业的搜索引擎

如果已知了querydoc在同一空间上的向量表示,这样文本相关性就可以直接使用相似度的计算方式来得到了~

Read More

引言

在信息检索中文本相关性计算是至关重要的一个特征,关于文本相关性计算时用的比较多的有:词频/频率tf/idf/tf*idfbm25布尔模型空间向量模型以及语言模型,本文主要是对于[1]的一些学习理解,虽然[1]历史久远,但是可行性高,同时目前也有不少搜索引擎在使用[1]的方法,主要介绍的是语言模型在信息检索中使用的平滑方法,主要侧重点就是性能。

Language Model

现假设query是基于文档d进行生成的,那么给定一个query$q=q_1q_2..q_n$以及一个文档$d=d_1d_2…d_n$,我们比较关心的是$p(d|q)$这个条件概率,即在观察到$q$的情况下生成$d$的一个概率,假设文档中的词是相关独立的,根据贝叶斯公式,则有:
$$p(d|q) \propto p(q|d)p(d)$$

Read More

AUC介绍

AUC(Area Under Curve)是机器学习二分类模型中非常常用的评估指标,相比于F1-Score对项目的不平衡有更大的容忍性,目前常见的机器学习库中(比如scikit-learn)一般也都是集成该指标的计算,其计算原理可以参考这个ROC和AUC介绍以及如何计算AUC ,但是有时候模型是单独的或者自己编写的,此时想要评估训练模型的好坏就得自己搞一个AUC计算模块,本文在查询资料时发现libsvm-tools1有一个非常通俗易懂的auc计算,因此抠出来用作日后之用。

Read More

为啥要有LambdaRank

首先来看这么一个问题,机器学习一般都会有两个指标,一个叫做优化指标(Optimization Cost),另一个叫做评测指标(Target Cost),其中优化指标是训练时一直优化的目标,他一般都是需要连续可导(否则优化难度很大),另一个评测指标就是模型训练完了之后来评估这个模型的好坏。比如SVM模型的优化指标就是样本点距离分类面的距离最大化($\underset{w,b}{max} \quad \gamma$),而其评测指标一般都是准确率、F1值或者AUC等。
在信息检索领域其实也是这样,其排序的评测指标一般是NDCG、MAP、ERR等,但是这类指标都是非凸或者不连续,并无法直接进行优化,所以很多排序学习算法的优化一般都是都是Corss Entropy或者MSE

RankNet中优化的目标是Corss Entropy,他们是近似于Pairwise Error,但是这个评估指标并没有考虑排在靠前的文档。

Read More

RankNet是一种基于pairwise的学习排序,假设文档AP的概率排在文档B的前面,则RankNet就是使用神经网络算法来使得这个概率最大化.last update at:2016-08-28

算法原理

假设现在有一对文档$D_i$和$D_j$,给定一个目标概率$\bar{P}_{i,j}$,以表示文档$D_i$将会排在文档$D_j$的前面.

  1. 如果$\bar{P}_{i,j}=1$,表示$D_i$一定会排在$D_j$前面
  2. 如果$\bar{P}_{i,j}=0.5$,表示$D_i$和$D_j$的前后关系将无法确定
  3. 如果$\bar{P}_{i,j}=0$,表示$D_i$一定不会排在$D_j$前面

现在有一个实值的排序函数$f$,如果$f(x_i) > f(x_j)$,则会有$D_i \triangleright D_j$(表示$D_i$会排在$D_j$前面)

这里$x$是为文档$D$所表示的特征向量

Read More

GBRank是一种pairwise的学习排序算法,他是基于回归来解决pair对的先后排序问题。在GBRank中,使用的回归算法是GBT(Gradient Boosting Tree),可以参考这个pairwise相关的可以参考这个

算法原理

一般来说在搜索引擎里面,相关性越高的越应该排在前面。现在query-doc的特征使用向量$x$或者$y$表示,假设现在有一个文档对$\left \langle x_i,y_i \right \rangle$,当$x_i$排在$y_i$前面时,我们使用$x_i \succ y_i$来表示。

我们含顺序的pair对用如下集合表示(也就是真的$x_i$真的排在$y_i$前面):$$S=\{ \left \langle x_i,y_i \right \rangle | x_i \succ y_i,i = 1…N \}$$

现假设学习的排序函数为$h$,我们希望当$h(x_i)>h(y_i)$时,满足$x_i \succ y_i$的数量越多越好.
现在将$h$的风险函数用如下式子表示:$$R(h) = \frac{1}{2} \sum_{i=1}^N \left( max\{0,h(y_i)-h(x_i)\} \right)^2$$

Read More