«上一篇 下一篇»
  计算机工程  2021, Vol. 47 Issue (6): 98-103, 114  DOI: 10.19678/j.issn.1000-3428.0057446
0

引用本文  

陶天一, 王清钦, 付聿炜, 等. 基于知识图谱的金融新闻个性化推荐算法[J]. 计算机工程, 2021, 47(6), 98-103, 114. DOI: 10.19678/j.issn.1000-3428.0057446.
TAO Tianyi, WANG Qingqin, FU Yuwei, et al. Personalized Recommendation Algorithm for Financial News Based on Knowledge Graph[J]. Computer Engineering, 2021, 47(6), 98-103, 114. DOI: 10.19678/j.issn.1000-3428.0057446.

基金项目

国家自然科学基金(U1636207,U1936213);上海市科委发展基金(19DZ1200802,19511121204)

作者简介

陶天一(1995-), 男, 硕士研究生, 主研方向为推荐系统、机器学习;
王清钦, 硕士研究生;
付聿炜, 硕士研究生;
熊贇, 教授、博士生导师;
俞枫, 教授级高级工程师;
苑博, 工程师

文章历史

收稿日期:2020-02-20
修回日期:2020-05-19
基于知识图谱的金融新闻个性化推荐算法
陶天一1 , 王清钦1 , 付聿炜1 , 熊贇1 , 俞枫2 , 苑博2     
1. 复旦大学 计算机科学技术学院上海市数据科学重点实验室, 上海 201203;
2. 国泰君安证券股份有限公司, 上海 201201
摘要:个性化新闻资讯推荐能够有效地捕捉用户兴趣,提供高质量推荐服务的能力,因而吸引了大量高黏性用户,而知识图谱则以“实体-关系-实体”的形式表示事物间的关系,通过知识图谱中实体间的关系学习到更丰富的特征及语义信息。为更好地实现金融领域新闻的个性化推荐,提出一种基于知识图谱的个性化推荐算法KHA-CNN。结合金融业知识图谱,采用基于知识的卷积神经网络和层次注意力机制得到新闻文本的特征表示,并学习用户复杂行为数据特征。在真实数据集上的实验结果表明,与Random Forest、DKN、ATRank-like算法相比,KHA-CNN算法的F1和AUC指标分别提高了2.6个和1.5个百分点。
关键词知识图谱    新闻推荐    注意力机制    行为数据    知识表示学习    
Personalized Recommendation Algorithm for Financial News Based on Knowledge Graph
TAO Tianyi1 , WANG Qingqin1 , FU Yuwei1 , XIONG Yun1 , YU Feng2 , YUAN Bo2     
1. Shanghai Key Laboratory of Data Science, School of Computer Science, Fudan University, Shanghai 201203, China;
2. Guotai Junan Securities, Shanghai 201201, China
Abstract: Personalized news information recommendation can attract a large number of highly sticky users because of its ability to effectively capture user interests and provide high-quality recommendation services.Knowledge graph represents the relationships between things in the entity-relation-entity form, which enables the learning of richer features and semantic information.To increase the quality of personalized recommendation of news in the financial field, this paper proposes a personalized recommendation algorithm, KHA-CNN, based on knowledge graph.Combined with the knowledge graph in the financial industry, a knowledge-based convolutional neural network and the hierarchical attention mechanism are used to obtain the feature representation of news texts, and to learn the features of the complex behavior data of users.Experimental results on real data sets show that compared with Random Forest, DKN, and ATRank-like algorithms, the KHA-CNN algorithm increases the F1 score by 2.6 percentange points, and the AUC indicator by 1.5 percentange points.
Key words: knowledge graph    news recommendation    attention mechanism    behavior data    knowledge representation learning    

开放科学(资源服务)标志码(OSID):

0 概述

在移动互联网时代,人们的阅读需求呈现出碎片化、多场景的特征,个性化新闻资讯推荐逐渐成为移动资讯行业的主流。面对信息爆炸的冲击,人们越来越习惯于浅阅读的阅读模式,即读者没有明确的阅读目标,更倾向于被动接受资讯推送。这些资讯对于整个读者群体而言是最为热门的,而对于读者个体而言并不总是能对应到他的兴趣,这也使得读者个体的阅读体验碎片化。因此,研究人员提出个性化新闻推荐算法[1-3],提供“千人千面”的资讯,有效解决用户碎片化阅读的问题。

知识图谱是由Google公司于2012年提出的一个具有语义处理能力与开放互联能力的知识库,以“实体-关系-实体”三元组$ (\boldsymbol{h}, \boldsymbol{r}, \boldsymbol{t}) $的形式表示事物间的关系,其中$ \boldsymbol{h} $$ \boldsymbol{r} $$ \boldsymbol{t} $分别代表一个三元组的头实体、关系和尾实体。研究人员发现,结合实体间的关系信息学习到的表示特征,在搜索引擎[4]、推荐系统[1]、关系挖掘[5]等问题中都取得了良好的效果。因此,知识表示学习得到了人们的广泛关注[1, 4-6],其中,基于翻译机制的知识表示学习TransX系列模型成为具有代表性的模型[7-9]

