Dropout in Deep Network

在机器学习任务中一提到过拟合,L1L2正则项绝对是两大利器,但是在深度神经网络中,Hiton老爷子在2014年提出了一种称为Dropout的方法来避免过拟合,方式对比L1L2更为灵活也是非常高效。

深度神经网络中,在不限制计算的条件下,最佳的正则化方式就是将所有可能组合成的模型进行平均输出,就类似stack的模型融合一样,但是这种方式存在两大问题:

  1. 在计算时需要将训练文件进行相应的分离,因为神经网络的训练本身就是需要极多的数据,这么一分离可能会导致数据不够的情况
  2. 深度神经网络中的计算量本身就很大,计算多个之后其耗时将会更多

Dropout却可以完美的解决上述两个缺陷,他的思想很简单:

Read More

RNN的缺点

RNN的特点毋庸置疑就是在训练/预测当前层节点时可以拿到先前层的数据来进行辅助计算,因此对于序列的学习非常有效。但事实上这个利用前面全部的信息并不是非常有效。比如看下面两个language mdoel:

the clouds are in the sky

这里要预测的sky只需要依赖前前面几个term即可

再看看另一个句子:

I grew up in France… I speak fluent French.

这里在预测French的时候需要前面较长的信息,甚至已经跨到前面一句话了。
因此是可以看出就算在Language Model中不同样本下可能是需要不同的长度的历史信息的,而对于RNN而言他并不能控制历史信息的长度.

Read More

RNN是啥?

当需要处理一些输入或者输出有相互依赖的任务时,传统的神经网络已经不再适用,比如在Language Model中在给定几个单词的情况下来预测下面将会出什么单词的时候。
这时候RNN就有用武之地了,RNN在预测/训练当前节点的时候可以获取前面节点的记忆(memory)信息,这样就可以很自然的完成序列任务的学习了。
一图胜千言,经典的RNN结构是长这样纸的:

Read More

DSSM这篇paper发表在cikm2013,短小但是精炼,值得记录一下
ps:后来跟了几篇dssm的paper,一并记录在这里

DSSM

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