一种基于用户节点嵌入的多属性推断的方法与流程

文档序号:16319781发布日期:2018-12-19 05:38阅读:260来源:国知局
一种基于用户节点嵌入的多属性推断的方法与流程

本发明属于图数据挖掘技术领域,更为具体来讲,涉及一种基于用户节点嵌入(usernodeembedding,简称une)的多属性推断方法。

背景技术

网络嵌入(也称网络表示学习)是指将网络中的节点嵌入到一个低维向量空间,使得该向量保留了节点在网络中的拓扑结构信息。节点嵌入使得自动学习节点的低维特征成为了可能,同时所学到的特征表示可以用于许多下游的机器学习任务,因此成为了近年来的研究热点之一。

现实世界中,很多的数据都可以映射成网络的图结构形式,如社交网络、引用网络、生物网络等。利用图的定义,我们可以将任意实体映射成图中的节点,实体之间的交互行为映射成图中的边,因此,网络嵌入也称为图嵌入。

属性推断是用来自动推断在线社交网络中用户的未知属性和潜在特质的主要技术手段,可应用于市场分析中定义不同的客户类型,深度挖掘用户属性信息以优化个性化的推荐方法,同时针对可能的用户属性推断攻击采取相应的保护措施。如推测用户的年龄、性别、地理位置、兴趣、职业等,这些信息可用于商品推荐、资讯推荐。

现有属性推断方法大多采用高维稀疏特征降维的方式来获得用户表示,忽略了用户之间本身的内在联系,学习到的用户表示具有一定的局限性。



技术实现要素:

本发明的目的在于克服现有网络嵌入的不足,提出一种基于用户节点嵌入une(usernodeembedding)的多属性推断的方法,充分利用不同用户相互之间的内在联系来建模用户,学习到的用户向量具有更强的特征表达能力,以提高属性推断的效率和准确性。

为实现上述发明目的,本发明基于用户节点嵌入的多属性推断的方法,其特征在于,包括以下步骤:

(1)、用户多个属性的向量表示

根据需求,确定一个用户购买记录数据集用于用户属性推断,提取用户购买记录数据集中所有用户的属性信息并进行属性规范,得到各用户的多个属性,然后构建各用户的多个属性的one-hot向量表示;

(2)、利用已知的购买记录构建边带权的用户-商品二部有向图

利用用户购买记录数据集构建用户-商品二部有向图g=(v,e,w),其中,节点集v由用户购买记录数据集中所有用户构成的用户节点集u和用户购买记录数据集中所有商品构成的商品节点集p组成,即v=u∪p;若第i个用户ui(ui∈u)购买过第j个商品pj(pj∈p),则形成用户-商品二部有向图g中的两条有向边(ui,pj)和(pj,ui),e表示用户-商品二部有向图g中所有的有向边构成的边集;权重集w为边集e中每条边的权重集合;

对于每条边的权重,采取以下步骤获取:

2.1)、对于第i个用户ui到第j个商品pj的有向边(ui,pj)而言,首先统计用户ui购买商品pj的次数cij以及用户ui购买过的所有商品的总次数ci,则有向边(ui,pj)对应的权重计算公式如下:

其中,|u|表示用户-商品二部有向图g中所有的用户节点数,|uj|表示购买过商品pj的用户节点数;

2.2)、对于第j个商品pj到第i个用户ui的有向边(pj,ui)而言,对应的权重计算公式如下:

其中,cji表示商品pj被用户ui购买的次数,cj表示商品pj被所有用户购买的总次数,|p|表示用户-商品二部有向图g中所有的商品节点数,|pi|表示被用户ui购买过的商品节点数;

2.3)、将每个用户所有对应边的权重和每个商品对应所有边的权重进行归一化处理,即:

其中,p(i)表示用户ui购买过的所有商品列表,u(j)表示购买过商品pj的所有用户列表;

(3)、利用图节点嵌入算法学习用户-商品二部有向图g中所有用户节点的低维向量表示

3.1)、在构建的用户-商品二部有向图g上进行有偏置的随机游走,从而获得节点的上下文语义序列,若起始节点为用户ui时,则所有与用户ui构成边的商品节点集p(i)中,权重越大的边被访问的概率越大,即越大,则pk成为下一跳节点的概率越大;

以每个用户节点为起始节点,进行m趟有偏置的随机游走,最终得到多条固定长度为m的用户-商品序列;

3.2)、利用word2vec的连续词袋(cbow)模型,将所有用户-商品序列放入cbow模型中训练得到所有用户在低维空间的实值向量表示;