为了将新闻处理为结合文本信息与金融行业知识图谱实体信息的向量表示,研究人员引入知识图谱与自然语言处理技术。一方面,在金融知识图谱的辅助下,从新闻文本识别出一系列实体,可以通过知识表示学习得到低维空间的向量表示。另一方面,将新闻文本本身的嵌入表示、新闻中识别到的实体表示、以及新闻中识别到的实体的上下文表示进行对齐,并利用基于词的卷积神经网络[10]、层次注意力机制[11-12]等方法,最终处理为目标向量表示。复杂类型的用户行为序列可以用来建模用户特征[13],并进一步被用于优化推荐算法的性能[14]

目前已有研究人员提出结合知识图谱的推荐算法。文献[15]通过搜索数据和百科数据构建一个求职技能图谱,并提出一个基于知识图谱的面试问题推荐系统。文献[16-18]将用户和物品看作图中的节点来进行特征的学习,并最终用于推荐任务。但是,上述方法不能很好地适应资讯推荐场景下常见的冷启动问题等。

本文提出一种基于知识图谱的金融新闻个性化推荐算法。利用基于知识图谱的层次卷积神经网络提取新闻特征,并通过用户交易行为描绘用户特征,最终结合两方面特征,实现个性化金融新闻推荐。

1 问题定义

假设用户$ u $的历史新闻点击行为记为$ \{{t}_{1}^{u}, {t}_{2}^{u}, \cdots , {t}_{{N}_{u}}^{u}\} $,其中,$ {t}_{i}^{u} $是用户$ u $点击的第$ i $条新闻,$ {N}_{u} $是用户$ u $点击过的新闻数目。对于一条新闻,通过分词、去除停用词等处理转成一个词序列$ t=[{w}_{1}, {w}_{2}, \cdots ] $,而每个词$ {w}_{j} $可能对应知识图谱中的某一个实体$ e $。例如句子“交通银行2018年第一季度利润增速放缓总体形势保持上升趋势”中的“交通银行”对应“中国交通银行”这一实体,对应在知识图谱中有“交通银行-所属行业-银行业”、“交通银行-股票概念-大蓝筹”和“交通银行-所属指数-沪深300”等关系。此外,结合用户的历史新闻点击行为、交易行为(如用户挂单和成交记录、用户自选股票、用户持仓股票)等数据,可以为每个用户生成一个特征表示向量。最终通过对以上信息的层次化建模,预测用户对于给定的未点击过的新闻及点击阅读的概率大小。

2 基于知识图谱的新闻个性化推荐

本节主要介绍KHA-CNN算法模型。针对金融资讯即时性强、待推荐资讯多为冷启动资讯(即被阅读次数较少)的特点,在设计时摒弃了采用基于协同过滤的思路,使用基于内容的方法,从物品和用户两个角度分别去设计和建模。由于金融资讯中含有大量领域实体,结合金融领域知识图谱的知识提取能够使得物品侧的建模更为准确。此外,金融领域中存在大量用户和股票间的行为,可以将其用于用户侧的建模中。

2.1 KHA-CNN模型框架

KHA-CNN模型由左、右两部分组成,如图 1所示。

Download:
图 1 KHA-CNN模型整体框架 Fig. 1 Overall framework of KHA-CNN model

图 1左侧所示,对于一篇新闻,首先通过预训练的词向量得到其词嵌入表示,然后根据知识图谱提取其实体信息和实体上下文信息,随后采用卷积神经网络学习新闻中不同实体之间的关系作为最后新闻特征表示的知识特征,并且采用注意力模块关注重要的单词。如图 1右侧所示,从历史新闻点击行为和交易行为(具体为持仓股票信息和自选股票信息两类)挖掘用户潜在的兴趣点,得到用户行为特征,最后利用新闻文本特征和用户行为特征,学习并预测用户对新闻的点击概率。

2.2 知识提取

对于每篇新闻首先根据金融知识图谱$ \mathcal{G} $识别新闻中出现的各类实体,根据不同的关系$ {r}_{i} $构造其相关的实体$ \boldsymbol{e} $对应的上下文实体集合$ \mathrm{c}\mathrm{o}\mathrm{n}\mathrm{t}\mathrm{e}\mathrm{x}\mathrm{t}\left(\boldsymbol{e}\right) $

$ {C}_{\mathrm{c}\mathrm{o}\mathrm{n}\mathrm{t}\mathrm{e}\mathrm{x}\mathrm{t}\left(e\right)}=\left\{{\boldsymbol{e}}_{i}\right|(\boldsymbol{e}, {r}_{i}, {\boldsymbol{e}}_{i})\in G\mathrm{o}\mathrm{r}\mathrm{ }({\boldsymbol{e}}_{i}, {r}_{i}, \boldsymbol{e})\in G\} $

