发明内容
针对上述现有技术的不足,本发明提出了一种基于文本点击率的搜索结果推荐方法及系统,通过改进的深度匹配模型利用预训练思想以及结合一些手工特征去获取搜索内容query和搜索结果title之间的关联,旨在准确有效地把用户最想要关注的文章展示给用户,可以提高文章信息产品的点击率,同时具有一定的实现意义。
根据本发明的一个方面,提供一种基于文本点击率的搜索结果推荐方法,所述方法包括:
步骤110,对搜索内容query和搜索结果title进行预处理操作;
步骤120,对query和title构建特征工程;所述特征工程包括:词粒度的统计特征,文本语义特征,相似度特征,历史信息特征;
步骤130,利用改进的深度紧密递归交互注意力机制的网络DRCN构建基于残差递归自注意力和交互注意力机制的网络RRSCN的深度匹配模型,来进行特征提取;
步骤140,根据步骤130得到的RRSCN深度匹配模型,通过流式读取方法训练全量数据加上微调迁移学习的方式获取RRSCN的预训练模型;
步骤150,根据特征工程和RRSCN深度匹配模型构建三输入的全连接层网络;
步骤160,利用构建的全连接层网络预测文本预估点击率和相关性,给用户推荐最优可能点击的搜索结果。
根据本发明的另一个方面,提供一种基于文本点击率的搜索结果推荐系统,包括用于存储海量可搜索标题title的文本服务器,以及用于用户输入搜索问题query和显示最优搜索结果的用户搜索界面,所述系统还包括以下模块:
文本预处理模块S110,用于分别从用户搜索界面和文本服务器获取搜索问题query和搜索标题title,对搜索问题query和搜索标题title进行预处理操作;
特征工程构建模块S120,用于对query和title构建特征工程;所述特征工程包括:词粒度的统计特征,文本语义特征,相似度特征,历史信息特征;
特征提取模块S130,用于利用改进的深度紧密递归交互注意力机制的网络DRCN构建基于残差递归自注意力和交互注意力机制的网络RRSCN的深度匹配模型,来进行特征提取;
预训练模型构建模块S140,用于根据特征提取模块S130得到的RRSCN深度匹配模型,通过流式读取方法训练全量数据加上微调迁移学习的方式获取RRSCN的预训练模型;
全连接层网络模块S150,用于根据特征工程和RRSCN深度匹配模型构建三输入的全连接层网络;
搜索结果输出模块S160,利用构建的全连接层网络预测文本预估点击率和相关性,将向用户推荐最优可能点击的搜索结果输出到用户搜索界面。
本发明的有益效果在于,提出了一种基于文本点击率的搜索结果推荐方法及系统,采用了自定义加权公式用于词向量转化句向量过程中,采用了自定义权重公式用于对搜索结果title质量的评分,同时利用自注意力机制和交互注意力机制的结合,不仅关注了词语在关联语句中的联系,也突出了词语在自身语句中所占的重要程度,类似于突出语句中的关键词,通过堆叠注意力机制,可以更深层次地去挖掘词与词之间,句与句之间的联系,提高了搜索结果的点击率、转化率以及用户的搜索体验。
具体实施方式
下面对本发明具体的实施方式进行阐述,来进一步说明本发明的出发点以及相应的技术方案。
图1是本发明实施例提供的一种基于文本点击率的搜索结果推荐方法流程图,所述方法包括以下步骤:
步骤110,对搜索内容query和搜索结果title进行预处理操作,具体包括:
利用词语逆频率TF-IWF算法,对query提取2个关键词,对title提取3个关键词,并且根据TF-IWF权重值将query和title转化为稀疏向量,利用词向量word2vec将query和title转化为稠密向量。
步骤120,对query和title构建特征工程;所述特征工程为一个特征集合,包括:词粒度的统计特征,文本语义特征,相似度特征,历史信息特征。步骤120具体包括:
步骤121,计算词粒度的统计特征,用于描述搜索问题query和搜索标题title之间基于词的匹配信息,包含特征有:query or title长度、query长度-title长度、query是否完全包含title、query和title的公共词个数、query和title的公共词个数与query和title长度的占比、title出现的频次、query和title的最长连续公共子序列长度;
步骤122,计算文本语义特征,用于描述query和title之间语义上的联系,包含特征有:N-gram特征,query中第一、第二和第三个词语中的任两个是否相同,query中第一、第二和第三个词语在title中出现的位置,query首词或末词在title中的顺序以及出现位置;
获取query和title的共现语句s,计算与query和title语句的占比,得共现率特征:
其中len表示获取语句的长度;
步骤123,计算相似度特征,用于衡量query和title相似程度,包括:
步骤123a,通过词向量word2vec和快速文本分类器fasttext将文本进行词向量编码,通过以下公式给每个词赋予一个权重评价w:
其中m为文档总数,wi,j为词语i在第j篇文档中出现的次数,aj为第j篇文档词语的个数,itf表示为加强过后的tf,iidf表示加强过后的idf,itf和iidf为TFC算法,α为根据正负类别频率的平衡系数,ni为包含词语i的所有文档数,p(i1)为单词i在正例类别中的频率,p(i0)为单词i在反例类别中的频率;
步骤123b,利用权重值对query和title中的每个词进行加权求和得到query和title的句向量表示:
m是文中词语个数,vi为第i个词的词向量,sentence vec为计算得到的句向量;
步骤123c,对得到query和title的句向量进行余弦相似度、莱文斯坦levenshtein相似度、曼哈顿距离计算,把计算结果作为相似度特征。
步骤124,计算历史信息特征,用于根据历史数据去刻画title信息,包括:
步骤124a,根据步骤110得到的query和title的关键词提取query历史点击率、title历史点击率作为特征;
对于冷启动文本(即测试集中未在训练集中出现的样本),统计训练集title出现的次数count和点击次数click,click为0的填充为1,测试集中未出现的title的点击率设置为0.2;
步骤124b,计算title质量分数特征,一个query中用户点击的title和另一个query中用户点击的title,这两个title对于query的重要程度根据以下公式:
其中qt表示包含title的query,labelq表示该query的标签值,1为对当前query下的该title有点击,0为未点击,ctrq为该query的一个整体点击率,Scoretitle为一个title的最终得分,即是包含该title的所有query下该title的得分总和;
根据公式得到title对于不同query下的一个得分,然后title的最终得分是包含该title的所有query下该title得分的总和。
步骤130,利用改进的深度紧密递归交互注意力机制的网络DRCN构建基于残差递归自注意力和交互注意力机制的网络RRSCN的深度匹配模型,来进行特征提取。所述DRCN为深度紧密递归交互注意力机制的网络,RRSCN(Resnetly-connected Recurrent Self-attention and Co-attentive Information)为基于残差递归自注意力和交互注意力机制的网络。RRSCN是本发明基于DRCN改进的深度匹配模型。步骤130具体包括:
步骤131,设置query和title通过编码后的形式为:input
1={x
1,x
2,…,x
m},input
2={x
1,x
2,…,x
n};利用残差思路堆叠注意力机制来提取query和title的特征,先利用自注意力机制分别得到query和title与自身关联的表征,query中的x
i与每个词x的匹配关系q
i={w
1,w
2,...,w
m},通过加权求和得到自注意力机制编码后的词语表征为
句子编码input
11={x′
1,x′
2,...,x′
m},同理得到title的句子编码input
22;
步骤132,然利用交互注意力机制得到query和title之间的相互关联的表征,query中的x
i与title中每个词x的匹配关系q′
i={w
1,w
2,...,w
m},通过加权求和得到自注意力机制编码后的词语表征为
句子编码input
12={x″
1,x″
2,...,x″
m},同理得到title的句子编码input
21;
步骤133,分别结合query和title的输入和attention输出作为注意力机制块的输出:a_query=input1+input11+input12,a_title=input1+input11+input12,堆叠6层。
步骤140,根据步骤130得到的RRSCN深度匹配模型,通过流式读取方法训练全量数据加上微调迁移学习的方式获取RRSCN的预训练模型。步骤140具体包括:
通过文件流处理数据和分批次训练,读取10%数据进行训练,保存当前批次的训练权重参数,再读取下10%部分数据进行训练,下一部分的参数在上次训练保存的权重参数基础上进行增量训练,直至所有数据都训练完成,保存最终的权重参数。
步骤150,根据特征工程和RRSCN深度匹配模型构建三输入的全连接层网络。
首先根据步骤120得到模型特征,然后加载根据步骤140得到的预训练模型,从中获取倒数第二层的特征图feature map用于作为query和title利用深度匹配模型RRSCN提取到的特征,将query特征、title特征和通过步骤120得到的统计特征进行拼接,最后送入全连接层,用一部分数据微调整个网络。
步骤160,利用构建的全连接层网络预测文本预估点击率和相关性,给用户推荐最优可能点击的搜索结果。
图2是本发明实施例提供的一种基于文本点击率的搜索结果推荐方法的RRSCN深度匹配模型网络结构图,所述结构图流程包括以下步骤:
1、首先将搜索内容query和搜索结构分别通过词嵌入层进行编码;2、然后分别经过自注意力机制,和共同经过交互注意力机制;3、分别将query和title各自的自注意力机制和交互注意力机制的编码相加,得到注意力层的输出;4、将第3步的输出和第1步的输出相加并通过层归一化(LayerNormaliazation)得到残差块的输出;5、将残差块的输出循环进行第2步到第4步的操作,经过6次(其中N表示残差块的个数)。6、将最终残差块输出经过池化层和交互层,通过全连接层得到预测结果。
图3是本发明实施例提供的一种基于文本点击率的搜索结果推荐方法三输入微调全连接网络结构图,所述结构图流程包括以下步骤:
1、根据步骤140得到的预训练模型获取RRSCN深度匹配网络预训练模型的倒数第二层,即为query和title进行RRSCN编码后的query池化层和title池化层;2、加入步骤120得到的模型手工特征;3、通过交互层(其中q表示query池化层输出,t表示title池化的输出,s表示手工特征,q:s:t表示向量拼接操作,q+t表示向量对位相加操作,q-t表示向量对位相减操作);4、最后经过全连接层,预测输出结果。
图4是本发明实施例提供的一种基于文本点击率的搜索结果推荐系统,包括用于存储海量可搜索标题title的文本服务器,以及用于用户输入搜索问题query和显示最优搜索结果的用户搜索界面,所述系统还包括以下模块:
文本预处理模块S110,用于分别从用户搜索界面和文本服务器获取搜索问题query和搜索标题title,对搜索问题query和搜索标题title进行预处理操作;
特征工程构建模块S120,用于对query和title构建特征工程;所述特征工程包括:词粒度的统计特征,文本语义特征,相似度特征,历史信息特征;
特征提取模块S130,用于利用改进的深度紧密递归交互注意力机制的网络DRCN构建基于残差递归自注意力和交互注意力机制的网络RRSCN的深度匹配模型,来进行特征提取;
预训练模型构建模块S140,用于根据特征提取模块S130得到的RRSCN深度匹配模型,通过流式读取方法训练全量数据加上微调迁移学习的方式获取RRSCN的预训练模型;
全连接层网络模块S150,用于根据特征工程和RRSCN深度匹配模型构建三输入的全连接层网络;
搜索结果输出模块S160,利用构建的全连接层网络预测文本预估点击率和相关性,将向用户推荐最优可能点击的搜索结果输出到用户搜索界面。
优选的,特征工程构建模块S120具体包括:
词粒度的统计特征模块S121,用于计算描述搜索内容query和搜索结果title之间基于词的匹配信息,包含特征有:query或title长度、query长度-title长度、query是否完全包含title、query和title的公共词个数、query和title的公共词个数与query和title长度的占比、title出现的频次、query和title的最长连续公共子序列长度;
文本语义特征模块S122,用于计算描述query和title之间语义上的联系,包含特征有:N-gram特征,query中第一、第二和第三个词语中的任两个是否相同,query中第一、第二和第三个词语在title中出现的位置,query首词或末词在title中的顺序以及出现位置;
获取query和title的共现语句s,计算与query和title语句的占比,得共现率特征:
其中len表示获取语句的长度;
相似度特征模块S123,用于计算衡量query和title的相似程度,具体用于:
步骤S123a,通过词向量word2vec和快速文本分类器fasttext将文本进行词向量编码,通过以下公式给每个词赋予一个权重评价w:
其中m为文档总数,wi,j为词语i在第j篇文档中出现的次数,aj为第j篇文档词语的个数,itf表示为加强过后的tf,iidf表示加强过后的idf,itf和iidf为TFC算法,α为根据正负类别频率的平衡系数,ni为包含词语i的所有文档数,p(i1)为单词i在正例类别中的频率,p(i0)为单词i在反例类别中的频率;
步骤S123b,利用权重值对query和title中的每个词进行加权求和得到query和title的句向量表示:
m是文中词语个数,vi为第i个词的词向量,sentence vec为计算得到的句向量;
步骤S123c,对得到query和title的句向量进行余弦相似度、莱文斯坦levenshtein相似度、曼哈顿距离计算,把计算结果作为相似度特征。
历史信息特征模块S124,用于根据历史数据去刻画title信息,具体用于:
步骤S124a,根据步骤110得到的query和title的关键词提取query历史点击率、title历史点击率作为特征;
对于冷启动文本(即测试集中未在训练集中出现的样本),统计训练集title出现的次数count和点击次数click,click为0的填充为1,测试集中未出现的title的点击率设置为0.2;
步骤S124b,计算title质量分数特征,一个query中用户点击的title和另一个query中用户点击的title,这两个title对于query的重要程度根据以下公式:
其中qt表示包含title的query,labelq表示该query的标签值,1为对当前query下的该title有点击,0为未点击,ctrq为该query的一个整体点击率,Scoretitle为一个title的最终得分,即是包含该title的所有query下该title的得分总和;
根据公式得到title对于不同query下的一个得分,然后title的最终得分是包含该title的所有query下该title得分的总和。
优选的,特征提取模块S130具体用于:
步骤S131,query和title通过编码后的形式为:input
1={x
1,x
2,...,x
m},input
2={x
1,x
2,…,x
n};利用残差思路堆叠注意力机制来提取query和title的特征,先利用自注意力机制分别得到query和title与自身关联的表征,query中的x
i与每个词x的匹配关系q
i={w
1,w
2,...,w
m},通过加权求和得到自注意力机制编码后的词语表征为
句子编码input
11={x′
1,x′
2,...,x′
m},同理得到title的句子编码input
22,
步骤S132,然利用交互注意力机制得到query和title之间的相互关联的表征,query中的x
i与title中每个词x的匹配关系q′
i={w
1,w
2,...,w
m},通过加权求和得到自注意力机制编码后的词语表征为
句子编码input
12={x″
1,x″
2,...,x″
m},同理得到title的句子编码input
21;
步骤S133,分别结合query和title的输入和attention输出作为注意力机制块的输出:a_query=input1+input11+input12,a_title=input1+input11+input12,堆叠6层。
优选的,全连接层网络模块S150具体用于:
首先根据特征工程构建模块S120得到模型特征,然后加载根据预训练模型构建模块S140得到的预训练模型,从中获取倒数第二层的特征图feature map用于作为query和title利用深度匹配模型RRSCN提取到的特征,将query特征、title特征和通过特征工程构建模块S120得到的统计特征进行拼接,最后送入全连接层,用一部分数据微调整个网络。
以上的所述乃是本发明的具体实施例及所运用的技术原理,若依本发明的构想所作的改变,其所产生的功能作用仍未超出说明书及附图所涵盖的精神时,仍应属本发明的保护范围。