(4)、训练得到一个多属性推断模型

用步骤(3)得到的用户在低维空间的实值向量以及步骤(1)中得到的用户对应的多个属性的one-hot向量对一个神经网络进行训练,所述神经网络是一个多任务学习框架,网络的最后一层对应多个属性推断任务的输出,每个任务单独训练自己的参数,其余各层则共享参数,最终得到一个多属性推断模型;

(5)、推断用户属性

将需要推断用户属性的用户在低维空间的实值向量表示,输入到步骤(4)训练好的多属性推断模型中,通过各层网络计算,最终输出用户多个属性的one-hot向量表示,再根据步骤(1)得到该用户的多个属性。

本发明的目的是这样实现的。

本发明基于用户节点嵌入une(usernodeembedding)的多属性推断的方法,可从电商平台用户中提取其购买记录来同时推断用户的多个属性。根据推断属性需求,提取一个电商平台网站中所有用户的多个属性以及他们的购买记录进行预处理,利用已知的用户购买记录数据集构建用户和商品的节点集v,边集e以及每条边的权重w组成的用户-商品二部有向图g;在构建的有向权重二部图g上进行有偏置的随机游走,从而获得节点的上下文语义序列即用户-商品序列;将所有用户-商品序列放入cbow模型中训练得到所有用户在低维空间的实值向量表示;再构建用户多个属性的one-hot向量表示,并构建一个神经网络模型进行训练,得到一个多属性推断模型。将需要推断用户属性的用户在低维空间的实值向量表示,输入到已经训练好的多属性推断模型中,计算得出用户多个属性的one-hot向量表示,从而得到该用户的多个属性。

本发明可应用于市场分析中定义不同的客户类型,深度挖掘用户属性信息以优化个性化的推荐方法,同时针对可能的属性推断攻击采取相应的保护措施。

本发明具有以下有益效果:

(1)、本发明仅基于电商平台用户的购买记录来推断用户属性,只需提取用户的购买记录,无需获取额外的用户行为特征数据,提高了用户属性推断方法的效率和可移植性,同时减少了资源的消耗;

(2)、本发明实现了同时推断多个用户属性,考虑到用户不同属性之间本身存在的相关关系,在嵌入过程中,能充分利用不同用户相互之间的内在联系来建模用户,学习到的用户向量具有更强的特征表达能力。这种用户节点嵌入方法表示包含更丰富的属性信息,提高了属性推断的准确度;

(3)、本发明根据已知的用户购买记录,构建用户-商品二部有向图,然后在构建的有向权重二部图上进行有偏置的随机游走,获得每个用户节点的上下文语义序列集,最后将所有用户-商品序列放入cbow模型中训练得到所有用户在低维空间的实值向量表示,这种节点嵌入方法形成的用户节点向量能充分利用不同用户相互之间的内在联系,具有更强的特征表达能力。使得仅基于用户购买记录的多重属性推断成为可能。

附图说明

图1是本发明基于用户节点嵌入的多属性推断的方法一种具体实施方式的流程图;

图2是本发明中用户节点嵌入une模型框架图;

图3是本发明多属性推断模型框架图。

具体实施方式

下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。

一、基本原理

对于一个电商平台的用户来说,两个用户购买过同一件商品,则可以认为这两个用户之间存在一定的相似性,两个用户购买的相同商品越多,则这个两个用户的相似度越高。比如淘宝中用户1购买了物品1和2,用户2同时也购买了物品1和2,则用户1、2的属性可能相同或相近。直观上,若两个用户对商品的购买偏好越接近,则它们在语料库中共现的概率越大,最终训练得到的两个用户多个属性的one-hot向量也越相似。因此,本发明考虑利用用户的购买记录这一表现来进行用户的属性推断。

二、属性推断方法

在本实施例中,如图1所示,本发明基于用户节点嵌入une的多属性推断的方法包括五个步骤:用户多个属性的向量表示(步骤s1)、利用已知的购买记录构建用户-商品二部有向图(步骤s2)、学习用户-商品二部有向图中所有用户在低维空间的实值向量表示(步骤s3)、训练得到一个多属性推断模型(步骤s4)、推断用户属性(步骤s5)。

步骤s1:用户多个属性的向量表示

根据需求,确定一个用户购买记录数据集用于用户属性推断,提取用户购买记录数据集中所有用户的属性信息并进行属性规范,得到各用户的多个属性,然后构建各用户的多个属性的one-hot向量表示。