以“格力电器”为例,在知识图谱$ \mathcal{G} $中考察与它有关的节点和关系:如“格力电器-所属概念-大消费”、“格力电器-上游供应商-信力科技”等关系,构造“格力电器”在$ \mathcal{G} $中对应的上下文实体集合。“格力电器”在“上游供应商”关系下对应的上下文实体集合就是{“华英包装”、“信力科技”、“天意有福”}。对实体$ e $在关系$ {r}_{i} $下对应的上下文实体集合$ \mathrm{c}\mathrm{o}\mathrm{n}\mathrm{t}\mathrm{e}\mathrm{x}\mathrm{t}\left(\boldsymbol{e}\right) $中的所有实体特征向量取平均,作为其在这种关系下的特征表示:

$ \stackrel{-}{\boldsymbol{e}}=\frac{1}{\left|{C}_{\mathrm{c}\mathrm{o}\mathrm{n}\mathrm{t}\mathrm{e}\mathrm{x}\mathrm{t}\left(e\right)}\right|}\sum\limits_{{e}_{i}\in {C}_{\mathrm{c}\mathrm{o}\mathrm{n}\mathrm{t}\mathrm{e}\mathrm{x}\mathrm{t}\left(e\right)}}{\boldsymbol{e}}_{i} $

其中,$ {\boldsymbol{e}}_{i} $$ \mathrm{c}\mathrm{o}\mathrm{n}\mathrm{t}\mathrm{e}\mathrm{x}\mathrm{t}\left(e\right) $集合中的成员$ {\boldsymbol{e}}_{i} $根据知识表示学习TransX模型得到的相应实体特征向量。

TransX是知识表示学习领域的代表性模型,包括TansR[5]、TransE[6]、TransH[7]和TransD[8]等。在TranX模型中,对于每一个三元组$ (\boldsymbol{h}, \boldsymbol{r}, \boldsymbol{t}) $都有一组与之对应的$ d $维向量表示($ \boldsymbol{h}, \boldsymbol{r}, \boldsymbol{t}\in {\mathbb{R}}^{d} $),且有近似关系$ \boldsymbol{h}+\boldsymbol{r}\approx \boldsymbol{t} $成立[6]。定义三元组的损失函数为$ {f}_{r}(\boldsymbol{h}, \boldsymbol{t}) $,正确的三元组关系对应的损失应较小[6]

$ {f}_{r}(\boldsymbol{h}, \boldsymbol{t})=\Vert \boldsymbol{h}+\boldsymbol{r}-\boldsymbol{t}{\Vert }_{2}^{2} $

考虑到现实中头尾实体存在差异,在模型中采用TransD[8]模型分别将头实体和尾实体投影到两个独立的向量空间,然后再考虑三元组的损失函数。

为使模型能更准确地区分正确的三元组和错误的三元组,在训练时都采用带间距的损失函数[6-8]

