基于社交网络LinkedIn的用户年龄估计 [PDF全文]
(1.浙江科技学院 信息与电子工程学院,杭州 310023; 2.杭州电子科技大学 计算机学院,杭州 310018)

基于职业社交网络LinkedIn的用户年龄估计方法的研究,对用户的职业发展趋势、职业适应性分析,以及设计更合理的职业推荐系统具有积极的意义。通过挖掘分析用户的个人资料,设计年龄估计模型(age estimation method,AEM),描述年龄与教育和工作经历的关系。结果 表明,在社交网络LinkedIn中,AEM较人脸识别年龄估计方法有更高的准确性,体现AEM具有一定的研究价值。

Age estimation of users in social network LinkedIn
SHI Leilei1, WAN Jian1, SI Huayou2, CHEN Binbin2
(1. School of Information and Electronic Engineering, Zhejiang University of Science and Technology,Hangzhou 310023, Zhejiang, China; 2.School of Computer Science and

The study of user age estimation method based on the professional social network LinkedIn, is of positive significance for career development trend analysis, user's career adaptability analysis and designing a more reasonable career recommendation system. By mining and analyzing the user's profile, the age estimation model(AEM)was designed to describe the relationship between age and education, work experience. The results show that in the social network LinkedIn, AEM has better accuracy than the face recognition age estimation method, revealing certain research value of AEM.

引言

年龄作为社交网络中关键的用户属性之一,在研究互联网用户行为分析方面有着重要的地位,并且在推荐系统和兴趣分析等研究领域也发挥着重要的作用。近些年国内外在年龄估计方面已经进行了许多研究,大部分的研究成果都集中在深度学习、人脸识别领域。深度卷积神经网络利用弱标记数据可以获得不错的人脸识别性能[1]。通过改进优化神经网络,x向量神经网络结构[2]、Ranking-CNN(convolutional neural network)框架[3]、不使用面部标志方法[4]、深度年龄分布学习方法[5]及少数据集也适用的卷积神经网络[6]等方法在年龄估计中均有较高的准确率。建立完善的人脸数据库,并在此基础上进行分类能得到偏差较小的年龄估计结果,如吴仰波等[7]建立的亚洲人脸数据库。针对基于人脸图像估计目标年龄的问题,结合CNN和最小二乘支持向量机(least squares support vector machine,LSSVM)的年龄估计方法也得到了较好的结果[8]。针对年龄估计模型本身的研究提高了估计的准确率,例如基于区域的动态权值年龄估计模型[9]、多任务估计模型[10]、两层年龄估计模型[11]等。张珂等[12-13]利用多级残差网络和自适应多元回归的方法提高了年龄估计的正确率。除了面部识别进行人类年龄估计外,Mccomb等[14-17]通过分析和处理说话者的声音,估计其性别和年龄。近些年,根据社交网络中用户提供的文本信息进行年龄估计方面的研究不多。陈敬等[18-19]通过分析用户在网络中发布的文本信息或者用户的位置信息、通话频率、性别等信息来推断用户的年龄和性别。以上这些方法应用于社交网络尚存在一些问题,如用户在社交网络上照片的时效性及真实性(非本人或图片失真等)使得人脸识别年龄估计的方法误差较大; 在一般的社交网络中用户的语音资料极少,并且同样存在时效性和真实性(非本人或处理过等)的问题; 基于用户日常发布的文本挖掘分析的年龄估计,局限于一定的社交应用场景和社交方式。而在职业社交网络中,用户几乎不发布自己的日常信息而是不断完善自己的简历信息(包括教育经历、工作经历、掌握的技能等),因此,我们提出根据用户的教育经历和工作经历来估计用户年龄的模型AEM(age estimation model)。

1 数据分析1.1 数据采集

通过高效的分布式爬虫系统,使用LinkedIn官方API获取用户的简历数据。用户的简历数据主要包括教育经历、工作经历、项目经历、职业技能及职业技能获得的点赞数等信息。我们获得64 442份用户简历数据,数据清洗后最终得到41 366份同时包含教育经历和工作经历的简历数据。本研究主要关注用户的教育经历和工作经历,而用户的教育经历和工作经历通常由多个时间段构成,为了更方便地处理数据及提高数据的可读性,将数据处理为json文件并保存到MongoDB数据库中。

LinkedIn中不提供用户的真实年龄,但真实年龄对定义模型、验证模型有着至关重要的意义,因此我们采用小组多人独立估计的方式进行人工分析标注用户年龄。小组由5人构成,首先5人分别读取分析用户的简历数据,独立地给出年龄估计值; 然后将5个年龄估计值的均值作为用户的“真实年龄”。按照以上人工标注的方法,我们在41 336份数据中标注了20 000份数据。

1.2 数据优先级分析

分析大量的用户简历数据后发现,不同教育阶段对应的年龄段相对固定,并且教育阶段越低对应的年龄段越固定,如大多数人是6岁上小学,12岁上初中。因为在年龄较小时学习阶段是在监护人的安排

表1 教育阶段和对应的年龄<br/>Table 1 Education stage and corresponding age

表1 教育阶段和对应的年龄
Table 1 Education stage and corresponding age

下有序进行,相同教育阶段年龄差异较小。随着年龄的增长,人的思想逐渐成熟,兴趣和追求的目标也不尽相同,这大大增加了在相同教育阶段中存在年龄差异的概率。相比于教育经历,工作经历对应的年龄不确定性更大,但通常认为人们参加工作的年龄应该是在最后一个教育阶段结束后。由于存在先工作再教育的情况,故在第2章作进一步的比较分析。根据以上分析,为了更准确地进行年龄估计,定义数据选用顺序的优先规则:1)教育经历优先工作经历; 2)教育经历越早优先级越高; 3)工作经历越早优先级越高。表1给出人们在不同教育阶段数据的优先使用顺序,以及对应的起始受教育年龄。本研究将每个阶段对应的起始年龄作为5人小组人工标注的参考。