在本实施例中,将用户属性规范为p个,对于用户的第p个属性ap,统计其属性值个数tp,将用户的每个属性ap(p=1,2,...,p)(单值属性)以one-hot的形式编码,形成每个属性的向量表示其中,为第p个属性ap的tp个属性值的one-hot向量表示构成的集合。

在本实施例中,用户购买记录数据集来源于一个名为beiren的电商平台下的数据集(http://www.bigdatalab.ac.cn/benchmark/bm/dd?data=beiren),该数据集包含一段时间内57693个用户对于61087个物品的购买记录,同时每个用户都拥有性别、婚姻状况、年龄、收入水平、教育等级这五个人口属性,每个属性都为单值属性,即对于每个属性而言,一个用户只能有一个对应的属性值。在本实施例中,用户属性信息统计如表1所示。

表1

由于用户的年龄和收入都属于连续型属性,分别将其划分为四个区间段,因此,年龄和收入水平均有四个可能的属性值,每个用户只有对应属性的一个属性值。将用户的性别、婚姻状况、年龄、收入水平和教育等级这五个属性分别映射成一个one-hot向量,每个用户则拥有五个不同的属性向量表示。

经过one-hot编码,最终获得的用户属性向量模型attrimodel如下所示:

attrimodel=[[-1,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0]

[-2,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0]

......

[-57692,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0]

[-57693,0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0]

]。

其中,每个括号的第一个数字为用户的编号。

步骤s2:利用已知的购买记录构建用户-商品二部有向图

利用用户购买记录数据集构建用户-商品二部有向图g=(v,e,w),其中,节点集v由用户购买记录数据集中所有用户构成的用户节点集u和用户购买记录数据集中所有商品构成的商品节点集p组成,即v=u∪p;若第i个用户ui(ui∈u)购买过第j个商品pj(pj∈p),则形成用户-商品二部有向图g中的两条有向边(ui,pj)和(pj,ui),e表示用户-商品二部有向图g中所有的有向边构成的边集;权重集w为边集e中每条边的权重集合。

对于每条边的权重,采取以下步骤获取:

2.1)、对于第i个用户ui到第j个商品pj的有向边(ui,pj)而言,首先统计用户ui购买商品pj的次数cij以及用户ui购买过的所有商品的总次数ci,则有向边(ui,pj)对应的权重计算公式如下:

其中,|u|表示用户-商品二部有向图g中所有的用户节点数,|uj|表示购买过商品pj的用户节点数;

其中,表示对于用户ui而言商品pj所占的权重,该式中将所有商品的重要性同等对待,加1的目的是为了防止该权重为0;则表示商品pj对于所有用户的重要性,若大部分用户都购买过商品pj,说明该商品属于大众消费,因减小该商品最终对于用户ui的权重,上式中分母加1的目的是为了防止整个分式出现0的情况。

2.2)、对于第j个商品pj到第i个用户ui的有向边(pj,ui)而言,对应的权重计算公式如下:

其中,cji表示商品pj被用户ui购买的次数,cj表示商品pj被所有用户购买的总次数,|p|表示用户-商品二部有向图g中所有的商品节点数,|pi|表示被用户ui购买过的商品节点数。

其中,表示对于商品pj而言用户ui所占的权重,该式中将所有用户的重要性同等对待,加1的目的是为了防止该权重为0;则表示用户ui对于所有商品的重要性,若大部分商品都被用户ui购买过商品pj,说明该用户属于购买商品较多这,因减小该用户最终对于商品pj的权重,上式中分母加1的目的是为了防止整个分式出现0的情况。

2.3)、将每个用户所有对应边的权重和每个商品对应所有边的权重进行归一化处理,即:

其中,p(i)表示用户ui购买过的所有商品列表,u(j)表示购买过商品pj的所有用户列表。

图2是本发明中用户节点嵌入une模型框架图。

在本实施例中,如图1所示,首先按照上述方法构建用户-商品二部有向图,其为有向权重二部图,然后进行有偏置的随机游走,从而获得每个用户节点的上下文语义序列集即用户-商品序列,最后将所有用户-商品序列放入cbow模型中训练得到所有用户在低维空间的实值向量表示。

步骤s3:利用图节点嵌入算法学习用户-商品二部有向图g中所有用户节点的低维向量表示