$ L=\sum\limits_{(\boldsymbol{h}, \boldsymbol{r}, \boldsymbol{t})\in \Delta }\sum\limits_{(\boldsymbol{h}\mathrm{\text{'}}, \boldsymbol{r}, \boldsymbol{t}\mathrm{\text{'}})\in \Delta \mathrm{\text{'}}}\mathrm{m}\mathrm{a}\mathrm{x}(0, {f}_{r}(\boldsymbol{h}, \boldsymbol{t})+\gamma -{f}_{r}(\boldsymbol{h}\mathrm{\text{'}}, \boldsymbol{t}\mathrm{\text{'}}\left)\right) $

其中,$ \gamma $是设定的间距参数,ΔΔ$ \mathrm{\text{'}} $分别是正确的三元组(即存在于数据集中的三元组)的集合和错误的三元组(即数据集中不存在的三元组)的集合。

2.3 基于知识的卷积神经网络

对于一个由$ n $个词组成的文本,首先通过预训练好的$ d $维词向量,把$ n $个词横向拼接起来得到文本的矩阵表示$ {\boldsymbol{x}}_{1:n}\in {\mathbb{R}}^{d\times n} $

$ {\boldsymbol{x}}_{1:n}={\boldsymbol{x}}_{1}\oplus {\boldsymbol{x}}_{2}\oplus \cdots \oplus {\boldsymbol{x}}_{n} $

其中,$ {\boldsymbol{x}}_{i}\in {\mathbb{R}}^{n} $表示第$ i $个词$ {\boldsymbol{x}}_{i} $对应的$ d $维词向量表示,$ \oplus $表示向量的横向拼接操作。在此基础上定义一个窗口大小为$ h $的卷积核$ \boldsymbol{w}\in {\mathbb{R}}^{d\times h} $操作,通过学习$ h $个相邻词的词向量得到输入文本的新特征表示[10]。例如通过卷积核$ \boldsymbol{w} $$ {\boldsymbol{x}}_{i:i+h-1} $$ h $个词对应的矩阵表示得到卷积操作后的特征$ {c}_{i} $

$ {c}_{i}=f(\boldsymbol{w}\odot {\boldsymbol{x}}_{i:i+h-1}+b) $

其中,$ b\in \mathbb{R} $是偏置量,$ f $是一个非线性激活函数,$ \odot $是逐元素积。一个卷积核会作用在所有可能的窗口序列上$ \{{\boldsymbol{x}}_{1:h}, {\boldsymbol{x}}_{2:h+1}, \cdots , {\boldsymbol{x}}_{n-h+1:n}\} $来产生新的特征[10]

$ \boldsymbol{c}=[{c}_{1}, {c}_{2}, \cdots , {c}_{n-h+1}]\in {\mathbb{R}}^{n-h+1} $

其中,$ [\cdot ] $表示由若干标量拼接而成的向量,进行池化操作[19]得到最大特征$ {\widehat{c}}_{\boldsymbol{w}}=\mathrm{m}\mathrm{a}\mathrm{x}\left\{\boldsymbol{c}\right\} $作为这个卷积核的输出。

图 1左侧所示的新闻标题“交通银行2018年第一季度利润增速放缓总体形势保持上升趋势”,进行分词后查找预训练词向量得到词嵌入表示矩阵。分别用3个窗口为3的卷积核和4个窗口为4的卷积核在输入的词嵌入表示矩阵上进行卷积操作,通过池化得到7维的向量表示,最后根据全连接层得到输入句子相应的新特征表示。

$ {\boldsymbol{w}}_{1:n}=[{\boldsymbol{w}}_{1}, {\boldsymbol{w}}_{2}, \cdots , {\boldsymbol{w}}_{n}] $表示输入的原始新闻文本,$ {\boldsymbol{w}}_{1:n}\in {\mathbb{R}}^{d\times n}={\boldsymbol{w}}_{1}\oplus {\boldsymbol{w}}_{2}\oplus \cdots \oplus {\boldsymbol{w}}_{n} $为相应的词嵌入表示矩阵。经过2.2节中所描述的知识提取操作后,在知识图谱$ \mathcal{G} $中有对应实体的词$ {w}_{i} $对应着一个实体表示$ {\boldsymbol{e}}_{i} $和一个实体上下文表示$ {\stackrel{-}{\boldsymbol{e}}}_{i} $,而对于知识图谱$ \mathcal{G} $中没出现的实体用零向量补全。此时,类似$ {\boldsymbol{w}}_{1:n} $这一词嵌入表示矩阵,构造两个矩阵,即实体表示矩阵$ {\boldsymbol{e}}_{1:n} $和实体上下文表示矩阵$ {\stackrel{-}{\boldsymbol{e}}}_{1:n} $

$ {\boldsymbol{e}}_{1:n}\in {\mathbb{R}}^{d\times n}={\boldsymbol{e}}_{1}\oplus {\boldsymbol{e}}_{2}\oplus \cdots \oplus {\boldsymbol{e}}_{n} $
$ {\stackrel{-}{\boldsymbol{e}}}_{1:n}\in {\mathbb{R}}^{d\times n}={\stackrel{-}{\boldsymbol{e}}}_{1}\oplus {\stackrel{-}{\boldsymbol{e}}}_{2}\oplus \cdots \oplus {\stackrel{-}{\boldsymbol{e}}}_{n} $

为利用金融知识图谱中实体的各种关系信息,首先对实体表示、实体上下文表示做一个线性变换$ g $$ g\left(\boldsymbol{e}\right)=\boldsymbol{M}\boldsymbol{e} $。如图 1左侧所示,最终组成的新闻特征表示为一个具有3个维度的张量$ \boldsymbol{W}\in {\mathbb{R}}^{3\times d\times n} $

$ \begin{array}{l}\boldsymbol{W}=[{\boldsymbol{w}}_{1}\oplus {\boldsymbol{w}}_{2}\oplus \cdots \oplus {\boldsymbol{w}}_{n}, g({\boldsymbol{e}}_{1})\oplus g({\boldsymbol{e}}_{2})\oplus \cdots \oplus g({\boldsymbol{e}}_{n}), \\ g\left({\stackrel{-}{\boldsymbol{e}}}_{1}\right)\oplus g\left({\stackrel{-}{\boldsymbol{e}}}_{2}\right)\oplus \cdots \oplus g\left({\stackrel{-}{\boldsymbol{e}}}_{n}\right)]\end{array} $

与文献[10]卷积核直接作用在词嵌入表示上不同,KHA-CNN同时将卷积核作用在实体表示以及实体上下文表示上,即卷积核$ \boldsymbol{k} $除了对应的$ d $维宽度、$ h $维长度外,还具有一个3维的深度,即$ \boldsymbol{k}\in {\mathbb{R}}^{3\times d\times h} $。接着在卷积核$ {\boldsymbol{k}}_{j} $的作用下进行卷积操作,得到每次卷积结果为:

$ {c}_{i}^{{\boldsymbol{k}}_{j}}=f({\boldsymbol{k}}_{j}\odot {\boldsymbol{W}}_{i:i+h-1}+b) $

通过一个时间上的最大池化,可以得到该卷积核作用下的最终特征:

$ {\tilde{c}}^{{\boldsymbol{k}}_{j}}=\mathrm{m}\mathrm{a}\mathrm{x}\{{c}_{1}^{{\boldsymbol{k}}_{j}}, {c}_{2}^{{\boldsymbol{k}}_{j}}, \cdots , {c}_{n-h+1}^{{\boldsymbol{k}}_{j}}\} $

$ m $个卷积核的作用下,最终可以得到这条新闻的基于知识的特征表示:

$ {\boldsymbol{e}}^{t}=[{\tilde{c}}^{{\boldsymbol{k}}_{1}}, {\tilde{c}}^{{\boldsymbol{k}}_{2}}, \cdots , {\tilde{c}}^{{\boldsymbol{k}}_{m}}] $
2.4 词级注意力模块

新闻标题是对新闻文本的概括性描述,对于用户是否点击该条新闻至关重要,为有效地学习标题的特征,本文采用词级注意力机制[20]对新闻特征进行处理。假设输入的新闻$ t $的标题$ {\boldsymbol{w}}_{1:n} $包括$ n $个单词:

$ {\boldsymbol{w}}_{1:n}=[{w}_{1}, {w}_{2}, \cdots , {w}_{n}] $

首先使用一个双向LSTM[21]作为输入词的编码器,然后输入词对应的词向量,得到编码器输出的隐状态表示$ {\boldsymbol{h}}_{i}^{t} $

$ {\overrightarrow{\boldsymbol{h}}}_{i}^{t}=\mathrm{L}\mathrm{S}\mathrm{T}\mathrm{M}\left({\boldsymbol{w}}_{i}\right) $
$ {\overleftarrow{\boldsymbol{h}}}_{i}^{t}=\mathrm{L}\mathrm{S}\mathrm{T}\mathrm{M}\left({\boldsymbol{w}}_{i}\right) $
$ {\boldsymbol{h}}_{i}^{t}={\overrightarrow{\boldsymbol{h}}}_{i}^{t}\Vert {\overleftarrow{\boldsymbol{h}}}_{i}^{t} $

其中,$ \Vert $表示两个向量拼接为一个向量。

得到每个词的隐状态$ {\boldsymbol{h}}_{i}^{t} $后,根据上文所述的词级注意力机制聚合标题中每个单词的特征,得到标题的整体加权特征表示$ {\boldsymbol{s}}^{t} $

$ {\boldsymbol{u}}_{i}^{t}=\mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h}({\boldsymbol{W}}_{w}{\boldsymbol{h}}_{i}^{t}+{\boldsymbol{b}}_{w}) $
$ {\alpha }_{i}^{t}=\frac{\mathrm{e}\mathrm{x}\mathrm{p}\left(\right({\boldsymbol{u}}_{i}^{t}{)}^{\mathrm{T}}{\boldsymbol{u}}_{w})}{\sum\limits_{j}\mathrm{e}\mathrm{x}\mathrm{p}\left(\right({\boldsymbol{u}}_{j}^{t}{)}^{\mathrm{T}}{\boldsymbol{u}}_{w})} $
$ {\boldsymbol{s}}^{t}=\sum\limits_{i}{\alpha }_{i}^{t}{\boldsymbol{h}}_{i}^{t} $

其中,$ {\boldsymbol{u}}_{w} $是注意力机制中的权重向量,$ {\boldsymbol{W}}_{w} $是注意力机制中的线性变换参数矩阵,$ {b}_{w} $是该线性变换的偏置量,这3个参数是模型中可学习的参数。

2.5 基于用户行为的特征学习

收集用户的“历史新闻点击数据”、“股票持仓数据”和“用户自选股票”作为用户行为数据。假设用户$ u $拥有$ N $只持仓股票信息,拥有$ M $只自选股票信息,$ K $条历史新闻点击数据,可分别表示成:

$ \mathrm{H}\mathrm{o}\mathrm{l}\mathrm{d}\mathrm{S}\mathrm{t}\mathrm{o}\mathrm{c}{\mathrm{k}}_{u}=\{\mathrm{s}\mathrm{t}\mathrm{o}\mathrm{c}{\mathrm{k}}_{1}, \mathrm{s}\mathrm{t}\mathrm{o}\mathrm{c}{\mathrm{k}}_{2}, \cdots , \mathrm{s}\mathrm{t}\mathrm{o}\mathrm{c}{\mathrm{k}}_{N}\} $
$ \begin{array}{l}\mathrm{O}\mathrm{p}\mathrm{t}\mathrm{i}\mathrm{o}\mathrm{n}\mathrm{S}\mathrm{t}\mathrm{o}\mathrm{c}{\mathrm{k}}_{u}=\\ \{\mathrm{o}\mathrm{p}\mathrm{t}\mathrm{i}\mathrm{o}\mathrm{n}\mathrm{s}\mathrm{t}\mathrm{o}\mathrm{c}{\mathrm{k}}_{1}\mathrm{ }, \mathrm{o}\mathrm{p}\mathrm{t}\mathrm{i}\mathrm{o}\mathrm{n}\mathrm{s}\mathrm{t}\mathrm{o}\mathrm{c}{\mathrm{k}}_{2}\mathrm{ }, \cdots , \mathrm{o}\mathrm{p}\mathrm{t}\mathrm{i}\mathrm{o}\mathrm{n}\mathrm{s}\mathrm{t}\mathrm{o}\mathrm{c}{\mathrm{k}}_{M}\}\end{array} $
$ \mathrm{C}\mathrm{l}\mathrm{i}\mathrm{c}\mathrm{k}\mathrm{e}\mathrm{d}\mathrm{N}\mathrm{e}\mathrm{w}{\mathrm{s}}_{u}=\{\mathrm{n}\mathrm{e}\mathrm{w}{\mathrm{s}}_{1}, \mathrm{n}\mathrm{e}\mathrm{w}{\mathrm{s}}_{2}, \cdots , \mathrm{n}\mathrm{e}\mathrm{w}{\mathrm{s}}_{K}\} $

用户的个性化特征(F)表示成“股票持仓特征”和“历史新闻点击特征”的平均值:

$ {F}_{u}=\mathrm{a}\mathrm{v}\mathrm{g}({F}_{\mathrm{h}\mathrm{o}\mathrm{l}\mathrm{d}\mathrm{s}\mathrm{t}\mathrm{o}\mathrm{c}\mathrm{k}\mathrm{s}}+{F}_{\mathrm{o}\mathrm{p}\mathrm{t}\mathrm{i}\mathrm{o}\mathrm{n}\mathrm{s}\mathrm{t}\mathrm{o}\mathrm{c}\mathrm{k}\mathrm{s}}+{F}_{\mathrm{n}\mathrm{e}\mathrm{w}\mathrm{s}}) $

在用户持仓股票和用户自选股票特征中引入金融知识图谱:将股票作为每一个目标实体节点,把金融知识图谱中和目标节点相关的点($ K $-阶邻居)都作为它的上下文。如上文基于知识的卷积神经网络所述,学习融合目标节点相关邻居的特征信息来丰富目标节点特征:

$ {F}_{\mathrm{h}\mathrm{o}\mathrm{l}\mathrm{d}\mathrm{s}\mathrm{t}\mathrm{o}\mathrm{c}\mathrm{k}\mathrm{s}/\mathrm{o}\mathrm{p}\mathrm{t}\mathrm{i}\mathrm{o}\mathrm{n}\mathrm{s}\mathrm{t}\mathrm{o}\mathrm{c}\mathrm{k}\mathrm{s}}={F}_{\mathrm{n}\mathrm{o}\mathrm{d}\mathrm{e}\mathrm{s}}+{F}_{\mathrm{c}\mathrm{o}\mathrm{n}\mathrm{t}\mathrm{e}\mathrm{x}\mathrm{t}} $
3 数据与实验分析

本节通过实验验证KHA-CNN模型的有效性,分析讨论实验中的场景数据、相关的参数设置。

3.1 数据来源

KHA-CNN使用的数据主要有金融知识图谱数据和用户行为相关的数据。金融知识图谱数据由国泰君安公司提供,而用户行为相关的数据来自于国泰君安的兼具资讯和投资功能的手机软件“君弘APP”,分为新闻数据、用户数据和埋点数据3个方面,时间区间为2018年11月6日—2018年12月13日。其中,11月6日—12月6日数据作为训练数据,12月7日—12月13日的数据作为测试数据。基本信息如表 1所示。

下载CSV 表 1 测试数据基本信息 Table 1 Basic information of test data
3.2 新闻数据分析

通过新闻数据分析获取到新闻数据的ID、标题、摘要、文本内容及曝光时间等基本信息,新闻数据格式如图 2所示。

Download:
图 2 新闻数据格式示意图 Fig. 2 Schematic diagram of news data format

“时效性”是金融领域新闻的重要特征之一,用户一般只关心最新时刻发生的事件。如图 3所示,把新闻第一次与最后一次被点击的时间间隔作为新闻的生存周期,统计所有新闻生存周期。可以看出,多数新闻生命周期只有1天,即只在新闻发布的当天被用户阅读,少量新闻生存周期为2天~5天,而生存周期大于5天的新闻极少。

Download:
图 3 新闻生存周期统计 Fig. 3 Statistics of news life cycle
3.3 埋点数据分析

用户新闻阅读行为来自APP中新闻资讯页面埋点数据。模型所关心的主要为资讯曝光和资讯阅读两种埋点数据。资讯曝光表示资讯被推送到列表中,资讯阅读表示用户点击并阅读了该资讯。在模型训练时,曝光且阅读的资讯被认为是正样本,而曝光但未被阅读的资讯则被用作负样本。类似地,测试集中用于预测的正例也是曝光且阅读的资讯。由于埋点数据中90%以上的数据都是资讯曝光数据,远超资讯阅读的数量,为维持正负样本的平衡性,对于每个正样本,随机采样1个负样本构造数据集。

3.4 用户数据分析

用户数据分析主要存在两类用户,即手机注册用户和资金账户用户,其中资金账户用户除新闻阅读行为外,还具有自选股票和持仓股票的数据。

训练集存在新闻阅读行为的有43 608个资金账户用户和24 517个手机注册用户,资金账户阅读数为3 983 447个,手机注册用户交互阅读数为982 170个,大部分新闻阅读交互记录来自于手机注册用户。

3.5 实验设置

本文采用的对比算法主要有如下4种:

1) 随机森林(Random Forest)[22]算法。该算法是一种基于分类树的集成方法,被广泛地应用于广告点击率(Click-Through Rate,CTR)预测及推荐中。在3.2节、3.4节数据分析的基础上,选择新闻ID、新闻标题、新闻首发时间、新闻曝光时间、新闻近1天~2天阅读数、用户ID、用户类型、用户近1天~3天阅读数、用户自选股特征和用户持仓股特征等作为模型的输入。

2) DKN[1]算法。该算法采用了知识图谱和CNN来建模新闻特征,但没有用户行为特征。

3) ATRank-like算法。该算法使用了用户行为特征,但未使用知识图谱,是针对金融新闻对ATRank算法[13]的一个变种版本。因为新闻生存周期较短,用户较少重复点击同一新闻,所以将点击行为序列看作集合,不采用原算法中的时序编码。针对被点击新闻本身的特征,还增加了基于词嵌入表示的卷积神经网络以得到点击的新闻的特征表示。

4) KHA-CNN算法。本文提出算法既使用了知识图谱,又考虑了用户的行为特征。

