一种基于卷积神经网络的用户属性推断方法和装置与流程

文档序号:15350148发布日期:2018-09-04 23:14阅读:570来源:国知局
本发明属于社交网络中用户缺失属性推断
技术领域
:,特别是多值属性的推断,具体涉及一种基于卷积神经网络的用户属性推断方法和装置,具有较高的准确度。
背景技术
::随着互联网技术的发展,在线社交产品,如微博、知乎和facebook等成为用户的日常生活的必需品。用户在使用这些产品的同时,产生了大量的信息,包括用户的属性信息、发文内容和好友关系,这些信息为企业、科研人员等准确刻画用户画像提供了数据支持。与此同时为了保护用户的隐私,在线社交产品为用户提供了细粒度的隐私设置,这就导致了用户的属性信息是很难直接获取的。据相关资料统计,用户的属性信息缺失率高达70%,大量信息的缺失成为准确刻画用户画像所面临的最大问题,因此,用户属性推断技术在工业界和科研界引起了广泛的关注。传统的方法可以分为两大类——基于分类的方法和基于标签传播的方法。前者的理论基础是你属于什么,通常是通过计算标记节点与其邻居节点的相似性来预测未知属性的。其中相似度的计算主要取决于具体所采用的方法,经典的分类算法有svm、贝叶斯等。此外一些学者提出了更加符合实际情况的相似性计算方法,如n.z.gong于2016年发表的《youarewhoyouknowandhowyoubehave:attributeinferenceattacksviausers’socialfriendsandbehaviors》文章中就提出了一种更好的计算相似性的方法,取得了很好的效果。但是一般来说,svm、贝叶斯等模型在预测性别,年龄等属性上有良好表现,但对预测职业,兴趣等问题上的表现差强人意。而基于标签传播的方法是利用了社交网络的同质性,即两个具有好友关系的用户具有相似属性的可能性更大。基于这一理论基础,属性值就可以通过边从已知属性信息的节点传播给未知属性信息的节点,从而达到准确预测属性值的目的。如2010年mingzhenmo提出的《exploitofonlinesocialnetworkswithsemi-supervisedlearning》一文中就是用标记传播的方法来预测用户的未知属性的,取得了很好的效果。但是,在实际的操作中,这一方法需要大量的时间和空间开销来计算由社交网络所构成的图的邻接矩阵。根据以上介绍可知,目前国内外对用户缺失属性填充有很多研究,主要分为基于分类和基于标记传播的。基于分类的方法的局限性在于相似度的计算需要全面精确,并且分类模型精度要高,数据特征的构建要全面,但目前的方法中虽然机器学习模型的精度很高,但大部分是针对于二分类问题,且在社交网络中面临着无法获取多维属性构建用户的全面的特征向量等问题,从而导致预测效果较差,尤其是多值属性的预测。而基于标记传播的属性预测算法则需要花费大量的时间去计算图的邻接矩阵,而且算法本身对标记节点的好友的重要程度一视同仁,这本身是不符合社交网络的特性的,所以在真实数据上的效果也是差强人意的。此外,这两类方法在预测标记节点未知属性的时候,要根据特定的属性进行模型的训练,比如预测性别属性的时候,要根据用户的属性信息建立一个对应的模型,当预测职业属性时,之前训练的模型则不能直接使用,还需要训练新的模型才能达到较好的预测效果。技术实现要素:本发明所要解决的技术问题是提供高效、准确的用户缺失属性推断技术,用以更好的刻画用户画像。本发明采用的技术方案如下:一种基于卷积神经网络的用户属性推断方法,包括以下步骤:1)根据用户节点的属性和好友关系,建立自中心网络;2)采用卷积神经网络提取所述自中心网络中用户节点的属性信息和好友关系中所包含的隐藏信息,利用所述隐藏信息推断出用户的缺失属性。进一步地,所述自中心网络采用五元组g′={v′,′,′,′,}来表示,其中v′包含自中心网络中节点信息,集合e′包含自中心网络中所有节点间的链接关系,集合a′和′分别表示节点的属性信息和行为信息,矩阵l∈v′×n包含自中心节点和它的好友的属性信息和行为信息,是属性和行为数据维度的总和。进一步地,步骤1)首先对用户在网络上的属性信息进行过滤,然后再建立所述自中心网络;所述过滤包括:a)过滤掉除年龄之外其他属性的所有非汉字的词组。b)过滤掉属性信息缺失超过设定的阈值的节点。进一步地,所述卷积神经网络包括输入层、投影层、卷积层、池化层、全连接层和输出层,所述投影层将用户的属性信息和行为信息转化为向量。进一步地,所述投影层将用户的属性信息和行为信息转化为向量,对属于同一职业或专业的词语采用以下规则:i.创建hash表,以专业或职业的首字作为关键字,将所有以该字为首字的属性组成集合作为value;然后根据jara-winkler距离计算其他属性值与专业和职业词典中词语的相似性,并将相似度高的属性加入到集合value;ii.针对那些不在集合value中出现的属性值,运用word2vec训练出词向量,通过计算词向量间的距离,将相似性高的向量通过knn算法聚合在一起,并与词典中的词语通过id号进行关联,从而得到数字化向量。进一步地,所述卷积层采用训练好的权重矩阵和偏置与经过投影层后得到的特征矩阵做映射,并采用relu作为激活函数;所述池化层采用最大值池化来保留局部特征中最重要的信息;所述输出层采用softmax分类器利用权重矩阵和偏置的值为属性可能的取值进行打分,得分最高的属性值即为标记用户的缺失属性值。进一步地,针对好友关系无法直接获取或获取难度较大的社交网络,采用神经网络仅利用用户的属性信息对缺失的属性进行分类预测。进一步地,所述神经网络包括输入层、投影层、隐藏层和输出层;所述投影层将用户的属性信息和行为信息转化为向量;所述隐藏层是两个全连接层,第一个隐藏层含有n*n个神经元,n是用户的属性和行为数据的维度之和,第二个隐藏层丢掉一部分神经元以防止过拟合;所述输出层采用softmax分类器利用权重矩阵和偏置的值为属性可能的取值进行打分,得分最高的属性值即为标记用户的缺失属性值。一种基于卷积神经网络的用户属性推断装置,其包括:自中心网络构建模块,负责根据用户节点的属性和好友关系,建立自中心网络;用户属性推断模块,负责采用卷积神经网络提取所述自中心网络中用户节点的属性信息和好友关系中所包含的隐藏信息,利用所述隐藏信息推断出用户的缺失属性。进一步地,针对好友关系无法直接获取或获取难度较大的社交网络,所述用户属性推断模块采用神经网络仅利用用户的属性信息对缺失的属性进行分类预测。本发明所提出的基于卷积神经网络的用户属性推断算法与现有技术中的基于分类的方法是类似的,同样的将属性推断问题看成了一个分类问题。最大的不同之处是传统的分类方法会有定义一个相似度计算的公式,根据该公式计算出节点间的相似度并对未知属性可能的取值进行打分,从而选取得分高的属性值作为标记节点的未知属性值。但本发明基于卷积网络的属性预测算法——upe则是根据权重矩阵和偏置值计算出标记节点未知属性的可能值的得分,具体实现方法是通过大小不一的卷积核自动的抓取不同属性维度间潜在关系,然后根据这些关系和反向传播算法计算出属性的权重矩阵和偏置,再经过一个线性计算,就得出了未知属性每个可能取值的分数。通过权重矩阵和偏置去衡量相似度的方法可以很好的避免人为定义相似度函数的局限性,而且通过卷积核的卷积操作能够更好的表现出不同属性间以及不同的属性维度间的关系,这种关系是无法解释与衡量的,也是被传统的分类算法所忽略的。此外,这是卷积神经网络自提出以来第一次在属性推断问题上的尝试,并取得了很好的实验结果。此外,作为对upe算法例外情况的补充,ups所采用的神经网络的方法也是第一次被运用到属性推断问题中的。与现有技术的方法最大的不同之处在于,神经网络的方法更加的灵活高效,没有固定的神经网络层数和相似度函数,因此在处理某些社交网络中的复杂多变的数据问题时候表现出了很好的包容性,并且效果优于其他分类算法。通过在真实数据集上的测试与调优,构建了ups结构图。附图说明图1:用户全网络图和自中心网络图。图2:ups流程图。图3:upe流程图。图4:本发明与其它机器学习算法的实验结果对比图。具体实施方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步详细说明。本发明的基于卷积神经网络的用户缺失属性推断技术,包括以下步骤:步骤1,维度筛选:根据用户在网络上的属性信息,分析得出用户的属性主要有15维,包括用户名,性别,年龄,学校,专业,简介,职业,所在地等。为了更好的实现算法,首先对是属性信息进行了过滤,具体做法如下:1)过滤掉除年龄之外其他属性的所有非汉字的词组。年龄是用户属性中的一个重要维度,但除了年龄之外的其他属性的信息描述是由汉字构成的,若是由非汉字组成,不仅无法从中获取到有用的信息,还会对实验效果产生不好的影响,所以将这些信息过滤掉是为了更好的实现属性预测的算法。2)过滤掉属性信息缺失超过设定的阈值的节点。比如该阈值设定为50%,虽然本算法是为了解决属性缺失问题的,但是对于那些属性信息不足50%的节点,在没有相关发文内容等其他信息的情况下,是无法仅通过好友关系和已知的属性信息来进行有效的预测的。步骤2,词典构建和社交网络定义:基于我国高等院校专业学科设置和国家职业标准目录及中文简写词的相应命名规则分别构建专业和职业词典,并通过唯一的id号与词典相关联(词典中的每一个词语有一个id号);为提高算法的准确率,当辨别名词不在上述两个词典中时,根据jaro-winkler距离依次计算该词与词典中词的相似性,选取相似性最高的词作为特征。jaro-winkler距离是一种计算两个字符串之间相似度的方法,假设给定两个字符串s1和s2,则该两个字符串之间的距离为:其中m是匹配的字符数,t是换位的数目,|s1|、|s2|表示分别表示字符串s1和s2的字符数,即长度。所述换位是指字符之间移动或者交换,换位的数目是指移动或者交换的步数之和。为了更好的描述算法,提出了两种社交网络定义方法。一是由用户的属性信息构成的网络,称之为full-social-graph(全网络图)。另一种是由用户的属性信息和好友关系构成的网络,被称为ego-network(自中心网络)。定义1.full-social-graph一个完整的社交网络可以用一个四元组={v,a,b,f}来表示。其中是该社交网络中所有节点的集合并假设该网络中节点个数为m,集合和分别表示节点的属性信息和行为信息,如aij和bij分别表示节点vi的第j维属性值和行为值。定义包含用户在社交网络中的所有信息,f={f1,f2,…fi…,fm},其中fi=ai∪bi。所述行为信息是指发文内容、评论、点赞、转发等一系列在社交网络中的行为。定义2.ego-networkego-network,又称为自中心网络,是由自中心节点的属性和好友关系以及它的好友的属性信息构成,为了更好的描述用户的自中心网络,定义了一个五元组g′={v′,e′,a′,b′,l}来表示用户的自中心网络。其中v′是自中心网络中所有节点的集合,集合e′包含自中心网络中所有节点间链接关系。集合a′和b′的定义与full-social-graph类似,即分别表示节点的属性信息和行为信息,而矩阵l∈v′×n则包含着自中心节点和它的好友的属性信息和行为信息,其中是属性和行为数据维度的总和。用户的全网络图(full-social-graph)和自中心网络(ego-network)分别如图1所示,其中由节点v1、v2、v3和其间的连线所构成的网络就是用户v1的自中心网络(ego-network),图1中的所有节点和与之相关的所有属性信息就是社交网络中的用户全网络图(full-social-graph)。步骤3,基于神经网络的用户属性推断方法:针对诸如qq、微信等网络中好友关系无法直接获取或获取难度较大等问题,采用最普通的两层神经网络,仅利用用户的属性信息对缺失的属性进行分类预测。虽然大部分社交网络诸如知乎、facebook这些的好友关系是公开的,但是仍有一部分网络如qq、微信等的好友关系是加密的,这就使得好友关系的信息的获取的难度加大甚至无法直接获取到。为解决属性推断问题所面临的这一难题,本发明设计了一种基于神经网络的用户属性推断方法,称为ups。这个方法的理论基础是神经网络在自然语言处理问题的良好的表现,在自然语言处理中,神经网络算法通常是将每个句子作为特征向量的,同样的,本发明将由用户的属性和行为数据所构成的向量作为特征向量,并通过类似于自然语言处理中的word2vec方法将转化为数字向量,使其能够放入神经网络的模型中。与传统的用户缺失属性推断方法相比,神经网络的方法可以获得更高的准确率。基于用户属性信息的神经网络方法的流程图如图2所示,其中模型的第一层是为了获取每个用户的特征向量,第二层是将获取到的特征转化成数字向量,剩下的几层是传统的神经网络。首先,假设任何具有p层的前馈神经网络可以被看成p个任意的函数f的乘积,即:其中,是神经网络的每一层的输出,是整个神经网络的输入,其中i∈(1,n),n是网络中节点的个数。接下来详细的介绍图2中每一层神经网络。1)将用户向量f转化为特征向量(lookuptablelayer,投影层)在自然语言处理中,通常使用训练词向量的方法将每个单词转化成向量,同样的,本发明设计了一个投影层来完成将用户的属性信息和行为数据转化为向量的功能,主要是查找词典中是否有对应的词语。但是用户的职业等信息的描述可能并不唯一,如程序员可能填写成程序猿、程序媛等,学生的其他称呼有高中生、大学生、大一、大二等,属于同一职业或专业的词语具有以下规则:i.属于同一职业或专业的第一个字基本相同,如程序员、程序媛等。故首先创建hash表,以专业或职业词典的首字作为关键字key,之后将所有以该字为首字的属性组成集合作为value。然后根据jara-winkler距离计算其他属性值与词典中词语的相似性,并将相似度高的属性加入到集合value。jara-winkler的原理是如果两个字符串中开始的字符越相近,那么它们的相似性就越高。ii.属于同一职业或专业的词语的意思相近,如学生、高中生、大一等。故针对那些不在集合value中出现的属性值,可以运用google的word2vec训练出词向量,通过计算词向量间的距离(余弦距离),将相似性高的向量通过knn算法(k最近邻分类算法)聚合在一起,并与词典中的词语通过id号进行关联,从而达到数字化向量的目的。神经网络内的处理方法是透明的,所以概括来讲,对任意节点i的属性向量i,通过投影层得到的与之对应的数字化向量的表示i可以用下面的公式表示:其中ltf(·)表示上述的一系列的运算方法。2)隐藏层(hiddenlayer)图2所示的投影层后面的两个隐藏层是两个全连接层。其中第一个隐藏层含有n*n个神经元(n是用户的属性和行为数据的维度之和),然后在第二个隐藏层会丢掉一部分(通常是一半)的神经元,这样做的目的是可以防止过拟合。采用relu作为的激活函数,可以用下面的公式表示:除此之外,为了更快的得到神经网络训练过程的结果,在训练神经网络的过程中采用梯度下降的方法。3)输出层(softmaxclassifier)为了计算标记节点的缺失属性值,神经网络的输出层采用了一个softmax分类器(缺失属性填充问题可以看成一个分类问题)。在训练神经网络的过程中,主要是通过反向传播的方法计算出网络中的权重矩阵w和偏置b,当权重矩阵和偏置确定以后,softmax分类器利用权重矩阵和偏置的值,为属性可能的取值进行打分,而得分最高的属性值,就是标记用户的缺失属性值。最后,对于每个输入的向量fi,在基于用户属性而构建的神经网络中它的输出结果可以用下面的公式表示:步骤4:基于卷积神经网络的用户属性推断方法:为了使得推断的精度更高,利用卷积神经网络,设计不同的卷积核提取用户的属性信息和好友关系中所包含的隐藏信息,从而更加准确的推断出用户的缺失属性。对于那些好友关系是公开的社交网络,采用基于用户属性信息的神经网络方法会丢失大量的信息,导致预测结果的精度不是很高,而卷积神经网络可以捕获到用户的属性与链接关系间的潜在联系,利用这些潜在的关系能够达到更加精确的推断出用户缺失属性值的目的。这个算法的理论基础是卷积神经网络在图像识别问题的良好表现,由用户的自中心网络所构成的矩阵就像一幅幅存在于社交网络中的图片,能够很好的展示出用户之间的差异性,通过提取出这些差异性(特征),可以很好的对用户进行分类(属性推断)。类似于图像识别,首先应该把自中心网络矩阵转化为数字矩阵,才能放入卷积神经网络中。而自中心网络的矩阵处理方法类似于ups方法里面的投影层,但是采用了一种比较复杂的网络来训练数据和预测未知的属性值。基于卷积神经网络的用户属性推断方法,本发明称之为upe。upe的流程图如图3所示。其中第一层是投影层,与ups的投影层是一样的。在其之后的convolutionlayer即卷积层则包含了一些卷积操作,在这一层,采用了不同大小的卷积核来提取输入数据中的潜在特征。接下来是按照顺序对upe网络中的各个层的详细介绍。1)卷积层(convolutionlayer)首先,在upe网络中的输入层和投影层是和ups中的类似的,也就是说,由自中心节点i所构成的网络对应的矩阵i是ups的输入,而构成i的每个元素在经过了投影层后,就会变成与该元素所对应的数字,定义由i转化过来的数字特征矩阵为mli。mli就是convolutionlayer的最原始的输入向量。一般地,可以用公式来表示为:卷积操作实际上是可以被概括为是关于权重矩阵w和特征矩阵i中的元素间的一个线性操作,只不过这个线性操作与狭义的线性操作的概念有一些区别,它需要一个激活函数才能发挥它的作用,否则无法激活下一层的神经网络。所以,当特征矩阵i到卷积层后,会有一个训练好的权重矩阵w和偏置b和它做一个映射,这个映射可以用下面的公式来表示:而式中的relu是采用的激活函数。作为一个标准的映射层,卷积神经网络通常会提取到高维的特征,而这些高维的特征是怎样帮助网络去预测未知属性值的,那就要看看ups中剩下的几层的作用都是什么了。2)最大池化层(maxpoolinglayer)通过以上的分析,可以知道第一层卷积层的输出向量的大小取决于自中心节点的好友个数(矩阵的列数),但哪个好友对自中心节点的未知属性贡献最大,这就需要将由卷积神经网络抓取的局部特征(卷积核的大小决定了特征提取的范围)与全局特征进行组合后再判断。传统的卷积神经网络通常会在卷积层之后采用平均池化或者最大池化,但是平均池化在这种情况下不是很适用,因为在通常情况下,大部分好友的属性对于未知属性预测值并没有太大的影响,所以采用最大值池化就可以保留局部特征中最重要的信息,用公式表示为:其中是卷积层p-1的输出,这一层产生出的全局特征最终会被输出到接下来的卷积层或者全连接层。ups方法中剩下的全连接层和输出层是与upe方法的最后两层是类似的,在这里就不在重复的介绍了。在ups方法中,最终会通过softmax函数对属性每个可能的取值进行打分,分数高的就是要预测的未知的值,这一点是神经网络对解决分类问题传统的思路。本发明的关键点主要是:1、利用ego-network提出了一种基于卷积神经网络的用户属性预测算法——upe,极大的提升了标记节点缺失属性预测的准确率。卷积神经网络虽然在自然语言处理,计算机视觉等领域得到了很大的应用,但在社交网络尤其是属性推断问题中是第一次的尝试。2、针对部分社交网络中用户的属性信息无法获取,提出了一种基于多层神经网络的用户缺失属性预测算法——ups,对upe算法的例外情况进行了补充。3、根据社交网络的特性,提出了ego-network的定义;该定义与传统的ego-network的是有所差别的,它不仅包含了自中心节点的属性和好友关系以及好友的属性和好友间关系,还可以包含他们的行为和发文内容等信息。将这些行为信息进行处理并抽象成用户的一维特征是与以往的ego-network的定义是不同的。社交网络的数据因为涉及到个人的隐私,所以网络上公开的数据集几乎上是不存在的,本发明通过基于种子url的爬虫技术,爬取了知乎上22万用户包含了15维属性信息的数据集,这些属性信息分别包括用户名,用户id,性别,年龄,职业,专业,学校等。通过对数据的清洗,最终将去掉用户id和用户名的数据分别放入upe和ups中。此外,为了更好的验证本发明所提出的算法的在推断用户未知属性上的良好表现,选取了常用的机器学习算法如贝叶斯(nb)、逻辑回归(lr)、多数表决(mv)、基于图的半监督(gssl一种标记传播算法)等算法。实验结果如图4所示,其中的数值表示正确率。从图4可以看出,当预测标记用户的性别(gender)属性时,本文所提出的方法upe正确率可达79.11%,比传统的方法高了5到27个百分点,不仅如此,,同样是使用神经网络的方法,ups的正确率低于ups,这是因为upe是增加了关系属性,并且加入了用户的关系信息。当预测用户的职业信息时,从图4可以看出,upe的正确率明显高于其他几个,达76.28%,而mv(多数表决)的正确率最低,为32.9%。从实验结果可以看出,卷积神经网络可以很好的提取出标记节点与它的好友之间的潜在关系,从而更好的预测出标记节点的未知属性值。本发明不仅限于以上实施例,神经网络中的参数的设置,每一层卷积核的大小,激活函数(relu)的选择都是可以替代的,是根据数据选择或训练出来的。以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1