张东雷,林友芳,万怀宇,马语丹,陆金梁
(北京交通大学 计算机与信息技术学院,北京 100044)
作为一种集成化的信息与知识传播和共享服务平台,在线技术社区为用户提供了技术交流、咨询和共享空间,深受技术爱好者和从业者的青睐。用户可以在社区发表博客或帖子来记录或分享自己对某一问题的经验或看法,可以浏览或收藏自己感兴趣的内容,可以针对自己的疑问提出咨询,也可以参与相关话题的讨论。例如,全球最大的中文IT技术社区CSDN,拥有数千万用户,每天产生大量的博客和帖子,以及浏览、顶踩、评论、收藏等行为。准确地了解和掌握每个用户的技能和兴趣,对用户进行准确的画像,对技术社区的运营者来说十分重要,有助于他们为用户提供精准推荐和个性化服务,从而增加用户的黏性和社区的活跃度。例如,社区可以根据用户的兴趣为其推荐内容、好友、活动信息、技术专家等,也可以根据用户的技能为其推荐合适的工作机会。然而,社区中通常只有少部分用户提供了自定义的技能标签或兴趣标签,而且标签的可信度也存疑。因此,如何基于用户产生的内容和行为信息,准确地发现用户的技能和兴趣,就显得尤为必要。
以用户技能(或兴趣)建模为目的的文本挖掘近年来受到了研究者的广泛关注[1-3],涌现出了大量的相关模型,这些模型大致可以分为有监督、无监督和半监督的用户技能/兴趣建模。有监督和半监督的建模方法[4-5]需要利用训练语料来训练生成文本分类器,进而对用户进行分类,一般具有较高的准确率,然而获取训练样本的昂贵代价极大地限制了此类方法的可应用性。因此以LDA[6]、AT[7]、CAT[8]和ACT[9]等话题模型为代表的无监督用户技能/兴趣建模方法近年来受到更多的关注。但是,当前这些模型主要考虑从用户发表的文章来对其技能或兴趣进行建模,没有将用户的技能和兴趣区别开来,因此还不能更准确地同时捕获用户的技能和兴趣。
事实上,社区用户既是社区内容的生产者,又是消费者。生产者是指用户以作者身份发表内容,主要体现了用户的技能;消费者是指用户以读者身份去阅读、顶踩、评论和收藏各种内容,主要体现了用户的兴趣。通常情况下,用户的技能比较集中,而用户的兴趣则相对宽泛。基于这一假设,本文提出了一种作者—读者—话题(author-reader-topic, ART)模型,来同时对用户的技能和兴趣进行建模。该模型在经典的LDA模型基础上增加了作者和读者信息,在建模文档生成过程中,同步建模作者的话题分布和读者的话题分布。该模型可以捕获文档的作者和读者之间的关联关系,因而能够进一步提升话题的聚集效果,从而产生更准确的作者话题分布和读者话题分布。
我们采用吉布斯采样的方法对ART模型进行推导和求解,通过不断地采样语料库中每个词的主题指派和读者指派来近似推断语料库中主题、词和读者的联合分布。吉布斯采样收敛后,我们就可以根据语料库中每个词的采样结果来估计出作者话题分布和读者话题分布。
我们从CSDN技术社区采集了一个真实数据集进行了实验,并跟已有的用户技能/兴趣发现方法进行了对比和分析。实验结果表明,本文提出的ART模型能够更有效地发现用户的技能和兴趣,明显优于现有的各种话题模型。
本文的主要贡献包括以下两点:
(1) 将在线技术社区用户的技能和兴趣区别开来,并根据用户作为内容的生产者和消费者两种角色,提出了一种同时对用户技能和兴趣进行建模的话题模型。
(2) 从CSDN社区采集了一个高质量的真实数据集,对提出的模型进行了大量的实验,并通过案例分析和各种评价指标验证了本文提出的模型的有效性。
本文的剩余部分组织如下: 第一节简要介绍相关工作;第二节详细描述我们提出的模型;第三节进行实验对比和结果分析;最后在第四节对全文进行总结。
以用户技能(或兴趣)建模为目的的文本挖掘近年来受到了研究者的广泛关注[1-3],涌现出了大量的相关模型。早期研究者主要利用有监督或半监督的模型来挖掘用户的技能或兴趣,取得了较高的准确率。例如,He等人[5]通过形式概念分析技术从正例文档中建立用户兴趣模型,并采用形式化的概念来代表用户感兴趣的话题。Yang等人[4]考虑到Twitter用户发表微博的周期性模式,提出了利用时间序列把用户微博进行归类,将微博内容转化为时间序列特征,采用时间序列的分类方法对Twitter用户的兴趣进行分类,和传统的基于文本特征对用户兴趣进行分类的方法相比,取得了较高的分类准确率。 然而,有监督和半监督的建模方法需要大量的标注语料来训练分类器,虽然具有较高的准确率,但是获取训练样本的昂贵代价极大地限制了此类方法的可应用性。
以话题模型为代表的无监督方法避免了获取训练样本的昂贵代价,因此在文本挖掘领域得到广泛的研究和使用。LDA(latent dirichlet allocation)模型[6]是最经典的话题模型之一,由Blei等人于2003年提出,它采用了“词袋”假设,即忽略一篇文档的词序、语法和句法,仅仅将其看作是一个词集合。LDA是一种层次式的贝叶斯模型,其核心思想是将文档看作隐话题的分布,而将每个隐话题看作词的分布。由于LDA具有良好的数学基础和灵活的可拓展性,目前国内外已有大量的研究者基于LDA及其拓展模型来对用户技能或兴趣进行建模。Weng等人[10]将每个用户发表的tweets融合起来,并使用LDA来发现用户感兴趣的话题。Rosen-Zvi等人[7]提出了作者—话题(author-topic,AT)模型,将文档的作者信息加入话题的建模过程中,同时对作者和话题进行建模,实验表明加入作者先验信息可以增强话题的聚集效果,从而有效地计算作者感兴趣的话题分布。Hong等人[11]将AT模型应用到Twitter上,结果表明作者信息的加入有助于对Twitter用户的兴趣话题进行建模。Xu等人[12]认为用户发表的tweets并不都能体现用户的兴趣,通过在AT模型中引入一个隐变量来指示一篇tweet是否和用户的兴趣相关,据此提出的twitter-user模型在发现用户兴趣上要优于AT模型。Li等人[13]提出用户—话题(user-topic,UT)模型对微博中的用户兴趣进行建模,按照微博生成机制的不同将用户的兴趣分为原创兴趣和转发兴趣,分别对应用户的原创博文和转发博文,实验表明该模型发现的用户兴趣涵盖的范围更全面、更准确。Tu等人[8]在AT模型的基础上增加论文的引用作者信息,提出了引用—作者—主题(citation-author-topic,CAT) 模型,来更好地刻画作者的技能分布,从而服务于专家发现。Tang等人[9]在AT模型的基础上增加了出版地信息,提出了作者—会议—主题(author-conference-topic, ACT)模型,来更好地对学术领域中的作者、话题和出版地进行建模,进而用于学术领域专家发现,取得了比其他话题模型更好的效果。
上述模型在分析用户技能(或兴趣)方面仍然存在一些不足之处。这些模型都是从内容生产者的角度考虑了用户发表或者转发的文档,而没有站在内容消费者的角度考虑用户阅读、评论或收藏的文档。事实上,用户生产的内容更多地反映了用户的技能,而用户消费的内容更多地反映了用户的兴趣。通常情况下,用户的技能比较集中,而用户的兴趣则相对比较分散。因此,本文综合考虑文档的作者信息和读者信息,提出了一种新颖的作者—读者—话题(ART)模型来同时对在线技术社区用户的技能和兴趣进行建模。
本节首先简单介绍两个关于用户技能/兴趣建模的基础模型LDA模型和AT模型,然后将详细描述本文提出的作者—读者—话题(ART)模型,并对模型进行推导。表1列出了本文主要使用的符号及其含义说明。
表1 相关符号说明
2.1.1 LDA模型
LDA模型[6]是一种层次式的贝叶斯概率模型,包含词、话题和文档三层结构,语料库中的每篇文档被建模为隐话题的多项式分布,每个话题又被建模为词的多项式分布,每篇文档中的每个词都是通过“以一定概率选择了某个话题,并从这个话题中以一定概率选择某个词”这样一个过程得到。LDA模型的盘式表示如图1所示。为了生成一篇文档,首先根据文档的话题分布采样生成一个话题,然后根据该话题的词分布采样生成一个词。重复上述过程直到文档中所有词均已生成。由于LDA模型中存在隐变量,直接求解模型参数非常困难,因此LDA模型的推导一般采用变分法或吉布斯采样进行近似推断[6,14]。
采用LDA进行用户技能或兴趣发现时,在模型中不考虑文档的用户信息,而是在求解模型得出每篇文档的话题分布之后,对每个用户对应的全部文档的话题分布求平均,形成用户的话题分布,进而根据用户—话题分布和话题—词分布生成用户的技能表示或兴趣表示。
图1 LDA模型的盘式表示
2.1.2 作者—话题模型
作者—话题(author-topic,AT)模型[7]是对LDA模型的一种拓展变形,是一种较新颖的话题模型,它包含词、话题、文档和作者四层结构,在建模过程中加入了文档的作者信息。该模型假设语料库中的每个作者都对应一个隐话题的多项式分布,每个话题都对应一个词的多项式分布。AT模型与LDA模型的不同之处在于它用作者—话题分布替换了文档—话题分布,并且每个词对应两个隐变量,即话题和作者。AT模型的盘式表示如图2所示,其文档生成过程与LDA的区别在于,它首先从文档的作者集合中随机选择一个作者,然后根据该作者的话题分布采样生成一个话题,最后再根据该话题的词分布采样生成一个词。重复上述过程直到文档中所有词均已生成。同样,AT模型的推导通常也采用变分法或吉布斯采样进行近似推断。
图2 AT模型的盘式表示
AT模型由于在建模过程中加入了作者信息,通常一个作者的话题分布是比较稳定的,因此有助于增强话题的聚集效果。得益于作者信息的加入,相比LDA模型,AT模型能够更准确地发现用户的技能分布。AT模型虽然引入了文档的作者信息,但没有考虑文档的读者信息对话题的聚集效果,以及进一步的提升作用。此外,用户分别作为作者和读者时,其话题分布也是不一样的。作为作者时对应的是其技能的话题分布,作为读者时则对应其兴趣的话题分布。因此,本文进一步提出了作者—读者—话题模型,对用户的技能和兴趣分别进行建模。
2.2 作者—读者—话题模型
2.2.1 模型描述
在技术社区中,用户经常将自己的技术知识和经验以博客或者帖子的形式发表出来,供其他用户学习、参考或讨论,此时用户作为生产者所发表的内容通常体现了他们所具有的技能。另一方面,用户也经常搜索、浏览、评论、顶踩、收藏自己感兴趣的内容,此时用户作为消费者所关注的内容则体现了他们所拥有的兴趣爱好。一般情况下,用户的技能比较集中于少量的一个或几个话题,而用户的兴趣则可能相对比较广泛地分布于多个话题。基于这一事实,我们提出将用户的技能话题分布和兴趣话题分布区别对待,分别使用生产者(作者)和消费者(读者)的身份来发现用户的技能和兴趣。我们以LDA模型为基础,同时加入文档的作者和读者信息,形成作者—读者—话题(author-reader-topic,ART)模型。ART模型将用户作为作者和读者的两种身份信息加入到话题的建模过程中,不仅可以进一步增强话题的聚集效果,还可以同步分别建模用户的技能和兴趣。该模型的直观含义是: 文档的作者决定了文档的话题,而文档的话题决定了词的生成并且吸引对该话题感兴趣的用户对该文档进行阅读。
与AT模型类似,ART模型仍然是一种层次式的贝叶斯概率模型,它包含词、话题、文档、作者和读者五层结构,其盘式表示如图3所示。在ART模型中,每篇文档d对应一个作者ad和多个读者rd,每个作者a对应的话题的多项式分布为θa,每个话题t对应的词的多项式分布为φt以及读者的多项式分布为φt。该模型的文档生成过程的形式化描述见算法1: 首先,根据Dirichlet超参数分别采样作者—话题分布θ、话题—词分布φ以及话题—读者分布φ,其分别服从Dirichlet分布Dir(α)、Dir(β)和Dir(η);然后,对于每篇文档中的每个词,根据文档对应作者的作者—话题分布θ采样生成一个话题z,z服从多项式分布Mul(θ);接下来,基于生成的话题z分别独立地从话题—词分布φ和话题—读者分布φ中采样生成一个词w和一个读者x,w和x分别服从多项式分布Mul(φ)和Mul(φ)。
图3 ART模型的盘式表示
算法1 ART模型的文档生成过程for each author a∈Ado //draw a distribution over topics θa~Dir(α)end forforeach topic t∈T do //draw a distribution over words ϕt~Dir(β) //draw a distribution over readers φt~Dir(η) end forforeach document d∈[1,D] and its author ad do foreach word n∈[1,Nd] do assign a topic zdn~Mul(θad); draw a word w~Mul(ϕzdn); draw a reader x~Mul(φzdn); end forend for
给定超参数α,β,η以及文档d的作者ad和读者rd,语料库的生成概率如式(1)所示。
P(θ,φ,φ,z,w,x|α,β,η,a,r)=
(1)
2.2.2 模型推导
我们采用吉布斯采样方法来近似推导ART模型。吉布斯采样是一种高效的MCMC(Markov Chain Monte Carlo)采样方法,它通过迭代采样方式对复杂的概率分布进行推断。为了得到参数θ、φ和φ,需要计算词wdn的话题指派和读者指派的条件分布p(zdn,xdn|z-dn,x-dn,w,ad,rd,α,β,η),其中,z-dn和x-dn分别指除文档d中第n个词以外的其他所有词的话题指派和读者指派(符号-dn表示排除当前词wdn)。为了简化公式的描述,我们引入Δ函数(the Dirichlet delta function)[15],对于含有V维的Dirichlet先验参数δ,Δ函数定义,如式(2)所示。
(2)
其中,Γ(·)是伽玛函数。
基于图3中概率图模型的独立性假设,给定超参数,则话题、读者和词的联合分布可形式化推导,如式(3)所示。
(3)
(4)
吉布斯采样收敛后,我们就可以根据采样的结果估计作者—话题分布θ,话题—词分布φ以及话题—读者分布φ,分别如式(5)~(7)所示。
ART模型的吉布斯采样方法的详细推导见附录。我们使用吉布斯采样进行参数估计的算法流程详见算法2。
算法2 ART模型的参数估计initialize the reader and topic assignments randomly for all tokens;//Gibbs sampling over burn-in period and sampling periodwhile not finished do for all documents d∈[1,D]do for all words n∈[1,Nd] in document ddo draw xdn and zdn from Eq. (4); update nzdnad,nad,nwdnzdn,nzdn,nxdnzdn; end for end for //check convergence and read out parameters if converged and L sampling iterations since last read out then //the different parameters read outs are averaged read out parameter set θ according to Eq. (5); read out parameter set ϕ according to Eq. (6); read out parameter set φ according to Eq. (7); end ifend while
本节将详细介绍基于CSDN技术社区数据集的实验过程及结果分析,将本文提出的ART模型与经典的LDA模型、在技能发现方面表现最好的AT模型以及衍生的读者—话题(RT)模型三种基准方法进行了对比,验证了ART模型在用户技能和兴趣发现方面的优势。
本文使用的数据集来自全球最大的中文IT技术社区CSDN。我们从CSDN采集了2015年01月至2016年7月之间部分活跃用户产生的内容和行为记录,其中用户产生的内容包含用户在该时间段内发表的所有博客,以及用户的自定义技能标签和兴趣标签;用户行为记录包括在该时间段内用户对博客的浏览、顶踩、评论和收藏行为的日志记录。其中,用户自定义技能标签和兴趣标签用来评估本文提出的技能与兴趣发现方法的效果,用户浏览、顶踩、评论和收藏过的文档均视为该用户读过的文档。值得注意的是,所有涉及用户个人隐私的信息,均不包含在采集的数据集之中。
数据集共包含与4 357位用户相关的27 880篇博客文档,其中部分用户既是作者又是读者。我们对所有文档进行了必要的预处理,包括去除文档中的HTML标记、程序代码块以及URL链接,然后采用NLPIR分词工具[16]进行分词,并在分词过程中使用了清华大学开放IT词库[17],最后去除停用词并去除TF-IDF值较低的词。处理后的数据集统计信息如表2所示。
表2 数据集统计信息
我们在实验过程中采用三种基准方法与本文提出的ART模型进行对比。除了经典的LDA模型和当前在技能发现方面表现最好的AT模型,我们还基于AT模型和ART模型衍生出一种读者—话题(reader-topic,RT)模型,用来单独对用户的兴趣进行建模。RT模型的盘式表示如图4所示,它和ART模型的区别在于没有将文档的作者信息加入到模型中,只保留了读者信息,因此只用来建模用户兴趣。RT模型的文档生成过程和ART模型类似,首先,根据Dirichlet超参数分别采样文档—话题分布θ、话题—词分布φ以及话题—读者分布φ,其分别服从Dirichlet分布Dir(α)、Dir(β)和Dir(η);然后,对于每篇文档中的每个词,从文档—话题分布θ中采样生成一个话题z,z服从多项式分布Mul(θ),进而基于生成的话题z分别独立地从话题—词分布φ和话题—读者分布φ中采样生成一个词w和一个读者x,w和x分别服从Mul(φ)和Mul(φ)分布。RT模型的文档生成过程以及吉布斯采样的推导过程和ART模型类似,本文在此不再赘述。
图4 RT模型的盘式表示
在实验过程中,为了对四种模型进行相互比较,我们对四种模型的话题数目及其他超参数进行了相同的设置。对于话题数目,我们根据数据 集 的 话 题分布情况经验性地设置话题数T=100;对于其他超参数,我们尝试了不同的超参数设置,发现模型效果并没有受到超参数的较大影响,因此根据文献[14],我们将超参数设置为固定值:α=50/T、β=0.01、η=0.1。在模型训练过程中,我们发现模型迭代1 500次左右就基本达到收敛状态,为了统一标准并确保所有模型都能达到收敛,我们对四种模型均设置迭代次数为2 000次。
ART模型迭代收敛后,可以利用式(6)来提取整个数据集的话题。我们首先从100个话题中筛选出10个话题,并尽量让这些话题覆盖不同的技术领域,然后列出每个话题的前10个词,如表3所示。通过分析每个话题下代表性词汇的含义,给出了每个话题的语义。我们发现,ART模型聚集出来的话题比较容易理解,每个话题下的大部分词汇在语义上都与话题有较强的相关性。
表3 数据集话题聚集结果
通过式(6)我们可以得到每个话题的词分布φ,通过式(5)和(7)可以分别得到每个作者的话题分布θ和每个读者的话题分布φ,然后通过整合作者—话题分布和话题—词分布来计算用户的技能词,通过整合读者—话题分布和话题—词分布来计算用户的兴趣词,形式化公式分别如式(8)和式(9)所示。计算用户技能词和兴趣词的核心思想在于计算作者(或读者)、话题和词的联合分布的积分,式(8)中Ωaw表示作者a在技能词w上的相关度,式(9)中Ηrw表示读者r在兴趣词w上的相关度。
通过式(8)~(9)我们可以计算每个作者对词汇集V中每个词的技能相关度以及每个读者对词汇集V中每个词的兴趣相关度,从而得到和每个用户相关度比较高的技能词和兴趣词。表4和表5分别列出了四个代表性用户的前十个技能词和前十个兴趣词,这四个用户的自定义技能标签和兴趣标签如表6所示。
表4 各种模型发现的用户技能词
表5 各种模型发现的用户兴趣词
续表
表6 用户自定义技能和兴趣标签
将表4和表5的结果分别与用户自定义技能标签和兴趣标签进行比较,我们发现ART模型发现的技能词和兴趣词与用户的自定义标签相关度较高。例如,user1的自定义技能和兴趣标签体现在“大数据”领域,而ART发现的诸如“hadoop”“hive”“spark”等词与此的相关度较高;user2的自定义技能和兴趣标签体现在“数据库”和“操作系统”领域,而ART发现的诸如“oracle”“mysql”“进程”“命令”等词与此相关度较高;user3的自定义技能和兴趣标签体现在“移动开发”和“游戏开发”领域,而ART发现的诸如“android”“游戏”等词与此相关度较高;user4的自定义技能和兴趣标签体现在“web开发”领域,而ART发现的诸如“javascript”“html”等词与此相关度较高。
将表4和表5中ART模型发现的用户技能和兴趣之间进行比较,我们发现用户的技能和兴趣相似度很高,但用户的技能更加专一,用户的兴趣则相对广泛。例如,user1的技能和兴趣都体现在“大数据”领域,但user1还对“系统运维”比较感兴趣;user3的技能和兴趣都体现在“游戏开发”“移动开发”领域,但user3还对“数据库”比较感兴趣;user4的技能和兴趣都体现在“web开发”领域,但user4还对“设计模式”比较感兴趣。为了进一步分析用户技能分布和兴趣分布之间的差异,我们分别计算作者技能分布熵(简称技能熵)和读者兴趣分布熵(简称兴趣熵),如式(10)~(11)所示。
我们计算了701个既是作者又是读者的用户的技能熵和兴趣熵,并进行了相关统计,结果如表7所示。从表中可以看出,兴趣熵的平均值要高于技能熵,这进一步表明了用户技能的专一性和用户兴趣的广泛性。
表7 技能熵与兴趣熵统计值比较
表4和表5分别列出了LDA、AT和RT三种基准方法提取的用户技能词和兴趣词结果,从表中可以看出,在用户技能发现方面,相比于其他三个模型,ART模型发现的技能词与用户自定义技能标签相关度更高,而且相关度高的词排序更加靠前;同样,在用户兴趣发现方面,ART模型也要优于其他三个模型。为了定量评价四种模型在发现用户技能和兴趣方面的优劣,我们将四种模型发现的技能词和兴趣词分别和用户自定义技能标签和兴趣标签求交集,计算技能发现和兴趣发现的准确率和召回率,如式(12)~(15)所示:
具体地,我们分别计算出各种模型发现的每个用户的前K(K=5,10,20,50,100)个技能词和兴趣词,与该用户自定义技能标签和兴趣标签求交集,计算每个用户技能发现和兴趣发现的准确率和召回率,然后对所有用户求平均。四种模型技能发现的准确率和召回率如表8和表9所示,兴趣发现的准确率和召回率如表10和表11所示。从表中可以看出,在技能发现方面,ART要显著优于AT模型,AT模型要优于RT模型,LDA模型效果最差;在兴趣发现方面,ART要显著优于RT模型,RT模型要优于AT模型,同样LDA模型效果最差。需要说明的是,准确率和召回率整体不高的原因,一方面是因为用户自定义的技能标签和兴趣标签通常更抽象,而模型发现的技能词和兴趣词通常更具体;另一方面,用户自定义标签也存在更新不及时等问题,因此两者的交集偏少,从而导致准确率和召回率偏低,但这并不会影响其作为模型评价标准的客观性和公正性。
表8 四种模型技能发现的准确率比较 单位: %
表9 四种模型技能发现的召回率比较 单位: %
表10 四种模型兴趣发现的准确率比较 单位: %
表11 四种模型兴趣发现的召回率比较 单位: %
以上实验结果证明,随着作者信息和读者信息的加入,ART模型提高了话题聚集效果,能够更准确地同时对用户的技能和兴趣进行建模,显著优于其他现有的技能或兴趣发现方法。
本文提出了一个新颖的作者—读者—话题(ART)模型来同步发现在线技术社区中用户的技能和兴趣。该模型能够有效地将文档的作者信息和读者信息关联起来,提升话题聚集效果,产生更准确的作者技能话题分布和读者兴趣话题分布。
在CSDN社区的真实数据集上的实验结果表明,本文提出的ART模型能够有效地发现用户的技能和兴趣,提取的用户技能词和兴趣词比其他现有的技能或兴趣挖掘方法更准确。与此同时,我们也验证了用户技能相对集中、用户兴趣相对分散的假设。本文提出的方法可以广泛应用于在线社区的用户技能与兴趣挖掘,服务于社区运营者进行用户画像,向用户提供精准推荐和个性化服务。