3.6 实验结果

不同算法的F1及AUC值如表 2所示。

下载CSV 表 2 KHA-CNN及基准算法实验结果 Table 2 Experimental results of KHA-CNN and benchmark algorithms

表 2可以看出:

1) 与Random Forest算法相比,KHA-CNN算法在F1值和AUC两个评价指标上都取得了更好的结果,且各变种算法也均能得到比Random Forest算法更优的结果。这表明KHA-CNN算法基于金融知识图谱,同时考虑了新闻的文本特征和用户行为特征,可以有效提升个性化推荐的性能。

2) 与DKN算法相比,KHA-CNN算法取得了较优的结果,这表明基于用户行为数据用户画像能够提升新闻个性化推荐的性能。

3) 与ATRank-like算法相比,KHA-CNN算法表现更好,进一步表明知识图谱在个性化推荐中的重要性。

3.7 参数比较

本文通过对比不同TransX算法对KHA-CNN性能的影响,具体使用的TranX算法有TransE、TransH、TransR与TransD 4种。本文默认采用的TransX算法为TransD,实验结果如表 3所示。

下载CSV 表 3 不同TransX算法识别实体时的实验结果 Table 3 Experimental results when different TransX algorithms recognize entities

表 3可以看出,算法基于TransD的嵌入取得了最好的实验结果,因为该算法能够更好地捕获图谱中实体与实体间、实体与关系间的非线性关联。

