实现高质量文本相似度计算的SimBlock算法及实现方法技术

技术编号:33285699 阅读:12 留言:0更新日期:2022-04-30 23:52
针对大数据文本排重场景,如:搜索引擎、资讯专题模块聚合,内容原创和内容剽窃的识别,以及重复灌水帖子、评论相关的内容治理等。本发明专利技术一个技术方案是提供了一种能实现相似度计算的SimBlock算法(相似分块矩阵算法),弥补了传统相似度算法“字符交集”和“字符串向量化余弦”丢失有序信息的缺陷,补充局域有序信息,提高相似度计算质量:给出的相似度打分对两个字符串的长度不敏感,还能判断逻辑包含关系,相似子字符串的位置和一一对应关系。本发明专利技术的另一个技术方案是提供了一种上述算法适用的分布式计算技术架构,将高并发计算压力分解到高并行度的算法微服务集群中,将高并发读写压力也分解到高速缓存集群中,使得多进程Source/Trans./Sink单体保持轻量级。Source/Trans./Sink单体保持轻量级。Source/Trans./Sink单体保持轻量级。

【技术实现步骤摘要】
实现高质量文本相似度计算的SimBlock算法及实现方法


[0001]本专利技术涉及一种实现高质量文本相似度计算的SimBlock算法(相似分块矩阵算法),能给出两个字符串之间的相似度打分,逻辑包含关系,相似子字符串的位置和一一对应关系。本专利技术还涉及一种技术方案,在大数据文本排重场景下应用该算法,设计的分布式计算技术架构。

技术介绍

[0002]相似度算法是搜索引擎一项基础服务。相似度算法将文本内容(浅层的字符层面、或者更深层次的语义层面)相同或者近似的搜索结果聚合成一组,作为一个搜索结果合并展示,不仅能节省内容版面,提高搜索性能,还节省用户时间和提高用户体验。相似度算法在文本排重、相关推荐、栏目分类、内容过滤、热点发现等场景中有着广泛应用。如图1所示。
[0003]本专利技术的目标是关注相似度算法在大数据文本排重场景下的应用,譬如:
[0004]1.资讯专题模块聚合;
[0005]2.内容原创和内容剽窃的识别;
[0006]3.灌水帖子和灌水评论的治理。
[0007]比较传统的相似度算法分为两类:字符交集模型和字符串向量化余弦模型,如图2所示,具体包括以下算法:
[0008]1、字符交集模型:将字符串打散成字符集合(或者分词集合),计算2个字符集合之间的交集比例大小得到相似度。存在以下问题:
[0009]a)该算法不适用于2个字符串均较长的情况,2个字符串越长,算法效果越差,因为字符有限,通用字符重合度比较高,但不代表相似。
[0010]b)该算法也不适用于2个字符串长短越悬殊的情况,2个字符串长短越悬殊,算法效果越差,因为大的字符集,容易包含小的字符集,但不代表相似。
[0011]2、词袋模型:将字符串打散成字符列表,然后在One

Hot基向量上赋予字符在字符串中出现频率值来实现字符串向量化,计算两个字符串向量之间的余弦夹角得到相似度。相比字符交集模型,即使词袋模型多考虑了频率维度,存在的问题也与字符交集模型相同。
[0012]3、主题向量模型:将字符串打散成分词列表,然后把每个分词映射成对应的主题向量,加总平均得到字符串的向量,计算向量之间的余弦夹角得到相似度,存在以下问题:
[0013]a)主题向量的基向量依赖专家特征,能表达语义和文档分类信息,但语义颗粒度较大,不够细,在相似度计算中效果质量差,因为同样讲一个主题,可以有不同的角度和表达方式。
[0014]4、Google

SimHash:将字符串打散成字符列表,然后将字符转换成Hash编码0101

向量,并将0换成

1,得到

1,1,

1,1

向量,即求和得到字符串的Google

SimHash向量,计算Google

SimHash向量之间的余弦夹角得到相似度,存在以下问题:
[0015]a)该算法等价于一系列噪音相加,噪音相加得到领域结果是小概率事件,除非两个字符串95%以上相同。该算法不适用于2个字符串长度不一致的情况,无法表达包含关
系。
[0016]b)该算法也不适用于2个字符串较短的情况,2个字符串越短,算法效果越差,因为字符串向量的径向长度太短,其领域无法很好定义。
[0017]对于两类传统的相似度算法而言:字符交集模型的优点是简单、落地快,在浅层的字符层面上准确。字符串向量化余弦模型的优点是可以度量更深层次的语义层面上相近,其中,Google

