Category Archives: 数据分析

1.如何联系多个特征量(How Can We Combine Many Features)
一般的思想:
– 给定一个查询-文档对(Q,D),定义多种特征量Xi(Q,D)
– 特征量举例:交叠项的数量、Q和D的BM25算法得分p(Q|D)、D的页面排名p(Q|Di),其中Di可能是锚文本或者大字体文字(big font text)、URL是否包含’~’ 等
– 假设p(R=1|Q,D)=s(X1(Q,D),…,Xn(Q,D),λ)其中λ是一个参数集
– 将数据输入拟合函数s来训练λ,其中数据为三元组(D,Q,1)(D与Q相关)或者(D,Q,0)(D与Q无关)

一、文本检索中的反馈(Feedback in Text Retrieval)
反馈的概念即是,使用原始的结果反过来帮助模型进行相关的处理,改进算法精度。

在文本检索中,我们会学习多种不同的反馈机制。

1.相关性反馈(Relevance Feedback)
在相关性反馈机制中,用户看到检索结果后,可以直接对其中的内容相关性做出判断,这些反馈信息对与检索系统来说十分有用——知道用户感兴趣的究竟是什么。因此,反馈模块把用户的判断作为输入来尝试改善算法。

一、概率检索模型的基本概念(Probabilistic Retrieval Model – Basic Idea)
在之前的内容中,我们讨论了基于向量空间模型(VSM)的排名方法。在这一章中,我们会讨论一种新的方法。在基于向量空间的模型中,我们将排名结果看作一系列二进制随机变量构成的矢量,其中R=1表示文档与查询相关。而在概率检索模型中,我们定义了一个排名函数来表达某个文档与某个查询相关的概率。即

概率模型(Probabilistic models): f(d,q) = p(R=1|d,q), R∈{0,1}
– 传统的概率模型是BM25
– 语言模型是查询似然(Query Likelihood)
– 还有一种随机性差异模型PL2

一、引言(Evaluation of TR System)
正如对其他预测系统所做的一样,我们对文本搜索系统也要进行一个定量的评估。
1.用什么指标来评估(What to Measure)
精度(Effectiveness/Accuracy): 搜索结果的精度有多高?
-着眼于一个系统把相关文档排在无关文档前面的能力
效率(Efficiency):用户多久才能得到结果?为了完成询问,需要多少的计算资源?
-着眼于时间、空间复杂度
适用性(Usability):这个系统对于实际需求而言有帮助吗?
-进行用户调查

1.简单版VSM存在的问题
我们接着上一章的内容。在简化版的VSM下,有一些相似度相同的文档,但是我们可以看到其中有一些是应该“相关性更强”的,那么我们应该如何实现呢?

在这个例子中:

匹配了多次“presidential”的文档,应该得到更大的权重
匹配“presidential”比匹配“about”的重要性更高。
稍后我们就会讨论改进算法。

前言
这系列笔记是记录Coursera上伊利诺伊大学厄巴纳香槟分校翟成祥教授(Prof. Chengxiang Zhai)所开设课程“Text Retrieval and Search Engines”课程内容的。该课程没有直接给出文档版的讲义,所以笔记内容多数是自己结合课程视频与课前导学问题所写。由于水平有限,难免会有不准确的地方,诚挚欢迎大家指出,共同交流完善。

在之前的学习中我们知道,如果在算法的训练样本量m不足的时候得到的模型具有高方差(High Variance),那么此时我们需要更多的训练样本。但是如果算法具有高偏差,提高样本数量并不会显著改善模型的性能。

在今天,数据集很容易就可以达到m=100,000,000这样的数量级(比如人口调查、通讯消息等)。在这样的背景下,梯度下降算法每一步都需要汇总上亿个训练样本来完成一次迭代。那么我们能不能通过一些方法来分流如此大量的计算呢?

一、异常检测(Anomaly Detection)
1.导论(Problem Motivation)
和其他学习问题一样,已知一个数据集​​\( x^{(1)}, x^{(2)},\dots,x^{(m)} \)。

接下来我们又得到一个新的样本​\( x_{test} \)​,现在,我们想要知道这个样本是不是异常/坏点。

我们定义了一个“模型”(“model”) p(x)来告诉我们该样本是否异常。我们也使用了一个阈值ϵ作为评判样本是否异常的分界线。

一个常见的异常检测使用案例是诈骗检测:

​\( x^{(i)}= \)​用户活动的特征量
从数据而得的模型p(x)
通过p(x)<ϵ这一条件找出异常的用户 如果最后我们的异常检测算法标记出的异常样本太多了,那我们需要减小阈值ϵ,以此降低被划为异常样本的样本数。

算法概述
K-Means算法是时下最流行且应用广泛的自动聚类算法。它的实现流程基本如下:

随机设置两个初始点,称作聚类中心(cluster centroids)。
聚类分配:将每一个样本归入到离它最近的聚类中心所属的分类中。
移动中心:对于每一个聚类中心,计算它集合中所有的样本点的平均值,然后将该聚类中心移动到平均值的位置。
重复(2)和(3)直到实现聚类。

我们来回顾一下逻辑回归的代价函数:

\[ \begin{align*}J(\theta) & = \frac{1}{m}\sum_{i=1}^m -y^{(i)} \log(h_\theta(x^{(i)})) – (1 – y^{(i)})\log(1 – h_\theta(x^{(i)}))\\ & = \frac{1}{m}\sum_{i=1}^m -y^{(i)} \log\Big(\dfrac{1}{1 + e^{-\theta^Tx^{(i)}}}\Big) – (1 – y^{(i)})\log\Big(1 – \dfrac{1}{1 + e^{-\theta^Tx^{(i)}}}\Big)\end{align*} \]

​为了引入向量支持机,首先,我们将代价函数的第一项转化为​\( -\log(h_{\theta}(x)) = -\log\Big(\dfrac{1}{1 + e^{-\theta^Tx}}\Big) \)​,第二项转化为​\( -\log(1 – h_{\theta(x)}) = -\log\Big(1 – \dfrac{1}{1 + e^{-\theta^Tx}}\Big) \)​。这样,我们就得到了SVM的代价函数。

为了分析代价函数的趋势,得出其优化解,我们把这两项关于z即\( θ^Tx \)​的函数图像画出来,得到两条光滑的sigmoid函数曲线。进一步地,使用两段直线来尝试替代曲线,这被称作hinge loss 函数

Insert math as
Block
Inline
Additional settings
Formula color
Text color
#333333
Type math using LaTeX
Preview
\({}\)
Nothing to preview
Insert