3.8 消融实验分析

本文主要从CNN维度和注意力机制两个方面进行实验。

1) CNN维度的影响分析

考虑不同CNN维度时的影响,主要包括:

(1) KHA-CNN-w/o-context-emb.,采用词语嵌入表示和实体嵌入表示,不采用实体上下文表示。

(2) KHA-CNN-w/o-entity-emb.,采用词语嵌入表示和实体上下文表示,不采用实体嵌入表示。在默认的KHA-CNN中,词语嵌入表示、实体嵌入表示和实体上下文表示都被采用,实验结果如表 4所示。

下载CSV 表 4 不同CNN维度识别实体时的实验结果 Table 4 Experimental results when different CNN dimensions recognize entities

表 4可以看出,在不使用实体上下文表示和不使用实体嵌入表示时,与KHA-CNN相比,F1值分别下降了1.8个百分点、3.8个百分点,这表明了在KHA-CNN算法中使用基于知识的卷积神经网络引入知识图谱的有效性。

2) 词级注意力机制的影响分析

不采用词级注意力机制时的变种算法为KHA-CNN-w/o-attn.,实验结果如表 5所示。

下载CSV 表 5 KHA-CNN与KHA-CNN-w/o-attn.算法的实验结果 Table 5 Experimental results of KHA-CNN and KHA-CNN-w/o-attn.algorithms