SimHash在搜索引擎中应用的最广泛。但字符交集模型在两个长文对比表现不佳,字符串向量化余弦模型在两个短文对比表现不佳,两类模型在两文长短悬殊时都表现不佳,还不能标记出相似子字符串的位置,并给出一一对应关系。
[0018]基于上述两类模型的讨论,传统的相似度算法表现不佳的根本原因是“无序集合”和“向量相加”计算,损失了序列“有序”的信息。序列本身包含顺序/位置信息,在变成集合和向量之后,顺序/位置信息损失了。
[0019]据最近的文献报道,Google的BERT模型可以有效包含位置信息,设计多层Multi

Head Attention深度学习的网络,并且依赖专用硬件GPU/TPU大量的预训练计算,不同网络层能代表不同的语义层面,把不同深度的语义向量化是其最大的优点,但也无法标记出相似子字符串,并给出一一对应关系。

技术实现思路

[0020]本专利技术的目的是:结合字符交集模型和字符串向量化余弦模型两者的优点,针对大数据文本排重场景,提出一个更直接、效果更好的相似度算法,称为“SimBlock算法”,或者“相似分块矩阵算法”。本专利技术的另一个目的是:为了“SimBlock算法”的落地实现,相应地提出一个分布式计算技术架构设计方案。
[0021]为了达到上述目的,本专利技术的一个技术方案是一种能实现高质量文本相似度计算的SimBlock算法,其特征在于,包括以下步骤:
[0022]步骤1、将待比较的字符串一及待比较的字符串二转化为每个字符向量的有序堆叠,从而获得与字符串一对应的矩阵以及与字符串二对应的矩阵表示为:
[0023][0024][0025]式中,表示字符串一中的第i个字符向量化之后得到的归一化向量;表示字符串二中的第j个字符向量化之后得到的归一化向量;
[0026]步骤2、与的余弦表示成如下广义形式:
[0027][0028]式中,为度规张量,为全1矩阵;:为双点积;表示字符串一与字符串二的相关系数矩阵,对于中第i行第j列元素有
[0029]步骤3、获得中元素非全0的区块,每一个区块对应一个分块矩阵,则每个分
块矩阵对应字符串一与字符串二中一个相似的子字符串;分块矩阵越大,则相似的子字符串越长;每个分块矩阵的第一个元素和最后一个元素分别对应一个相似的子字符串的开头和结尾,每个分块矩阵的第一个元素和最后一个元素在中的索引下标分别对应相似子字符串在矩阵与矩阵中的位置;
[0030]步骤4、初始化矩阵对矩阵进行s
×
s卷积操作(s为卷积核的大小,取值为大于或等于3的奇数正整数,即3、5、7、9、

)更新则有:
[0031][0032]式中,B
ij
表示中第i行第j列元素,A
kl
表示中第k行第l列元素;
[0033]步骤5、利用与的余弦来表示字符串一与字符串二的相似度,则有:
[0034]优选地,步骤4中,矩阵初始化为全0矩阵。
[0035]优选地,对步骤5中的余弦计算公式进行化简,则有:
[0036][0037]式中,n
b
表示第b个分块矩阵的大小,为第b个分块矩阵的行数或者列数的最大值;L
u
为字符串一的长度;L
v
为字符串二的长度。
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.实现高质量文本相似度计算的SimBlock算法,其特征在于,包括以下步骤:步骤1、将待比较的字符串一及待比较的字符串二转化为每个字符向量的有序堆叠,从而获得与字符串一对应的矩阵以及与字符串二对应的矩阵表示为:表示为:式中,表示字符串一中的第i个字符向量化之后得到的归一化向量;表示字符串二中的第j个字符向量化之后得到的归一化向量;步骤2、与的余弦表示成如下广义形式:式中,为度规张量,为全1矩阵;为双点积;表示字符串一与字符串二的相关系数矩阵,对于中第i行第j列元素有步骤3、获得中元素非全0的区块,每一个区块对应一个分块矩阵,则每个分块矩阵对应字符串一与字符串二中一个相似的子字符串;分块矩阵越大,则相似的子字符串越长;每个分块矩阵的第一个元素和最后一个元素分别对应一个相似的子字符串的开头和结尾,每个分块矩阵的第一个元素和最后一个元素在中的索引下标分别对应相似子字符串在矩阵与矩阵中的位置;步骤4、初始化矩阵对矩阵进行s
×
s卷积操作,s为卷积核的大小,取值为大于或等于3的奇正整数,更新则有:式中,B
ij
表示中第i行第j列元素,A
kl
表示中第k行第l列元素;步骤5、利用与的余弦来表示字符串一与字符串二的相似度,则有:2.如权利要求1所述的实现高质量文本相似度计算的SimBlock算法,其特征在于,步骤
4中,矩阵初始化为全0矩阵。3.如...

【专利技术属性】
技术研发人员:罗伟杰
申请(专利权)人:东方财富信息股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1