2 年龄估计模型2.1 模型定义

定义f(S,T)来描述年龄与教育和工作经验之间的关系。假设S={s1,s2,…,sg},T={t1,t2,…,tg}为所有用户的教育数据集合和工作数据集合,其中g为用户总数。si=(si1,si2,…,sin),ti=(ti1,ti2,…,tim),n和m分别为用户的教育阶段数和工作经历数,sij为第i(i∈{1,…,g})个用户的教育经历中第j(j∈{1,…,n})个阶段,tik为第i(i∈{1,…,g})个用户的工作经历中第k(k∈{1,…,m})个阶段。

为了使年龄估计的模型能更好地描述年龄与教育和工作经验之间的关系,添加偏置量w。假定年龄估计值用y来表示,那么年龄估计模型可以定义如下:

y=f(S,T)+w。

事实上我们在进行年龄估计时,会根据1.2的数据选择优先级,选取一段用户优先级最高的教育或者工作经历,并得到该段经历的起始时间,比如1993(年)等。根据起始时间定义年龄估计函数,令函数值不断逼近真实年龄,最终获得最优参数,完成年龄估计模型的定义。

根据数据优先级,选取教育阶段的起始时间为p,选取工作阶段的起始时间为q,那么教育经历估计模型和工作经历估计模型分别定义如下:

f(S)=αp+β;(1)

f(T)=λq+η。(2)

式(1)~(2)中:α、β、λ、η均为常数。

如果将人工标注的年龄作为用户“真实年龄”,用y'表示,估计误差用e表示,那么根据教育经历和工作经历,第i个用户的估计误差ei分别为αpi+β-y'i和λqi+η-y'i

定义估计误差平方和为φ,那么教育数据估计模型的误差平方和可以表示如下:

