CN114943034A - 基于细粒度方面特征的智能新闻推荐方法和系统 - Google Patents
基于细粒度方面特征的智能新闻推荐方法和系统 Download PDFInfo
- Publication number
- CN114943034A CN114943034A CN202210619313.XA CN202210619313A CN114943034A CN 114943034 A CN114943034 A CN 114943034A CN 202210619313 A CN202210619313 A CN 202210619313A CN 114943034 A CN114943034 A CN 114943034A
- Authority
- CN
- China
- Prior art keywords
- news
- vector
- attention
- user
- fine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Probability & Statistics with Applications (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于细粒度方面特征的智能新闻推荐方法和系统,属于人工智能领域和自然语言处理领域。本发明要解决的技术问题为基于主题的新闻推荐方法无法准确识别细粒度方面Aspect‑level特征,从而导致推荐结果不准确和缺少多样性的问题,采用的技术方案为:该方法具体如下:S1、构建新闻推荐模型的训练数据集;S2:构建基于细粒度方面特征的新闻推荐模型:具体如下:S201、构建Aspect‑level新闻编码器;S202、构建Aspect‑level用户编码器;S203、构建点击率预测器;S3、训练基于细粒度方面特征的新闻推荐模型。该系统包括训练数据集生成单元、基于细粒度方面特征的新闻推荐模型构建单元和模型训练单元。
Description
技术领域
本发明涉及人工智能和自然语言处理领域,具体涉及一种基于细粒度方面特征的智能新闻推荐方法和系统。
背景技术
随着互联网技术的快速发展,越来越多的用户喜欢通过搜狐、新浪和今日头条等在线新闻平台阅读新闻。尽管这些平台尝试为用户提供个性化的新闻推荐服务,但它们仍然不可避免地受到推荐结果不准确和内容缺乏多样性等问题的困扰。这些问题会影响用户的阅读体验。解决上述问题的关键是对新闻文本和用户兴趣进行精准地建模,即准确地捕捉新闻文本特征和用户兴趣特征。
目前,现有的新闻推荐方法多数是面向主题(Topic-level)级别的特征信息,而没有考虑细粒度方面(Aspect-level)级别的特征信息。现有的新闻推荐方法通常依照新闻主题(Topic)分类信息建立主题级别的新闻文本特征和用户兴趣表示,进而执行主题级别的推荐任务。尽管这些方法在新闻推荐任务中一定程度地提升了推荐结果的准确度,但是它们都忽略了新闻中细粒度方面级别的特征信息;仅在主题级别上对新闻文本和用户兴趣建模,往往无法准确地捕捉新闻文本特征和用户兴趣特征,这不可避免地会影响到新闻推荐结果的准确性和内容的多样性。
发明内容
本发明的技术任务是提供一种基于细粒度方面特征的智能新闻推荐方法和系统,来解决新闻推荐系统中推荐结果不准确和内容缺乏多样性的问题。
基于细粒度方面特征的智能新闻推荐方法和系统具有以下优点:
(一)本发明提出了基于细粒度方面特征的智能新闻推荐方法,使用了新闻内容潜在的方面级别的(Aspect-level)信息,相比于现有方法的基于主题级别信息的特征表示,能够从细粒度的方面级别上增强新闻和用户的特征表示,进而提升新闻推荐的准确性,增加新闻推荐内容的多样性。
(二)本发明通过Aspect-level新闻编码器,可以对新闻的嵌入表示进行特征抽取,并建立基于细粒度方面特征的新闻表示,从而得到更准确的新闻表示。
(三)本发明通过Aspect-level用户编码器,可以对用户浏览记录中的新闻嵌入表示进行特征抽取,并建立基于细粒度方面特征的用户表示,从而得到更准确的用户表示。
(四)本发明通过点击率预测器,可以根据准确的新闻表示和用户表示,准确地输出候选新闻序列的预测分数。
作为优选,Aspect-level新闻编码器的构建过程如下:
Aspect-level新闻编码器,具体的,包括构建新闻特征提取器、构建Aspect-level特征提取器;
构建新闻特征提取器,包括四个模块:标题学习模块、摘要学习模块、分类学习模块和注意力模块,具体如下:
构建标题学习模块:针对数据集中每一个单词构建单词映射表,并将表中每一个单词映射成唯一的数字标识,映射规则为:以数字1为起始,随后按照每个单词被录入单词映射表的顺序依次递增排序,从而形成单词映射转换表;使用Glove预训练语言模型,得到每个单词的词向量表示;在嵌入层将每一个新闻标题T=[w1,w2,...,wN]转换成向量表示,记为E=[e1,e2,...,eN],其中,N表示一个新闻标题的长度,eN表示每个单词的向量表示。
针对E=[e1,e2,...,eN]使用卷积神经网络CNN进行特征提取,得到上下文特征向量[c1,c2,...,cN],公式如下:
ci=ReLU(Qw×e(i-k):(i+k)+bw);
其中,i表示相应词向量在新闻标题中的相对位置,k表示距离i相对位置的差值,e(i-k):(i+k)表示聚合了(i-k)到(i+k)位置的词向量,Qw表示CNN过滤器的卷积核,bw表示偏置,ReLU为一种激活函数,运算符×为矩阵乘法。
对上下文特征向量[c1,c2,...,cN],使用注意力机制进一步提取关键特征,得到最终的新闻标题向量rt,公式如下:
ai=qT tanh(V×ci+v);
其中,q是由上下文特征向量得到的注意力查询向量,V和v是从训练过程中学到的参数,tanh为一种激活函数,运算符×为矩阵乘法,exp为对数函数运算,ai是第i个单词的注意力分值,αi是第i个单词的注意力权重,N是上下文特征向量[c1,c2,...,cN]的长度。
构建摘要学习模块:具体步骤同构建标题学习模块,得到摘要向量ra。
构建分类学习模块:在嵌入层通过词向量方法将主类别标签和子类别标签分别映射到低维空间向量得到每个类别标签的词向量表示ec和esc,然后使用激活函数ReLU生成类别标签的最终向量rc和rsc,公式如下:
rc=ReLU(Vc×ec+vc);
rsc=ReLU(Vsc×esc+vsc);
其中,ReLU是一种激活函数,Vc,Vsc,vsc和vc是从训练过程中学到的参数,运算符×为矩阵乘法。
构建注意力模块:针对标题、摘要、主类别标签和子类别标签的向量rt、ra、rc和rsc,使用激活函数tanh分别计算各自的注意力分数,即at、aa、ac、asc,然后进一步通过注意力机制分别得到各自的注意力权重,公式如下:
其中,Vt、Va、Vc、Vsc、vt、va、vc、vsc为计算标题注意力分数at、摘要注意力分数aa、主类别标签注意力分数ac和子类别标签注意力分数asc的参数,是由标题向量rt生成的注意力查询向量,是由摘要向量ra生成的注意力查询向量,是由主类别标签向量rc生成的注意力查询向量,是由子类别标签向量rsc生成的注意力查询向量,tanh为一种激活函数,运算符×为矩阵乘法,exp为对数函数运算,αt是标题的注意力权重,αa是摘要的注意力权重,αc是主类别标签的注意力权重,αsc是子类别标签的注意力权重。
最终的新闻特征向量r由标题向量rt、摘要向量ra、主类别标签向量rc和子类别标签向量rsc以及各自的注意力权重决定,公式如下:
r=[αtrt;αara;αcrc;αscrsc];
其中,符号;表示联接操作。
构建Aspect-level特征提取器:
在嵌入层,针对每一条新闻的词向量表示,通过计算加权平均值的方式得到其全局词向量表示,然后使用单词级别的注意力机制重新构建新闻向量,得到基于注意力的新闻向量表示zd。公式如下:
其中,ei是每一条新闻中每个单词所对应的词向量表示,y是全局词向量表示,N是一条新闻向量的长度,hi是注意力权重,H是y和新闻词向量ei之间的映射矩阵,exp为对数函数运算,α′i是注意力权重,zd是基于注意力的新闻向量表示,运算符为向量内积运算,即两个向量对应位置上的值相乘再相加的操作。
针对所有新闻的词向量,使用特征聚类算法——K-means得到细粒度方面特征矩阵A,然后通过矩阵乘法重构基于注意力的新闻向量表示zd,得到基于细粒度方面特征的新闻向量rd。公式如下:
p=softmax(Wp·zd+b);
rd=AT·p;
其中,Wp是权重矩阵参数,b是偏置向量,p是由zd经过归一化操作softmax函数计算得到的细粒度方面特征权重向量,rd是基于细粒度方面特征的新闻向量,操作符为向量内积运算,即两个向量对应位置上的值相乘再相加的操作。
最后,通过联接新闻特征向量r和基于细粒度方面特征的新闻向量rd得到Aspect-level新闻向量表示n,公式如下:
n=[r;rd]。
更优地,所述Aspect-level用户编码器的构建过程具体如下:
构建Aspect-level用户编码器,具体的,包括新闻特征提取器、Aspect-level特征提取器和用户兴趣提取器;其中,新闻特征提取器和Aspect-level特征提取器的过程与上述相同,在此不再赘述。
构建用户兴趣提取器:针对用户浏览记录,通过新闻特征提取器得到新闻特征向量k;再使用Aspect-level特征提取器构建基于细粒度方面特征的新闻向量kd;最后将k和kd联接作为最终的用户浏览记录表示n′。公式如下:
n′=[k;kd];
针对用户浏览记录表示n′,使用句子级别的注意力机制得到Aspect-level用户向量表示u。公式如下:
其中,qn是由用户浏览记录表示n′生成的注意力查询向量,Vn和vn是从训练过程中学到的参数,tanh为一种激活函数,是第i个新闻的注意力分数,是每条用户浏览记录中第i个新闻的注意力权重,M是用户浏览记录的长度。
更优地,所述点击率预测器的构建过程具体如下:
对于每一条候选新闻,将Aspect-level新闻向量表示和Aspect-level用户向量表示经过向量内积计算得到最后的点击率分数。公式如下:
y=nT·u;
本方法模型尚未进行充分训练时,需要在训练数据集上进行训练,以优化模型参数;当模型训练完毕时,点击率预测器可预测每一条候选新闻的推荐得分,根据得分,推荐合适的新闻给用户。
更优地,所述训练数据集的构建过程具体如下:
构建新闻数据集或者选择已公开的新闻数据集;
预处理新闻数据集:预处理新闻数据集中的每一条新闻文本,去除新闻数据集中的停用词及特殊字符;分别抽取每一条新闻文本的标题、主类别、子类别和摘要信息;
构建训练正例:使用用户浏览记录中的历史新闻序列和交互行为序列中标签为1的新闻编号,即被用户点击的新闻的编号,构建训练正例;
构建训练负例:使用用户浏览记录中的历史新闻序列和交互行为序列中标签为0的新闻编号,即未被用户点击的新闻的编号,构建训练负例;
构建训练数据集:将全部的正例数据和负例数据进行组合,并打乱其顺序,构建最终的训练数据集;
所述的新闻推荐模型构建完成后通过训练数据集进行新闻推荐模型的训练与优化,具体如下:
采用负采样技术,将一个用户的已点击的新闻定义为正样例,没有点击过的新闻定义为负样例,计算正样例的点击预测值pi。公式如下:
新闻推荐的损失函数为所有正样例的负对数似然函数,公式如下:
同时,为确保模型获取的Aspect特征的质量,设计了针对Aspect-level特征提取器的损失函数,公式如下:
其中,G是负样例的个数,是训练数据集,rd和zd是由Aspect特征提取器生成的特征向量,nj是第j个负样例的向量表示,An是细粒度方面特征矩阵A的每一行被规范化为长度1后的矩阵,I是单位矩阵,λ是控制正则项权重的参数。
将新闻推荐方法的损失函数U(θ)和Aspect-level特征提取器的损失函数J(θ)相加得到整个模型的损失函数,公式如下:
L=U(θ)+J(θ)。
优化训练模型:选择使用Adam优化函数作为本模型的优化函数,其中,学习率设置为0.001,平滑常数设置为(0.9,0.999),eps设置为1e-8,L2惩罚值设置为0。
一种基于细粒度方面特征的智能新闻推荐系统,该系统包括,
训练数据集生成单元,首先在线上新闻网站获得用户的浏览记录信息,随后对其进行预处理操作,从而得到符合训练要求的用户浏览记录及其新闻文本内容;训练数据集生成单元包括,
原始数据获取单元,负责下载网络上已经公开的新闻网站数据集,将其作为构建训练数据集的原始数据;
原始数据预处理单元,负责预处理新闻数据集中的每一条新闻文本,去除新闻数据集中的停用词及特殊字符;分别抽取每一条新闻文本的关键信息,如标题、类别、摘要;从而构建训练数据集;
基于细粒度方面特征的新闻推荐模型构建单元,用于载入训练数据集、构建Aspect-level新闻编码模块、构建Aspect-level用户编码模块以及构建候选新闻预测模块,基于细粒度方面特征的新闻推荐模型构建单元包括,
训练数据集载入单元,负责加载训练数据集;
Aspect-level新闻编码模块构建单元,负责在训练数据集中训练基于Glove词向量模型的新闻向量,并定义所有的新闻向量表示;首先使用卷积神经网络和注意力机制分别编码新闻标题和摘要,得到新闻标题和摘要向量;同时使用全连接层分别编码新闻主类别和子类别,得到新闻主类别和子类别向量;再将新闻标题、摘要、主类别和子类别向量进行联接并输入到注意力机制中,得到最终的新闻向量;同时,使用嵌入层处理新闻向量,得到嵌入层的新闻向量;再使用K-means算法对嵌入层的新闻向量聚类处理,得到细粒度方面特征矩阵;同时通过注意力机制得到基于注意力的新闻向量,最后通过矩阵乘法操作处理细粒度方面特征矩阵和基于注意力的新闻向量,得到最终的基于细粒度方面特征的新闻向量;将最终的新闻向量和最终的基于细粒度方面特征的新闻向量联接,得到Aspect-level新闻向量;
Aspect-level用户编码模块构建单元,负责根据用户浏览记录构建基于细粒度方面特征的用户向量;其中,用户浏览记录的新闻向量由Aspect-level新闻编码模块构建单元得到,再通过一层注意力网络得到Aspect-level用户向量;
候选新闻预测模块构建单元,负责,将Aspect-level新闻向量和Aspect-level用户向量作为输入,通过向量内积运算生成每个候选新闻的得分即点击率,然后将所有候选新闻依据点击率大小由高到低进行排序,将Top-K条新闻推荐给用户;
模型训练单元,用于构建模型训练过程中所需要的损失函数,并完成模型的优化训练;模型训练单元包括,
损失函数构建单元,负责计算预测的候选新闻与真实的目标新闻之间的误差;
模型优化单元,负责训练并调整模型训练中的参数,减小预测误差。
一种存储介质,其中存储有多条指令,其特征在于,所述指令由处理器加载,执行上述的基于细粒度方面特征的智能新闻推荐方法的步骤。
本发明的基于细粒度方面特征的智能新闻推荐方法和系统具有以下优点:
(一)本发明提出了基于细粒度方面特征的智能新闻推荐方法,使用了新闻内容潜在的方面级别的(Aspect-level)信息,相比于现有方法的基于主题级别信息的特征表示,能够从细粒度的方面级别上增强新闻和用户的特征表示,进而提升新闻推荐的准确性,增加新闻推荐内容的多样性。
(二)本发明通过Aspect-level新闻编码器,可以对新闻的嵌入表示进行特征抽取,并建立基于细粒度方面特征的新闻表示,从而得到更准确的新闻表示。
(三)本发明通过Aspect-level用户编码器,可以对用户浏览记录中的新闻嵌入表示进行特征抽取,并建立基于细粒度方面特征的用户表示,从而得到更准确的用户表示。
(四)本发明通过点击率预测器,可以根据准确的新闻表示和用户表示,准确地输出候选新闻序列的预测分数。
附图说明
下面结合附图对本发明进一步说明。
图1为基于细粒度方面特征的智能新闻推荐方法的流程图;
图2为构建新闻推荐模型的训练数据集的流程图;
图3为构建基于细粒度方面特征的新闻推荐模型的流程图;
图4为训练基于细粒度方面特征的新闻推荐模型的流程图;
图5为基于细粒度方面特征的新闻推荐模型的示意图;
图6为新闻特征提取器的示意图;
图7为细粒度方面特征提取器的示意图;
图8为基于细粒度方面特征的智能新闻推荐系统的结构框图。
具体实施方式
参照说明书附图和具体实施例对本发明的基于细粒度方面特征的智能新闻推荐方法和系统作以下详细地说明。
实施例1:
本发明的总体模型框架如图5所示。由图5可知,本发明的主要框架结构包含Aspect-level新闻编码器、Aspect-level用户编码器、点击率预测器。其中,Aspect-level新闻编码器包含新闻特征提取器和Aspect-level特征提取器;新闻特征提取器负责生成新闻向量,如图6所示,首先使用嵌入层、卷积和注意力机制分别编码新闻标题和摘要,得到新闻标题和摘要向量;同时使用嵌入层和全连接层分别编码新闻主类别和子类别,得到新闻主类别和子类别向量;再将新闻标题、摘要、主类别和子类别向量同时输入到注意力机制中,得到最终的新闻向量;Aspect-level特征提取器负责提取新闻的细粒度方面特征,如图7所示,首先使用嵌入层处理新闻词向量,得到嵌入层的新闻向量;再使用K-means算法对新闻向量聚类处理,得到细粒度方面特征矩阵;同时通过注意力机制得到基于注意力的新闻向量,最后通过矩阵乘法操作处理细粒度方面特征矩阵和基于注意力的新闻向量,得到最终的基于细粒度方面特征的新闻向量;将最终的新闻向量和最终的基于细粒度方面特征的新闻向量联接,得到Aspect-level新闻向量表示。Aspect-level用户编码器包含新闻特征提取器、Aspect-level特征提取器和用户兴趣提取器;其中,新闻特征提取器和Aspect-level特征提取器同Aspect-level新闻编码器;用户兴趣提取器包括一层注意力网络,通过该网络可得到Aspect-level用户向量表示。点击率预测器,将Aspect-level新闻向量表示和Aspect-level用户向量表示作为输入,通过向量内积运算生成每个候选新闻的得分即点击率,然后将所有候选新闻依据点击率大小由高到低进行排序,将Top-K条新闻推荐给用户。以上所述为本模型发明的结构简介。
实施例2:
如附图1所示,基于细粒度方面特征的智能新闻推荐方法,该方法具体如下:
S1、构建新闻推荐模型的训练数据集:新闻数据集包含两部分数据文件:用户浏览记录和新闻文本内容;其中,用户浏览记录包含用户编号、时间、历史新闻序列、交互行为序列;新闻文本内容包含新闻编号、主类别、子类别、标题、摘要、实体;选取每个用户的编号和交互行为序列构建训练数据集的用户行为数据,选取新闻文本内容的标题、主类别、子类别、摘要构建训练数据集的新闻文本数据;其中,用户行为数据将用于用户特征提取,新闻文本数据将用于新闻特征提取;构建新闻推荐模型的训练数据集的方法具体如下:
S101、下载新闻推荐系统数据集。
举例:下载网络上Microsoft已经公开的MIND新闻数据集,将其作为新闻推荐的原始数据。MIND是目前最大的英文新闻推荐系统数据集,包含20万个类别的1,000,000用户和161,013条新闻,分为训练集、验证集和测试集。MIND数据集同时提供了新闻文本内容的详细信息。每个新闻都有新闻编号、链接、标题、摘要、类别和实体:
另外,MIND数据集也提供了用户浏览记录,每条记录都包含用户编号、时间、历史新闻序列、交互行为序列:
其中,用户编号表示每一个用户在新闻平台唯一的编号;时间表示用户点击浏览一系列新闻的开始时间;历史新闻序列表示用户浏览过的一系列新闻编号的序列;交互行为序列表示用户在系统推荐的一系列新闻上的实际交互行为,1表示点击,0表示未点击。
S102、预处理新闻数据集:预处理新闻数据集中的每一条新闻文本,去除新闻数据集中的停用词及特殊字符;分别抽取每一条新闻文本的标题、类别、子类别和摘要信息。
S103、构建训练正例:使用用户浏览记录中的历史新闻序列和交互行为序列中标签为1的新闻编号,即被用户点击的新闻的编号,构建训练正例。
举例:对步骤S101中展示的新闻实例,构建的正例数据形式化为:(N29038,N15201,N8018,N32012,N30859,N26552,N25930)。其中最后一个编号为被用户点击的新闻的编号。
S104、构建训练负例:使用用户浏览记录中的历史新闻序列和交互行为序列中标签为0的新闻编号,即未被用户点击的新闻的编号,构建训练负例。
举例:对步骤S101中展示的新闻实例,构建的负例数据形式化为:(N29038,N15201,N8018,N32012,N30859,N26552,N17825)。其中最后一个编号为未被用户点击的新闻的编号。
S105、构建训练数据集:将经过步骤S103和步骤S104操作后所获得的全部的正例数据和负例数据进行组合,并打乱其顺序,构建最终的训练数据集。
S2、构建基于细粒度方面特征的新闻推荐模型:如附图3所示,基于细粒度方面特征的新闻推荐模型由三部分组成,即Aspect-level新闻编码器、Aspect-level用户编码器、点击率预测器;其中,Aspect-level意指细粒度方面特征;首先构建Aspect-level新闻编码器,对新闻中的每一个单词进行向量映射,得到新闻的向量表示,然后通过卷积神经网络和注意力机制得到新闻向量;同时,使用K-means算法和注意力机制处理新闻词向量,从而得到基于细粒度方面特征的新闻向量;最后,将新闻向量和基于细粒度方面特征的新闻向量联接,得到Aspect-level新闻向量;再构建Aspect-level用户编码器,对用户浏览记录中的每一条新闻中的每一个单词依次进行向量映射,得到用户的向量表示,然后通过Aspect-level新闻编码器和注意力机制得到Aspect-level用户向量;最后,构建点击率预测器,根据Aspect-level新闻向量和Aspect-level用户向量,通过向量内积计算每一篇候选新闻的点击率;将所有候选新闻依据点击率由高到低进行排序,将Top-K条新闻推荐给用户。如附图5所示,具体如下:
S201、构建Aspect-level新闻编码器,具体的,包括构建新闻特征提取器、构建Aspect-level特征提取器;
S20101、构建新闻特征提取器,如附图6所示,包括四个模块:标题学习模块、摘要学习模块、分类学习模块和注意力模块,具体如下:
S2010101、构建标题学习模块,具体如下:
S201010101、针对数据集中每一个单词构建单词映射表,并将表中每一个单词映射成唯一的数字标识,映射规则为:以数字1为起始,随后按照每个单词被录入单词映射表的顺序依次递增排序,从而形成单词映射转换表;使用Glove预训练语言模型,得到每个单词的词向量表示;在嵌入层将每一个新闻标题T=[w1,w2,...,wN]转换成向量表示,记为E=[e1,e2,...,eN],其中,N表示一个新闻标题的长度,eN表示每个单词的向量表示。
举例:可借助预训练词向量Glove,将每一个新闻标题T=[w1,w2,...,wN]转换成词向量表示,表示为E=[e1,e2,...,eN]。
S201010102、针对E=[e1,e2,...,eN]使用卷积神经网络CNN进行特征提取,得到上下文特征向量[c1,c2,...,cN],公式如下:
ci=ReLU(Qwxe(i-k):(i+k)+bw);
其中,i表示相应词向量在新闻标题中的相对位置,k表示距离i相对位置的差值,e(i-k):(i+k)表示聚合了(i-k)到(i+k)位置的词向量,Qw表示CNN过滤器的卷积核,bw表示偏置,ReLU为一种激活函数,运算符×为矩阵乘法。
举例说明:在pytorch机器学习框架中,对于上面描述的代码实现如下所示:
self.title_CNN=nn.Conv2d(
1,
config.num_filters,
(config.window_size,config.word_embedding_dim),
padding=(int((config.window_size-1)/2),0))
title_vector=F.dropout(self.word_embedding(torch.stack(news['title'],dim=1).to(device)),
p=self.config.dropout_probability,
training=self.training)
convoluted_title_vector=
self.title_CNN(title_vector.unsqueeze(dim=1)).squeeze(dim=3)
activated_title_vector=F.dropout(F.relu(convoluted_title_vector),
p=self.dropout_rate,
training=self.training)
其中,nn.Conv2d、F.dropout为pytorch中内置的卷积神经网络方法和防止训练过拟合的方法,title_vector为标题经过预训练词向量处理的标题向量,convoluted_title_vector为标题向量经过卷积神经网络处理后的上下文特征向量,activated_title_vector为经过激活函数ReLU函数处理后的上下文特征向量。
S201010103、对上下文特征向量[c1,c2,...,cN],使用注意力机制进一步提取关键特征,得到最终的新闻标题向量rt,公式如下:
ai=qT tanh(V×ci+v);
其中,q是由上下文特征向量得到的注意力查询向量,V和v是从训练过程中学到的参数,tanh为一种激活函数,运算符×为矩阵乘法,exp为对数函数运算,ai是第i个单词的注意力分值,αi是第i个单词的注意力权重,N是上下文特征向量[c1,c2,...,cN]的长度。
举例说明:在pytorch机器学习框架中,对于上面描述的代码实现如下所示:
self.title_attention=AdditiveAttention(config.query_vector_dim,config.num_filters)
weighted_title_vector=self.title_attention(activated_title_vector.transpose(1,2))
其中,self.title_attention即AdditiveAttention是根据注意力机制的原理自定义的方法,weighted_title_vector为标题向量的注意力权重,config.query_vector_dim和config.num_filters为自定义的向量维度参数。
S2010102、构建摘要学习模块:具体步骤同S20101构建标题学习模块,得到摘要向量ra。
S2010103、构建分类学习模块:
在嵌入层通过词向量方法将主类别标签和子类别标签分别映射到低维空间向量得到每个类别标签的词向量表示ec和esc,然后使用激活函数ReLU生成类别标签的最终向量rc和rsc,公式如下:
rc=ReLU(Vc×ec+vc);
rsc=ReLU(Vsc×esc+vsc);
其中,ReLU是一种激活函数,Vc,Vsc,vsc和vc是从训练过程中学到的参数,运算符×为矩阵乘法。
举例说明:在pytorch机器学习框架中,对于上面描述的代码实现如下所示:
其中,nn.Embedding、nn.Linear、F.relu分别为pytorch中内置的词向量嵌入方法、连接层方法和激活函数。config.category_embedding_dim和config.num_filters为自定义的向量维度参数,activated_category_vector和activated_subcategory_vector分别为最终生成的主类别标签向量rc和子类别标签向量rsc。
S2010104、构建注意力模块:针对标题、摘要、主类别标签和子类别标签的向量rt、ra、rc和rsc,使用激活函数tanh分别计算各自的注意力分数,即at、aa、ac、asc,然后进一步通过注意力机制分别得到各自的注意力权重,公式如下:
其中,Vt、Va、Vc、Vsc、vt、va、vc、vsc为计算标题注意力分数at、摘要注意力分数aa、主类别标签注意力分数ac和子类别标签注意力分数asc的参数,是由标题向量rt生成的注意力查询向量,是由摘要向量ra生成的注意力查询向量,是由主类别标签向量rc生成的注意力查询向量,是由子类别标签向量rsc生成的注意力查询向量,tanh为一种激活函数,运算符×为矩阵乘法,exp为对数函数运算,αt是标题的注意力权重,αa是摘要的注意力权重,αc是主类别标签的注意力权重,αsc是子类别标签的注意力权重。
最终的新闻特征向量r由标题向量rt、摘要向量ra、主类别标签向量rc和子类别标签向量rsc以及各自的注意力权重决定,公式如下:
r=[αtrt;αara;αcrc;αscrsc];
其中,符号;表示联接操作。
举例说明:在pytorch机器学习框架中,对于上面描述的代码实现如下所示:
其中,self.final_attention为根据注意力机制的原理自定义的方法;weighted_title_vector、weighted_abstract_vector、activated_category_vector、activated_subcategory_vector分别为标题、摘要、主类别标签和子类别标签的向量rt、ra、rc和rsc;news_vector为最终的新闻特征向量r。
S20102、构建Aspect-level特征提取器,如附图7所示,具体如下:
S2010201、在嵌入层,针对每一条新闻的词向量表示,通过计算加权平均值的方式得到其全局词向量表示,然后使用单词级别的注意力机制重新构建新闻向量,得到基于注意力的新闻向量表示zd。公式如下:
其中,ei是每一条新闻中每个单词所对应的词向量表示,y是全局词向量表示,N是一条新闻向量的长度,hi是注意力权重,H是y和新闻词向量ei之间的映射矩阵,exp为对数函数运算,α′i是注意力权重,zd是基于注意力的新闻向量表示,运算符·为向量内积运算,即两个向量对应位置上的值相乘再相加的操作。
举例说明:在pytorch机器学习框架中,对于上面描述的代码实现如下所示:
y_s=torch.mean(e_i,dim=-1)
h_i=torch.bmm(e_i.transpose(1,2),self.M(y_s).unsqueeze(2)).tanh()
a_i=torch.exp(h_i)/torch.sum(torch.exp(h_i))
z_d=normalize(torch.bmm(e_i,a_i).squeeze(2),dim=-1).to(device)
其中,torch.mean为平均值运算,torch.bmm为向量内积运算,torch.exp为对数函数运算,normalize为正则化方法。
S2010202、针对所有新闻的词向量,使用特征聚类算法——K-means得到细粒度方面特征矩阵A,然后通过矩阵乘法重构步骤S2010201中的基于注意力的新闻向量表示zd,得到基于细粒度方面特征的新闻向量rd。公式如下:
p=softmax(Wp·zd+b);
rd=AT·p;
其中,Wp是权重矩阵参数,b是偏置向量,p是由zd经过归一化操作softmax函数计算得到的细粒度方面特征权重向量,rd是基于细粒度方面特征的新闻向量,操作符·为向量内积运算,即两个向量对应位置上的值相乘再相加的操作。
举例说明:在pytorch机器学习框架中,对于上面描述的代码实现如下所示:
p_t=softmax(self.Linear(z_d),dim=1).to(device)
r_d=normalize(torch.mm(self.A.weight.t(),p_t.t()).t(),dim=-1)
其中,softmax为归一化操作,torch.mm为二维矩阵运算,normalize为正则化方法。
S2010203、最后,通过联接新闻特征向量r和基于细粒度方面特征的新闻向量rd得到Aspect-level新闻向量表示n,公式如下:
n=[r;rd];
S202、构建Aspect-level用户编码器,具体的,包括新闻特征提取器、Aspect-level特征提取器和用户兴趣提取器。
S20201、新闻特征提取器和Aspect-level特征提取器的过程与步骤S20101和步骤S20102相同,在此不再赘述。
S20202、构建用户兴趣提取器,具体如下:
S2020201、针对用户浏览记录,通过新闻特征提取器得到新闻特征向量k,具体步骤同S20101;再使用Aspect-level特征提取器构建基于细粒度方面特征的新闻向量kd,具体步骤同S20102;最后将k和kd联接作为最终的用户浏览记录表示n′。公式如下:
n′=[k;kd];
S20202、针对用户浏览记录表示n′,使用句子级别的注意力机制得到Aspect-level用户向量表示u。公式如下:
其中,qn是由用户浏览记录表示n′生成的注意力查询向量,Vn和vn是从训练过程中学到的参数,tanh为一种激活函数,是第i个新闻的注意力分数,是每条用户浏览记录中第i个新闻的注意力权重,M是用户浏览记录的长度。
举例说明:在pytorch机器学习框架中,对于上面描述的代码实现如下所示:
self.additive_attention=AdditiveAttention(config.query_vector_dim,config.num_filters)
user_vector=self.additive_attention(clicked_news_vector)
其中,self.additive_attention为根据注意力机制的原理自定义的方法,config.query_vector_dim和config.num_filters为自定义的向量维度参数,clicked_news_vector为用户浏览记录表示n′。
S203、构建点击率预测器,将Aspect-level新闻向量表示和Aspect-level用户向量表示经过向量内积计算得到最后的点击率分数。公式如下:
y=nT·u。
举例说明:在pytorch机器学习框架中,对于上面描述的代码实现如下所示:
probability=torch.bmm(
user_vector.unsqueeze(dim=1),
candidate_news_vector.unsqueeze(dim=2)).flatten()
其中,torch.bmm为向量内积运算,user_vector为Aspect-level用户向量表示u,candidate_news_vector为Aspect-level新闻向量表示n。
S3、训练模型:如附图4所示,具体如下:
S301、构建损失函数:采用负采样技术,将一个用户的已点击的新闻定义为正样例,没有点击过的新闻定义为负样例,计算正样例的点击预测值pi。公式如下:
新闻推荐的损失函数为所有正样例的负对数似然函数,公式如下:
举例说明:在pytorch机器学习框架中,对于上面描述的代码实现如下所示:
loss=torch.stack([x[0]for x in-F.log_softmax(y_pred,dim=1)]).mean()
其中,F.log_softmax为pytorch内置的log_softmax损失函数,y_pred为点击预测值pi。
同时,为确保模型获取的Aspect特征的质量,设计了针对Aspect-level特征提取器的损失函数,公式如下:
其中,G是负样例的个数,是训练数据集,rd和zd是由Aspect特征提取器生成的特征向量,nj是第j个负样例的向量表示,An是细粒度方面特征矩阵A的每一行被规范化为长度1后的矩阵,I是单位矩阵,λ是控制正则项权重的参数。
将步骤S301的新闻推荐方法的损失函数U(θ)和Aspect-level特征提取器的损失函数J(θ)相加得到整个模型的损失函数,公式如下:
L=U(θ)+J(θ);
举例说明:在pytorch机器学习框架中,对于上面描述的代码实现如下所示:
pos=torch.bmm(z_s.unsqueeze(1),r_s.unsqueeze(2)).squeeze(2)
negs=torch.mm(z_n,r_s.t()).squeeze(1)
J=torch.ones(negs.shape).to(device)-pos.expand(negs.t().shape).t()+negs
loss+=Config.loss_weight*J
其中,pos、negs分别为正样例和负样例,J为Aspect-level特征提取器的损失函数,Config.loss_weight为自定义的权重参数,loss为整个模型的损失函数。
S302、优化模型:选择使用Adam优化函数作为本模型的优化函数,其中,学习率设置为0.001,平滑常数设置为(0.9,0.999),eps设置为1e-8,L2惩罚值设置为0。
在实验中,本发明选取ROC曲线下的面积AUC、平均倒数排名MRR、累计增益nDCG作为评价指标。
举例说明:上面描述的优化函数在pytorch中使用代码表示为:
optimizer=torch.optim.Adam(model.parameters(),lr=learning_rate)
其中,torch.optim.Adam为pytorch内嵌的Adam优化函数,model.parameters()为模型训练的参数集合,learning_rate为学习率。
本发明的模型在MIND公开数据集上取得了优于当前模型的结果,实验结果的对比具体见下表:
本发明模型和现有模型进行了比较,可见本发明方法较其他方法其性能最优。其中,DKN出自文献《DKN:Deep knowledge-aware network for news recommendation》,Hi-Fi Ark出自文献《Hi-Fi Ark:Deep User Representation via High-Fidelity ArchiveNetwork》,TANR出自文献《Neural news recommendation with topic-aware newsrepresentation》。
实施例3:
基于实施例2构建基于细粒度方面特征的智能新闻推荐系统,该系统包括:
训练数据集生成单元,首先在线上新闻网站获得用户的浏览记录信息,随后对其进行预处理操作,从而得到符合训练要求的用户浏览记录及其新闻文本内容;训练数据集生成单元包括,
原始数据获取单元,负责下载网络上已经公开的新闻网站数据集,将其作为构建训练数据集的原始数据;
原始数据预处理单元,负责预处理新闻数据集中的每一条新闻文本,去除新闻数据集中的停用词及特殊字符;分别抽取每一条新闻文本的关键信息,如标题、类别、摘要;从而构建训练数据集;
基于细粒度方面特征的新闻推荐模型构建单元,用于载入训练数据集、构建Aspect-level新闻编码模块、构建Aspect-level用户编码模块以及构建候选新闻预测模块,基于细粒度方面特征的新闻推荐模型构建单元包括,
训练数据集载入单元,负责加载训练数据集;
Aspect-level新闻编码模块构建单元,负责在训练数据集中训练基于Glove词向量模型的新闻向量,并定义所有的新闻向量表示;首先使用卷积神经网络和注意力机制分别编码新闻标题和摘要,得到新闻标题和摘要向量;同时使用全连接层分别编码新闻主类别和子类别,得到新闻主类别和子类别向量;再将新闻标题、摘要、主类别和子类别向量进行联接并输入到注意力机制中,得到最终的新闻向量;同时,使用嵌入层处理新闻向量,得到嵌入层的新闻向量;再使用K-means算法对嵌入层的新闻向量聚类处理,得到细粒度方面特征矩阵;同时通过注意力机制得到基于注意力的新闻向量,最后通过矩阵乘法操作处理细粒度方面特征矩阵和基于注意力的新闻向量,得到最终的基于细粒度方面特征的新闻向量;将最终的新闻向量和最终的基于细粒度方面特征的新闻向量联接,得到Aspect-level新闻向量;
Aspect-level用户编码模块构建单元,负责根据用户浏览记录构建基于细粒度方面特征的用户向量;其中,用户浏览记录的新闻向量由Aspect-level新闻编码模块构建单元得到,再通过一层注意力网络得到Aspect-level用户向量;
候选新闻预测模块构建单元,负责,将Aspect-level新闻向量和Aspect-level用户向量作为输入,通过向量内积运算生成每个候选新闻的得分即点击率,然后将所有候选新闻依据点击率大小由高到低进行排序,将Top-K条新闻推荐给用户;
模型训练单元,用于构建模型训练过程中所需要的损失函数,并完成模型的优化训练;模型训练单元包括,
损失函数构建单元,负责计算预测的候选新闻与真实的目标新闻之间的误差;
模型优化单元,负责训练并调整模型训练中的参数,减小预测误差。
实施例4:
基于实施例2的存储介质,其中存储有多条指令,指令有处理器加载,执行实施例2的基于细粒度方面特征的智能新闻推荐方法的步骤。
实施例5:
基于实施例4的电子设备,电子设备包括:实施例4的存储介质;以及处理器,用于执行实施例4的存储介质中的指令。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种基于细粒度方面特征的智能新闻推荐方法,其特征在于,该方法通过构建并训练由Aspect-level新闻编码器、Aspect-level用户编码器、点击率预测器所构成的新闻推荐模型,将所有候选新闻依据点击率大小由高到低进行排序,将Top-K条新闻推荐给用户;具体如下:
构建Aspect-level新闻编码器,以新闻的标题、摘要、主类别和子类别信息作为输入,使用卷积神经网络、注意力机制和K-means聚类算法分别从上述四类信息中学习基于细粒度方面特征的新闻向量;
构建Aspect-level用户编码器,以用户浏览记录为输入,使用Aspect-level新闻编码器和注意力机制得到基于细粒度方面特征的用户向量;
构建点击率预测器,根据候选新闻向量和基于细粒度方面特征的用户向量,计算用户对每一条候选新闻的点击率;将所有候选新闻依据点击率大小由高到低进行排序,将Top-K条新闻推荐给用户。
2.根据权利要求1所述的基于细粒度方面特征的智能新闻推荐方法,其特征在于,所述Aspect-level新闻编码器由新闻特征提取器、Aspect-level特征提取器共同组成;通过联接新闻特征提取器所输出的新闻特征向量r和Aspect-level特征提取器所输出的基于细粒度方面特征的新闻向量rd得到Aspect-level新闻向量表示n,公式如下:n=[r;rd]。
3.根据权利要求2所述的基于细粒度方面特征的智能新闻推荐方法,其特征在于其新闻特征提取器,包括四个模块:标题学习模块、摘要学习模块、分类学习模块和注意力模块,具体如下:
构建标题学习模块,针对数据集中每一个单词构建单词映射表,并将表中每一个单词映射成唯一的数字标识,映射规则为:以数字1为起始,随后按照每个单词被录入单词映射表的顺序依次递增排序,从而形成单词映射转换表;使用Glove预训练语言模型,得到每个单词的词向量表示;在嵌入层将每一个新闻标题T=[w1,w2,...,wN]转换成向量表示,记为E=[e1,e2,...,eN],其中,N表示一个新闻标题的长度,eN表示第N个单词wN的向量表示;
针对E=[e1,e2,...,eN]使用卷积神经网络CNN进行特征提取,得到上下文特征向量[c1,c2,...,cN],公式如下:
ci=ReLU(Qw×e(i-k):(i+k)+bw);
其中,i表示相应词向量在新闻标题中的相对位置,k表示距离i相对位置的差值,e(i-k):(i+k)表示聚合了(i-k)到(i+k)位置的词向量,Qw表示CNN过滤器的卷积核,bw表示偏置,ReLU为一种激活函数,运算符×为矩阵乘法;
对上下文特征向量[c1,c2,...,cN],使用注意力机制进一步提取关键特征,得到最终的新闻标题向量rt,公式如下:
其中,q是由上下文特征向量得到的注意力查询向量,V和v是从训练过程中学到的参数,tanh为一种激活函数,运算符×为矩阵乘法,exp为对数函数运算,ai是第i个单词的注意力分值,αi是第i个单词的注意力权重,N是上下文特征向量[c1,c2,...,cN]的长度;
构建摘要学习模块,具体步骤同构建标题学习模块,得到摘要向量ra;
构建分类学习模块,在嵌入层通过词向量方法将主类别标签和子类别标签分别映射到低维空间向量得到每个类别标签的词向量表示ec和esc,然后使用激活函数ReLU生成类别标签的最终向量rc和rsc,公式如下:
rc=ReLU(Vc×ec+vc);
rsc=ReLU(Vsc×esc+vsc);
其中,ReLU是一种激活函数,Vc,Vsc,vsc和vc是从训练过程中学到的参数,运算符×为矩阵乘法;
构建注意力模块:针对标题、摘要、主类别标签和子类别标签的向量rt、ra、rc和rsc,使用激活函数tanh分别计算各自的注意力分数,即at、aa、ac、asc,然后进一步通过注意力机制分别得到各自的注意力权重,公式如下:
其中,Vt、Va、Vc、Vsc、vt、va、vc、vsc为计算标题注意力分数at、摘要注意力分数aa、主类别标签注意力分数ac和子类别标签注意力分数asc的参数,是由标题向量rt生成的注意力查询向量,是由摘要向量ra生成的注意力查询向量,是由主类别标签向量rc生成的注意力查询向量,是由子类别标签向量rsc生成的注意力查询向量,tanh为一种激活函数,运算符×为矩阵乘法,exp为对数函数运算,αt是标题的注意力权重,αa是摘要的注意力权重,αc是主类别标签的注意力权重,αsc是子类别标签的注意力权重;
最终的新闻特征向量r由标题向量rt、摘要向量ra、主类别标签向量rc和子类别标签向量rsc以及各自的注意力权重决定,公式如下:
r=[αtrt;αara;αcrc;αscrsc];
其中,符号;表示联接操作。
4.根据权利要求2所述的基于细粒度方面特征的智能新闻推荐方法,其特征在于其Aspect-level特征提取器,具体如下:
在嵌入层,针对每一条新闻的词向量表示,通过计算加权平均值的方式得到其全局词向量表示,然后使用单词级别的注意力机制重新构建新闻向量,得到基于注意力的新闻向量表示zd,公式如下:
其中,ei是每一条新闻中每个单词所对应的词向量表示,y是全局词向量表示,N是一条新闻向量的长度,hi是注意力权重,H是y和新闻词向量ei之间的映射矩阵,exp为对数函数运算,α′i是注意力权重,zd是基于注意力的新闻向量表示,运算符·为向量内积运算,即两个向量对应位置上的值相乘再相加的操作;
针对所有新闻的词向量,使用特征聚类算法——K-means得到细粒度方面特征矩阵A,然后通过矩阵乘法重构上述步骤中的基于注意力的新闻向量表示zd,得到基于细粒度方面特征的新闻向量rd,公式如下:
p=softmax(Wp·zd+b);
其中,Wp是权重矩阵参数,b是偏置向量,p是由zd经过归一化操作softmax函数计算得到的细粒度方面特征权重向量,rd是基于细粒度方面特征的新闻向量,操作符·为向量内积运算,即两个向量对应位置上的值相乘再相加的操作。
5.根据权利要求1所述的基于细粒度方面特征的智能新闻推荐方法,其特征在于,所述Aspect-level用户编码器的构建过程具体如下:
构建Aspect-level用户编码器,具体的,包括新闻特征提取器、Aspect-level特征提取器和用户兴趣提取器;
新闻特征提取器和Aspect-level特征提取器的构建过程与权利要求2所述相同,在此不再赘述;
构建用户兴趣提取器,具体如下:
针对用户浏览记录,通过新闻特征提取器得到新闻特征向量k;再使用Aspect-level特征提取器构建基于细粒度方面特征的新闻向量kd;最后将k和kd联接作为最终的用户浏览记录表示n′;公式如下:
n′=[k;kd];
针对用户浏览记录表示n′,使用句子级别的注意力机制得到Aspect-level用户向量表示u;公式如下:
7.根据权利要求1所述的基于细粒度方面特征的智能新闻推荐方法,其特征在于,所述训练数据集的构建过程具体如下:
构建新闻数据集或者选择已公开的新闻数据集;
预处理新闻数据集:预处理新闻数据集中的每一条新闻文本,去除新闻数据集中的停用词及特殊字符;分别抽取每一条新闻文本的标题、主类别、子类别和摘要信息;
构建训练正例:使用用户浏览记录中的历史新闻序列和交互行为序列中标签为1的新闻编号,即被用户点击的新闻的编号,构建训练正例;
构建训练负例:使用用户浏览记录中的历史新闻序列和交互行为序列中标签为0的新闻编号,即未被用户点击的新闻的编号,构建训练负例;
构建训练数据集:将全部的正例数据和负例数据进行组合,并打乱其顺序,构建最终的训练数据集。
8.根据权利要求1所述的基于细粒度方面特征的智能新闻推荐方法,需要通过训练数据集进行训练与优化,具体如下:
构建损失函数:采用负采样技术,将一个用户的已点击的新闻定义为正样例,没有点击过的新闻定义为负样例,计算正样例的点击预测值pi;公式如下:
新闻推荐的损失函数为所有正样例的负对数似然函数,公式如下:
同时,为确保模型获取的Aspect-level特征的质量,设计了针对Aspect-level特征提取器的损失函数,公式如下:
其中,G是负样例的个数,是训练数据集,rd和zd是由Aspect-level特征提取器生成的特征向量,nj是第j个负样例的向量表示,An是细粒度方面特征矩阵A的每一行被规范化为长度1后的矩阵,I是单位矩阵,λ是控制正则项权重的参数;
将新闻推荐方法的损失函数U(θ)和Aspect-level特征提取器的损失函数J(θ)相加得到整个模型的损失函数,公式如下:
L=U(θ)+J(θ);
优化训练模型:选择使用Adam优化函数作为本模型的优化函数,其中,学习率设置为0.001,平滑常数设置为(0.9,0.999),eps设置为1e-8,L2惩罚值设置为0。
9.一种基于细粒度方面特征的智能新闻推荐系统,其特征在于,该系统包括:
训练数据集生成单元,首先在线上新闻网站获得用户的浏览记录信息,随后对其进行预处理操作,从而得到符合训练要求的用户浏览记录及其新闻文本内容;训练数据集生成单元包括,
原始数据获取单元,负责下载网络上已经公开的新闻网站数据集,将其作为构建训练数据集的原始数据;
原始数据预处理单元,负责预处理新闻数据集中的每一条新闻文本,去除新闻数据集中的停用词及特殊字符;分别抽取每一条新闻文本的关键信息,如标题、类别、摘要;从而构建训练数据集;
基于细粒度方面特征的新闻推荐模型构建单元,用于载入训练数据集、构建Aspect-level新闻编码模块、构建Aspect-level用户编码模块以及构建候选新闻预测模块,基于细粒度方面特征的新闻推荐模型构建单元包括,
训练数据集载入单元,负责加载训练数据集;
Aspect-level新闻编码模块构建单元,负责在训练数据集中训练基于Glove词向量模型的新闻向量,并定义所有的新闻向量表示;首先使用卷积神经网络和注意力机制分别编码新闻标题和摘要,得到新闻标题和摘要向量;同时使用全连接层分别编码新闻主类别和子类别,得到新闻主类别和子类别向量;再将新闻标题、摘要、主类别和子类别向量进行联接并输入到注意力机制中,得到最终的新闻向量;同时,使用嵌入层处理新闻向量,得到嵌入层的新闻向量;再使用K-means算法对嵌入层的新闻向量聚类处理,得到细粒度方面特征矩阵;同时通过注意力机制得到基于注意力的新闻向量,最后通过矩阵乘法操作处理细粒度方面特征矩阵和基于注意力的新闻向量,得到最终的基于细粒度方面特征的新闻向量;将最终的新闻向量和最终的基于细粒度方面特征的新闻向量联接,得到Aspect-level新闻向量;
Aspect-level用户编码模块构建单元,负责根据用户浏览记录构建基于细粒度方面特征的用户向量;其中,用户浏览记录的新闻向量由Aspect-level新闻编码模块构建单元得到,再通过一层注意力网络得到Aspect-level用户向量;
候选新闻预测模块构建单元,负责,将Aspect-level新闻向量和Aspect-level用户向量作为输入,通过向量内积运算生成每个候选新闻的得分即点击率,然后将所有候选新闻依据点击率大小由高到低进行排序,将Top-K条新闻推荐给用户;
模型训练单元,用于构建模型训练过程中所需要的损失函数,并完成模型的优化训练;模型训练单元包括,
损失函数构建单元,负责计算预测的候选新闻与真实的目标新闻之间的误差;
模型优化单元,负责训练并调整模型训练中的参数,减小预测误差。
10.一种存储介质,其中存储有多条指令,其特征在于,所述指令由处理器加载,执行权利要求1-8中所述的基于细粒度方面特征的智能新闻推荐方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210619313.XA CN114943034A (zh) | 2022-06-01 | 2022-06-01 | 基于细粒度方面特征的智能新闻推荐方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210619313.XA CN114943034A (zh) | 2022-06-01 | 2022-06-01 | 基于细粒度方面特征的智能新闻推荐方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114943034A true CN114943034A (zh) | 2022-08-26 |
Family
ID=82908924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210619313.XA Pending CN114943034A (zh) | 2022-06-01 | 2022-06-01 | 基于细粒度方面特征的智能新闻推荐方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114943034A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117150145A (zh) * | 2023-10-31 | 2023-12-01 | 成都企软数字科技有限公司 | 一种基于大语言模型的个性化新闻推荐方法及系统 |
CN117270476A (zh) * | 2023-10-24 | 2023-12-22 | 清远欧派集成家居有限公司 | 基于智慧工厂的生产控制方法及系统 |
-
2022
- 2022-06-01 CN CN202210619313.XA patent/CN114943034A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117270476A (zh) * | 2023-10-24 | 2023-12-22 | 清远欧派集成家居有限公司 | 基于智慧工厂的生产控制方法及系统 |
CN117270476B (zh) * | 2023-10-24 | 2024-03-08 | 清远欧派集成家居有限公司 | 基于智慧工厂的生产控制方法及系统 |
CN117150145A (zh) * | 2023-10-31 | 2023-12-01 | 成都企软数字科技有限公司 | 一种基于大语言模型的个性化新闻推荐方法及系统 |
CN117150145B (zh) * | 2023-10-31 | 2024-01-02 | 成都企软数字科技有限公司 | 一种基于大语言模型的个性化新闻推荐方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111061856B (zh) | 一种基于知识感知的新闻推荐方法 | |
US11874862B2 (en) | Community question-answer website answer sorting method and system combined with active learning | |
WO2022116536A1 (zh) | 信息服务提供方法、装置、电子设备和存储介质 | |
CN114943034A (zh) | 基于细粒度方面特征的智能新闻推荐方法和系统 | |
CN111222332A (zh) | 一种结合注意力网络和用户情感的商品推荐方法 | |
CN110580292A (zh) | 一种文本标签生成方法、装置和计算机可读存储介质 | |
CN112256866B (zh) | 一种基于深度学习的文本细粒度情感分析算法 | |
CN112328900A (zh) | 一种融合评分矩阵和评论文本的深度学习推荐方法 | |
CN111737578A (zh) | 一种推荐方法及系统 | |
CN112085565A (zh) | 基于深度学习的信息推荐方法、装置、设备及存储介质 | |
CN116431919A (zh) | 基于用户意图特征的智能新闻推荐方法和系统 | |
CN112464100B (zh) | 信息推荐模型训练方法、信息推荐方法、装置及设备 | |
CN114519145A (zh) | 一种基于图神经网络挖掘用户长短期兴趣的序列推荐方法 | |
CN111859967B (zh) | 实体识别方法、装置,电子设备 | |
CN114896510A (zh) | 基于用户多兴趣特征的智能新闻推荐方法和系统 | |
CN113326384A (zh) | 一种基于知识图谱的可解释推荐模型的构建方法 | |
Zhao et al. | A hybrid model based on LFM and BiGRU toward research paper recommendation | |
CN115481219A (zh) | 一种基于语法序列嵌入模型的售电公司评价情感分类方法 | |
CN112989803B (zh) | 一种基于主题向量学习的实体链接预测方法 | |
CN114119191A (zh) | 风控方法、逾期预测方法、模型训练方法及相关设备 | |
Zhang et al. | Extreme residual connected convolution-based collaborative filtering for document context-aware rating prediction | |
CN115630223A (zh) | 基于多模型融合的服务推荐方法及推荐系统 | |
CN112487231B (zh) | 一种基于双图正则化约束和字典学习的图像自动标注方法 | |
CN115203532A (zh) | 一种项目推荐方法、装置、电子设备及存储介质 | |
CN110929513A (zh) | 基于文本的标签体系构建方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |