词袋模型

基于频次的词袋模型

优点:

简单易用,原理明晰;;

缺点:

没有考虑词序、词之间的联系以及文法, 丢失了许多重要信息。

TF-IDF

• TF表示某个词在某一文本中出现的频率。

• IDF为逆向文档频率,与某词在综合语料库中出现的频率相关。

TF-IDF可用于评估某一词对所在文本的重要程度,其在当前文本中

出现频次越多,而在其它文本中出现频次越少,可认为此词越是重 要。

考虑到文章有长短之分,所以对TF进行标准化,某个词在文章中出现的次数/文章的总次数

IDF:逆文档概率=log(语料库的文档总数/ 包含该词的文档数+1)

•优点:简单快速,易于理解

• 缺点:只用词频来衡量文章中的一个词的重要性不够全面,有时

候重要的词出现的可能并不多,而且这种计算无法体现位置信息,

无法体现词在上下文中的重要性。

句向量

词向量求平均

优点:计算简便

缺点:无法考虑到词汇重要程度的差异(简单的例子VS简

单例子);未考虑语序(人生如戏VS戏如人生)

加权平均

TFIDF作为单词权重

优点:考虑词汇不同的重要程度

SIF 加权平均

1) 对句子中的每个词向量,乘以一个权重 a/(a+p_w),其中 a 是一个常数(原文 取 0.0001),p_w 为该词的词频;对于出现频率越高的词,其权重越小;

2) 计算句向量矩阵的第一个主成分 u,让每个句向量减去它在 u (单位向量)上 的矢投影;

移除所有句子的共有信息, 因此保留下来的句子向量更能够表示本身并与其它 句子向量产生的差距。

幂均值(Power Mean)

对于由各词向量x组成的一个句子s,计算其P个幂均值。

x为词向量,其中n为句长,p也可以随意选择。P个幂均值向量进行简单

拼接便可作为整个句子的句向量。

Skip-Thought Vector

• 类似 Word2Vec语言模型的训练思想,Sentence Embedding 作为模型的副产品。

• 给定一个三元组 s_{i-1}, s_i, s_{i+1} 表示 3 个连续的句子。

• 模型使用 Encoder-Decoder 框架。

• 训练时,由 Encoder 对 s_i 进行编码,然后分别使用两个 Decoder 生成前一句 s_{i-1}和下一句 s_{i+1}。

Quick-Thought Vectors

• Quick-Thoughts模型是对Skip-Thoughts的优化,其主要优点在于训练速度的提升。Skip-Thoughts的结构实质上为生成模型,而且需要训练3个循环神经网络。Quick-Thoughts则将整个过程当作分类任务来处理。

• f,g分别为两个encoder。

• Scand包含一个上下文句子和许多非上下文句子。

• 目标函数是希望是上下文的句子对所对应的向量积越大越好,反之则越小越好。

• Quick-Thoughts训练完成之后,对于下游任务中的任一句子s,通过f(s)及g(s)计算得的向量拼接而得句向量。

文本相似度

WMD词移距离

通过寻找两个文本之间所有词之间最小距离之和的配对来度量文本的语义相似度。

EMD

image-20210121170506302.png

image-20210121170531503.png

优点

• 效果出色:充分利用了word2vec的领域迁移能力

• 无监督:不依赖标注数据,没有冷启动问题

• 模型简单:仅需要词向量的结果作为输入,没有任何超参数

• 可解释性:将问题转化成线性规划,有全局最优解

• 灵活性:可以人为干预词的重要性

缺点:

• 词袋模型,没有保留语序信息WMD认为『屡战屡败』和『屡败屡战』在语义上是完全一致的。

• 不能很好地处理词向量的OOV问题

由于词向量是离线训练的,应用于在线业务时会遇到OOV问题,用户query分出来的词,有可能找不到对应的词向量。

• 处理否定词能力偏差在训练好的词向量中,通常语义相反的词的词向量是比较相近的,这会导致语义相反的两个句子WMD距离很近。

BM25

相关性打分算法

评价搜索词和文档之间相关性算法,

它是一种基于概 率检索模型提出的算法:有一个query和一批文档Ds,现在要计算query和每篇文档D之间的相关性,先对query进行切分,得到单词qi,然后单词的分数由3部分组成:

  • 每个单词的权重
  • 相关性分数R:单词和D之间的相关性,最后对于每个单词的分数求和,得到query和文档之间的分数

每个单词的权重

N表示所有文档数目,n(qi)为包含了单词qi的文档数目。

n(qi)为包含qi的文档数,如果一个单词在超过半数的文档中出现,那么IDF为负数,对BM25的贡献是负的,所以当 IDF 为负数时,可将其置为 0,或者一个比较小的正数,或者改用一种平滑过渡到 0 的函数形式。

一个单词出现越多权重越小。

比较朴素的考虑可以用特征词的文档词频来简单表示 R(qi,d),但这种直观的想法不可避免导致长文本中,词的频度普遍较高,最终相关性得分会过度倾向于长文本,显然不尽合理;另一方面,不难想象到,某个词对文档的贡献不应该无限度地随词频增长而线性增加,当该词的词频高于某个程度就应该趋于饱和,而不应该让其得分贡献无限度增大,从而在整个得分求和式子中占支配地位。

k1用来控制公式对词项频率fi的敏感程度

b用来控制文档长度L对权值的惩罚程度

k1∈[1.2,2.0],b=0.75

使得文档词频增长对相关性得分增长成为非线性的

BM25 公式中的文本长度规范化项(Ld/LavgLd/Lavg)使得模型得分过于偏好长度较短的文档,解决这个问题,提出了BM25L,这种计算形式:

很多研究在理论上对 BM25 进行了建模,从“概率相关模型”(Probabilistic Relevance Model)入手,推导出 BM25 其实是对某一类概率相关模型的逼近,对此我还没有详尽研究,

End

本文标题:文本表示相关算法

本文链接:https://www.tzer.top/archives/261.html

除非另有说明,本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

声明:转载请注明文章来源。

最后修改:2021 年 11 月 28 日
如果觉得我的文章对你有用,请随意赞赏