φ=∑gi=1(αpi+β-y'i)2。(3)

分别对式(3)的α、β求偏导,且使偏导等于0,可得:

{gβ+(∑gi=1Pi)α=∑gi=1y'i;

(∑gi=1Pi)β+∑gi=1(P2i)α=∑gi=1y'iPi。(4)

由式(4)解得α、β,进而得到f(S)。同理可得λ、η、f(T)。用得到的模型估计用户年龄,定义估计年龄和真实年龄的差值为ε,则偏置量w可以表示如下:

w=1/g∑gi=1εi

因此可以得到最终的年龄估计模型AEM,包括教育经历年龄估计模型AEM1和工作经历年龄估计模型AEM2:

y=αp+β+w1;(5)

y=λq+η+w2。(6)

式(5)~(6)中:w1和w2分别是教育经历年龄估计和工作经历年龄估计的偏置量。

2.2 年龄估计过程

首先根据用户的简历信息,提取教育经历和第一份工作的入职时间。然后遵循优先规则选择数据和年龄估计模型; 最后使用年龄估计模型计算用户的年龄。年龄估计过程如图1所示。

图1 年龄估计过程<br/>Fig.1 Age estimation process

图1 年龄估计过程
Fig.1 Age estimation process

3 试验验证

本研究设计了2个试验来验证AEM的有效性和准确性。

3.1 试验1

我们已经在数据源中标记了20 000个用户的年龄,在数据源中除人工标注年龄的数据之外随机选取100个用户,用AEM估计他们的年龄。同时仍采用5人(A、B、C、D、E)小组人工标注用户年龄,最后比较分析两者的差。试验的部分结果见表2,其中yT为人工标注年龄的均值(视作“真实年龄”),y为AEM的估计值,d1为两者差值的绝对值。

表2 估计年龄和“真实年龄”的比较<br/>Table 2 Comparison of real ages and estimated ages岁

表2 估计年龄和“真实年龄”的比较
Table 2 Comparison of real ages and estimated ages岁

表3 AEM偏差分布<br/>Table 3 Distribution of AEM deviation

表3 AEM偏差分布
Table 3 Distribution of AEM deviation

AEM偏差分布见表3。由表3可知,偏差在3年以内的占92%,总体平均偏差为1.2岁。AEM的估计结果与人工分析相近,可见,模型有较高的准确性。

3.2 试验2

人脸识别是近年来年龄估计研究中的常用方法。首先获取试验1中随机选取的100名用户的简历照片,我们采用微软公司支持的人脸识别技术(http://www.how-old.net/)来估计用户年龄。试验的部分结果见表4,其中yF为人脸识别年龄估计的值,d2为人脸识别估计的偏差。试验结果显示人脸识别估计年龄的平均偏差为15.6岁。

表4 两种年龄估计方法的比较<br/>Table 4 Comparison between two methods of age estimation

表4 两种年龄估计方法的比较
Table 4 Comparison between two methods of age estimation

表5 AEM与人脸识别方法偏差比较<br/>Table 5 Comparison of deviation between AEM and face recognition method

表5 AEM与人脸识别方法偏差比较
Table 5 Comparison of deviation between AEM and face recognition method

表4中我们还可以看到,人脸识别估计用户年龄的部分结果是0或者偏差较大,造成这些结果的原因有很多,如用户照片为空或者非人物头像、照片拍摄时间早、照片模糊、照片被处理等,这些会导致人脸识别方法不能准确地得到用户当前的年龄,例如表4中ID为“17562612”的用户,事实上在LinkedIn的照片为默认空白,因此估计值为0。

AEM与人脸识别方法偏差分布比较见表5。由表5可知,对100名用户年龄估计的结果中,AEM估计结果偏差在3年以内(含3年)占比为92%,而人脸识别方法估计偏差在此区间占比仅为18%。同时看到人脸识别方法估计结果偏差大于3年占比82%,远远大于AEM的8%。综合以上分析,AEM在社交网络用户年龄估计方面,准确性较人脸识别方法更高。

4 结 语

本研究提出了一种年龄估计模型(AEM),可以根据用户的教育和工作经验来估计其年龄。为了精确估计年龄,我们提出了一个用于数据选择顺序的优先规则,并设计了2个试验来评估方法的准确性。试验表明,与人脸识别估计的年龄相比,AEM具有较高的准确性,也体现了一定的研究价值。用户年龄结合其他相关的数据,能挖掘分析出更有价值的信息。在未来的研究中,我们将致力于实现一个职业推荐系统,可以为用户推荐更有发展潜力、更适合的职业。

参考文献