在构建的用户-商品二部有向图g上进行有偏置的随机游走,从而获得节点的上下文语义序列,若起始节点为用户ui时,则所有与用户ui构成边的商品节点集p(i)中,权重越大的边被访问的概率越大,即越大,则pk成为下一跳节点的概率越大;以每个用户节点为起始节点,进行m趟有偏置的随机游走,最终得到多条固定长度为m的用户-商品序列。

在本实施例中,最终获得的序列集walklist如下所示:

walklist=[-1,27456,-20293,35274,...,-18609,15281,-36885,53110

-2,42072,-45532,34216,...,-44893,16588,-23179,19820

......

-38752,43581,-7298,10893,...,54346,-40810,25134,-6304

-41061,19041,-56768,44136,...,-55687,52741,-11180,17226]

利用word2vec的连续词袋(cbow)模型,将所有用户-商品序列放入cbow模型中训练得到所有用户在低维空间的实值向量表示。

本次实施例中,最终所有用户在低维空间的实值向量表示如下所示:

umodel=[[-1,-0.480352,-0.378879,0.265173,0.136623,-0.246036,...,0.281629,-0.109039,0.339801,0.049934,0.019654]

[-2.0,-1.133038,0.062593,-0.402204,-0.675431,-1.197359,...,0.988778,-1.206643,0.992456,-0.590323,-0.173576]

......

[-57692.0,-0.402704,-0.425099,-0.442212,-0.848911,-0.31584,...,0.319322,-0.248001,0.064863,0.204108,0.249493]

[-57693.0,-0.897837,-0.052606,-0.42653,-0.639667,-0.683501,...,0.590713,-0.583492,0.101694,-0.24164,-0.062689]

]。

步骤s4、训练得到一个多属性推断模型

用步骤s3得到的用户在低维空间的实值向量以及步骤s1中得到的用户对应的多个属性的one-hot向量对一个神经网络进行训练,得到一个多属性推断模型。所述的神经网络是一个多任务学习框架,网络的最后一层对应多个属性推断任务的输出,每个任务单独训练自己的参数,其余各层则共享参数。

在本实施例中,模型训练采用随机梯度下降(sgd)算法,将用户的低维向量表示作为多属性推断模型的输入,对应的多个属性向量作为输出,模型的损失函数采用softmax交叉熵函数,每个任务对应一个交叉熵函数,最终的损失由p个属性推断的损失和正则化项相加构成,联合训练如下目标函数:

其中,表示第p个属性推断任务的交叉熵损失,lreg表示l2-范数正则化项,用于防止神经网络的过拟合,α是超参数,用于平衡正则化项在整个目标函数中所占权重。其中,交叉熵损失和正则化项的定义如下:

其中,表示用户ui第p个属性对应的属性编码,yj'(j=1,2,...,tp)为实际神经网络的输出;m为神经网络的层数,w(k)(k=1,2,...,m)和b(k)(k=1,2,...,m)对应神经网络各层的权重和偏置参数。

利用反向传播(bp)算法进行参数更新,为了防止过拟合,加入了droupout训练模型,最终学习到用户的低维向量表示和用户的多个属性向量之间的非线性映射函数。对于一个未知属性的用户,可利用训练好的推断模型同时推断该用户的多个属性。

步骤s5:推断用户属性

将需要推断用户属性的用户在低维空间的实值向量表示,输入到步骤s4训练好的多属性推断模型中,通过各层网络计算,最终输出用户多个属性的one-hot向量表示,再根据步骤s1得到该用户的多个属性。

图3是本发明多属性推断模型框架图。

如图3所示,要同时推断用户的p个属性,每个属性有tp(p=1,2,...,p)个可能的属性值,将用户的每个属性ap(p=1,2,...,p)(单值属性)以one-hot的形式编码,形成每个属性的向量表示于是,如图2所示,多属性推断模型框架采用随机梯度下降(sgd)算法训练模型,将部分用户的低维向量表示作为多属性推断模型的输入,对应的多个属性向量作为输出。训练完成后,输入一个未知属性的用户,可推断该用户的多个属性信息。如此便可实现用户的多重属性推断。

三、实例验证

在上述实施例中,采用本发明所阐述的方法推断了多组不同的训练比/测试比进行实验,同时分别计算了各个属性推断的准确率,本次实施例的多组实验结果平均值如表2所示:

表2

表2表明仅利用用户的行为数据即可自动地学习用户特征表示,无需人工手动提取特征,且学到的用户特征表示包含丰富的属性信息,相比其它需要利用大量用户行为特征信息的方法而言,本发明的方法具有很好的移植性和较高的推断准确度。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1