表 5可以看出,与KHA-CNN-w/o-attn.算法相比,词级注意力机制的F1值和AUC值分别提高1.1个百分点和0.9个百分点。

4 结束语

本文提出一种基于知识图谱的金融新闻推荐算法KHA-CNN,通过知识表示学习得到知识图谱中实体的向量表示,并学习新闻上下文中实体的关系特征,使用层次注意力模型学习新闻标题中重要的上下文信息,同时通过用户的行为特征实现个性化的新闻推荐。实验结果表明,KHA-CNN在F1和AUC这两项指标上都有较好的性能表现。

参考文献
[1]
WANG Hongwei, ZHANG Fuzheng, XIE Xing, et al. DKN: deep knowledge-aware network for news recom-mendation[C]//Proceedings of IEEE World Wide Web Conference. Washington D.C., USA: IEEE Press, 2018: 1835-1844.
[2]
ZHOU Guorui, ZHU Xiaoqian, SONG Chengrui, et al. Deep interest network for click-through rate prediction[C]//Proceedings of the 24th ACM SIGKDDʼ18. New York, USA: ACM Press, 2018: 1059-1068.
[3]
ZHAI Shuangfei, CHANG Kenghao, ZHANG Ruofei, et al. DeepIntent: learning attentions for online advertising with recurrent neural networks[C]//Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York, USA: ACM Press, 2016: 1295-1304.
[4]
XIONG C, POWER R, CALLAN J. Explicit semantic ranking for academic search via knowledge graph embedding[C]//Proceedings of the 26th International Conference on World Wide Web. Washington D.C., USA: IEEE Press, 2017: 1271-1279.
[5]
LIN Yankai, LIU Zhiyuan, SUN Maosong, et al. Learning entity and relation embedding for knowledge graph completion[C]//Proceedings of the 29th AAAI Conference on Artificial Intelligence. [S.1.]: AAAI Press, 2015: 576-589.
[6]
BORDES A, USUNIER N, GARCIA-DURAN A, et al. Translating embedding for modeling multi-relational data[C]//Proceedings of NIPSʼ13. Cambridge, USA: MIT Press, 2013: 2787-2795.
[7]
WANG Zhen, ZHANG Jianfeng, FENG Jianlin, et al. Knowledge graph embedding by translating on hyperplanes[C]//Proceedings of the 28th AAAI Conference on Artificial Intelligence. [S.1.]: AAAI Press, 2014: 465-478.
[8]
JI Guoliang, HE Shizhu, XU Liheng, et al. Knowledge graph embedding via dynamic mapping matrix[C]//Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics and the 7th International Joint Conference on Natural Language Processing. Washington D.C., USA: IEEE Press, 2015: 687-696.
[9]
CHEN Wenjie, WEN Yi, ZHANG Xin, et al. An improved TransE-based method for knowledge graph representation[J]. Computer Engineering, 2020, 46(5): 63-69, 77. (in Chinese)
陈文杰, 文奕, 张鑫, 等. 一种改进的基于TransE知识图谱表示方法[J]. 计算机工程, 2020, 46(5): 63-69, 77.
[10]
KIM Y. Convolutional neural networks for sentence classification[EB/OL]. [2020-01-10]. https://arxiv.org/pdf/1408.5882.
[11]
PAN Deyu, SONG Yurong, SONG Bo. New microblog rumor detection model based on attention mechanism[J]. Journal of Chinese Computer Systems, 2021, 42(2): 348-353. (in Chinese)
潘德宇, 宋玉蓉, 宋波. 一种新的考虑注意力机制的微博谣言检测模型[J]. 小型微型计算机系统, 2021, 42(2): 348-353. DOI:10.3969/j.issn.1000-1220.2021.02.021
[12]
WAN Meihan, XIONG Bin, ZHU Yangyong. Gene function prediction using hierarchical attention-based heterogeneous network representation learning[J]. Computer Engineering, 2020, 46(7): 43-49.
万美含, 熊贇, 朱扬勇. 基于异质网络层次注意力机制的基因功能预测[J]. 计算机工程, 2020, 46(7): 43-49.
[13]
ZHOU Chang, BAI Jinze, SONG Junshuai, et al. ATRank: an attention-based user behavior modeling framework for recommendation[C]//Proceedings of the 32nd AAAI Conference on Artificial Intelligence. [S.1.]: AAAI Press, 2018: 159-171.
[14]
MA Mingyuan, NA Sen, XU Cong, et al. The graph-based broad behavior-aware recommendation system for interactive news[EB/OL]. [2020-01-10]. https://arxiv.org/abs/1812.00002.
[15]
QIN Chuan, ZHU Hengshu, ZHU Chen, et al. DuerQuiz: a personalized question recommender system for intelligent job interview[C]//Proceedings of ACM SIGKDDʼ19. New York, USA: ACM Press, 2019: 2165-2173.
[16]
SHI Chuan, ZHANG Zhiqing, LUO Ping, et al. Semantic path based personalized recommendation on weighted heterogeneous information networks[C]//Proceedings of the 24th ACM International on Conference on Information and Knowledge Management. New York, USA: ACM Press, 2015: 453-462.
[17]
CATHERINE R, COHEN W. Personalized recommenda-tions using knowledge graphs: a probabilistic logic pro-gramming approach[C]//Proceedings of the 10th ACM Conference on Recommender Systems. New York, USA: ACM Press, 2016: 325-332.
[18]
SHA Xiao, SUN Zhu, ZHANG Jie.Attentive knowledge graph embedding for personalized recommendation[EB/OL].[2020-01-10]. https://arxiv.org/pdf/1910.08288.
[19]
COLLOBERT R, WESTON J, BOTTOU L, et al. Natural language processing (almost) from scratch[J]. Journal of Machine Learning Research, 2011, 12(8): 2493-2537.
[20]
VASWANI A, SHAZEER N, PARMAR N, et al.Attention is all you need[EB/OL].[2020-01-10]. https://arxiv.org/abs/1706.03762.
[21]
HUANG Zhiheng, XU Wei, YU Kai.Bidirectional LSTM-CRF models for sequence tagging[EB/OL].[2020-01-10]. https://arxiv.org/pdf/1508.01991.
[22]
RENDLE S. Factorization machines with LibFM[J]. ACM Transactions on Intelligent Systems and Technology, 2012, 3(3): 57.