APP下载

基于社交媒体的企业行为事件挖掘

2018-11-16邓文君

中文信息学报 2018年10期
关键词:触发器语料库分类器

邓文君,袁 华,钱 宇

(电子科技大学 经济与管理学院,四川 成都 611731)

0 引言

社交媒体作为目前最重要的信息源之一,在社会舆论、信息传播、企业营销等方面发挥着其他媒介所不可替代的作用。据新浪《2016微博企业白皮书》统计,截至2016年12月底,企业账号注册量已达到130万,越来越多的企业利用社交媒体平台塑造企业品牌、产品营销推广、客户关系管理。相对传统的信息传播方式,企业加入社交媒体,不仅可以通过平台获取及时有用的信息,更重要的是还可以发布大量与企业经营活动相关的信息,而这些信息具有重要的商业和研究价值。

近年来,自然语言处理领域的研究卓有成效。相对于其他信息类型,文本在实际生活中使用频繁、用途广泛、表达丰富,而社交媒体中企业信息主要也是以文本形式呈现,且内容简洁、传播迅速、相对真实且系统地记录了企业各方面信息[1]。这些特性非常有利于企业行为识别及其演化分析。

然而,有效识别企业行为并研究企业行为演化规律面临巨大挑战。第一,社交媒体数据为短文本,具有表达类型多样、噪音多、主题多等特点;第二,传统自然语言处理方法,如字典、统计、标注等不能有效表征企业行为;第三,企业行为由动词刻画,人工标注耗时费力,且易忽略词语语境。

为了克服这些挑战,本文提出利用浅层神经网络有效识别企业行为的方法。它不仅可以将企业行为刻画成可以计算的高维向量,而且还保留词语间部分语义和位置关系。然后,再基于企业行为的识别结果,分析企业行为演化,对比基于企业大事件等传统角度分析企业演化。本文通过社交媒体中企业信息分析行为演化过程,落脚点更小,针对性更强。

1 相关工作

对本文提出的企业行为识别及其演化分析,更通俗的研究领域为事件识别及话题演化。前人在这个领域做过很多研究,主要从传统数据源识别事件,比如Zhiwei Li等人[2]在2005年提出了利用概率模型将新闻内容和时间信息统一作为事件识别的要素从而识别新闻事件。随着微博、推特等社交媒体发展,越来越多的研究聚焦于社交媒体,Wayne Xin Zhao等人在2013年提出一个针对突发事件文本表征模型,将突发事件的特征映射为向量[3]。对于突发事件,学者关注疾病爆发事件、经济危机事件、总统选举、恐怖事件等,Becker等人[4]利用聚类算法去识别社交媒体数据中的事件;Qian等人[5]提出了BMM-SLDA模型,通过整合有监督主题模型提高事件分类框架;Ritter等人[6]提取四组元素去匹配重要事件;Becker等人[7]还提出学习多特征相似矩阵的识别技术;Young等人在2014年设计了一个生成模型,可以识别时间、位置以及紧急情况和非紧急情况不同性质的事件;Rozenshtein等人在2014年提出使用两个图模型来形式化事件检测的问题;Dong等人[8]提出了一种使用社交媒体数据进行多尺度事件检测的新方法。

对于话题演化方面的研究,传统的方法如TFIDF(Term Frequency-Inverse Document Frequency),仅仅通过词频表征文档,忽略了词语的语义和位置关系;或者是利用矩阵的奇异值分解技术对文本降维,从而处理文本数据;其中,最为有名的是Blei等人[9]提出的概率生成模型LDA(Latent Dirichlet Allocation)以及其他学者在LDA基础上提出的概率模型。本文是利用浅层神经网络Word2Vec训练词表征,从而识别企业行为,然后再对识别结果进行企业行为演化分析。词表征训练的优点不仅是将文本语料转化为可计算的向量,更重要的是结合了词语之间的语义和位置关系。

2 研究方法

2.1 企业行为定义

企业行为(Enterprise Behavior)是指企业为了追求一定目标而进行的相关商业或社会活动,主要包括生产行为、分配行为、营销行为、金融行为、创新行为等。而本文中的企业行为指企业利用社交媒体平台发布企业相关信息从而达到产品发布、销售、推广以及粉丝关系管理等目标的一系列行为,主要包括了发售(产品的发布和销售)、推广(产品的营销推广)、招募(招募粉丝及粉丝关系管理)、研发(产品技术创新和产品研发)、合作(企业与其他企业或社交媒体的大V合作)等等。

本文使用的企业行为标签是邀请志愿者结合企业行为定义和对语料库中前500个高频动词的理解,最终确定的企业行为类别标签。根据实验需要,本文形成了发售、推广、招募、研发、合作五类和销售、推广、研发、合作四类企业行为标签。

2.2 企业行为识别方法

2.2.1 问题定义

首先用Weibos表示语料库所有文档,如式(1)所示。

(1)

企业通过社交媒体平台发布企业相关信息,而这些信息中隐含了大量企业行为。为了识别企业行为,假设企业行为共有n类,用集合E表示,如式(2)所示。

E={e1,e2,…,ei,…,en}

(2)

上述每一类行为都能被一组k维向量表示,如式(3)所示。

ei=[vi1,vi2,…,vij,…,vik]

(3)

其中向量的元素vij表示事件的一个触发词。

由于社交媒体平台信息多为短文本(限定140字),本文假定每一篇文档最多包含一类行为。因此,本文需要解决的问题是,识别出一篇新文档Weiboj中的企业行为ei,然后分析带有时间戳的企业行为如何演化。

2.2.2 企业行为识别研究框架

本文提出的企业行为识别框架主要分为两部分:构建企业行为识别分类器,以及利用分类器来识别新文档中的潜在事件。完整的流程如图1所示。

图1 企业行为识别框架

构建企业行为识别分类器流程如下:(1)对语料库数据进行预处理; (2)利用Word2Vec训练词表征; (3)人工标注部分企业行为标签,形成种子数据; (4)对种子数据进行动词抽取,并基于词表征计算种子数据集中企业行为向量seedei; (5)根据企业行为seedei对语料库中剩余动词进行相似度识别形成触发器; (6)基于触发器形成企业行为向量ei进行企业行为识别。

对于一篇新的文档weiboj,首先进行数据预处理,再抽取动词,然后用动词向量表征新文档。

2.2.3 数据预处理

本文使用了Python+scrapy的爬虫框架,抓取了国内知名手机厂商(主要有华为、小米、魅族、中兴、联想、酷派、OPPO、VIVO、HTC、TCL)的官方微博。

数据预处理主要包括以下几方面:

• 数据清洗:使用Python的库Beautifulsoup对数据集中html5标签进行解析,然后再删除重复数据。

• 分词处理:将文本分成有意义的单元,本文使用Jieba对文本进行分词。

• 删除无意义词:由于文本中经常包含一字词和停用词,为了获得更好的实验效果,所以需要删除无意义词。

数据预处理后,文档由k个有序词元素组成,如式(4)所示。

weiboi=wi1,wi2,…,wik

(4)

其中,wij表示weiboi中第j个位置上的词。

2.2.4 词表征

对于词表征,即是将词语表征为向量,如式(5)所示。

(5)

近年来,从海量非结构化文本数据中训练词表征,已经取得了卓有成效的研究。尤其Mikolov等人[10]提出Skip-gram模型,Skip-gram模型训练词表征主要是通过输入当前词语来预测词语周围出现的词语,简单来讲,它的数学模型就是给定文档的训练词组ws=ws1,ws2,…,wsT,训练对象的最大概率,如式(6)所示。

(6)

其中wst表示ws中第t个词,pwsj|wst表示出现词wst条件下出现wsj的概率,b表示第t个词前后b个词,即训练窗口大小。

2.2.5 触发器及企业行为识别

Ritter等人提出利用触发器识别社交媒体中人的行为,本文将其触发器思想运用到企业行为识别中,触发器及企业行为识别如下:

(1) 种子行为表征:利用种子数据中同一类企业行为中所有动词的平均词向量来表示这种子企业行为,如式(7)所示。

(7)

其中,seedei表示种子数据中企业行为向量,用seedei=vi1,vi2,…,vij,…,vim表示,i表示标签类型,Ri表示i类标签中的动词总数,vec(seedij)表示种子数据中第i类企业行为中第j个动词的向量。

(2) 同义词识别:浅层神经网络训练词表征,使得词向量保留了词语部分语义和位置关系。本文利用词向量的这个特性,进行同义词识别。根据cosine计算两个动词相似度。如式(8)所示。

(8)

(3) 触发器识别:在本文中假定语料库中动词都能在一定程度上触发某类企业行为。

第一步:利用(1)种子行为向量对剩余前top个高频动词进行同义词识别,如式(9)所示。

(9)

其中vi表示剩余的前top个动词词组中的第i个动词,vec(vi)是利用词表征得到的动词向量。

第二步: 取相似度值最大。如果最大值大于等于阈值u0,则动词的企业行为标签e*为最大相似度值;如果最大值小于u0,动词会被当成噪音过滤掉。如式(10)所示。

(10)

(4) 企业行为表征:利用触发器动词词组(triggerv)的平均向量表征企业行为,如式(11)所示。

(11)

其中,vec(triggervij)表示触发企业行为i中的j个动词,Ri为触发动词总数,由此得到企业行为向量表示为ei=vi1,vi2,…,vij,…,vik。

(5) 分类器:第一步:通过触发器表征企业行为ei;新文档向量用vec(weiboi)表示,利用cosine计算两者相似度。如式(12)所示。

(12)

第二步: 本文给sim(vec(weibok),ei)设定阈值用u1表示。如果sim(vec(weibok),ei)的最大值小于阈值u1,这将此篇文档标为NULL,反之,将此文档标注为相似度最高的企业行为标签。如式(13)所示。

(13)

其中,i*表示企业行为标签。

综上所述,对新文档的企业行为识别算法如表1所示。

表1 企业行为识别算法

2.3 企业行为演化模型

基于识别结果进行企业行为演化建模,演化分析包括两个维度:(1)企业在某一时间段的行为演化; (2)竞争型企业间行为的对比演化。演化分析的两个维度不仅可以研究企业自身行为趋势,而且可以对比竞争企业的市场走势。

基于以上两个维度,假设企业用集合C表示,即C=c1,c2,…,ci,…,ck,某一区间设为T=tx~ty,时间粒度设置为t个月,企业行为用E=e1,e2,…,ei,…,en表示。

对于某一企业ck(常量)的企业行为ei在时间区间T,时间粒度为t月的所对应的企业行为数量如式(14)所示。

(14)

因此,企业在时间区间为T,时间粒度为t月,企业ck所对应的所有企业行为ei占比如式(15)所示,其中Ratio主要用于衡量某一企业在时间粒度t发布信息的重点(即该阶段企业行为占比情况)。

(15)

同理,对于企业行为em(常量)在时间区间T,时间粒度为t月,某企业ci对应企业行为em数量表示如式(16)所示,

(16)

因此,在时间区间为T,时间粒度为t月,针对特定企业行为em所对应的k家企业的占比如式(17)所示,这里Ratio主要用于衡量在同一时间段,各个企业发布信息的重点(即该阶段不同企业的同一行为的占比情况)。

(17)

所以,通过以上两个模型,可以求得针对特定企业的某些企业行为占比情况,以及针对特定企业中某些企业的特定行为占比情况。由于企业行为都带有时间戳进而可以得到企业行为的演化情况。

3 实验

3.1 数据

本次实验数据来自新浪微博[注]http://weibo.com,数据对象是国内知名手机企业的官方微博(包括华为、小米、魅族、中兴、联想、酷派、OPPO、VIVO、HTC和TCL等十家企业),图2为企业账号发布原始数据样式。

图2 微博原始数据样例

本次实验一共爬取数据88 874条(数据量12.2MB),每条数据包括微博ID、账号名、发布时间、发布内容四个属性值。通过对语料库进行数值统计(表2),可以看到语料库中动词总数为1 397 726个。人工难以将所有动词进行准确标注,所以本文提出的触发器识别具有重要的意义。

表2 预处理后数据统计

续表

对语料库中所有动词进行统计,得到语料库中前100个高频动词词频统计,如图3所示。

另外,本文对微博账号的数据分布进行统计(表3),包括了每个账号名(ID号)、微博总数以及时间间隔。由于社交媒体平台系统记录了企业信息,非常有利于后续研究企业行为演化过程。

本次实验需要用到种子数据和基准数据,种子数据的主要目的是用于对企业行为进行分类,所以种子数据中每篇文档都被标注企业行为标签。基准

表3 微博数据分布统计

图3 语料库中剩余动词前100个高频动词

数据主要用于对分类器的准确率、召回率以及F值进行评估。为了标注数据,本文邀请志愿者随机读取文档,并根据对文档的理解给其标注对应的企业行为标签,第一份种子数据的标签类别分别是推广、发售、研发、合作、招募五类。第二份的标签分别是销售、研发、合作、推广四类。每组种子数据包括1 000篇文档,每一类型总数一致,基准数据集中包括300篇文档,每一类型总数一致,一共标注了两组基准数据。

3.2 训练词表征

对于词表征,本文通过Word2Vec训练词向量表征文档,可以通过Python调用Gensim[注]Genism来源:https://radimrehurek.com/gensim/完成的语料训练。

Word2Vec包括了两个模型,分别是Skip-gram和CBOW(Continuous Bag of Words),其中主要的参数是窗口、模型、维度。为了验证最佳窗口以及最佳模型,本文对数据集data_1和data_2进行分类评估,选择维度size=100(即将词映射成100维的向量);对于窗口以及模型参数,窗口参数取值列表window=2,3,4,5,6,7,8,模型参数列表sg=[0,1],sg=0表示选择CBOW,sg=1表示选择skip-gram,对比评价指标F_值如图4所示。

从图4可以明显看出,对于两组数据集,skip-gram模型都比COBW更好;而窗口选择window=7效果最好。

因此,本文选择的参数如下所示:

• 向量维度size=100;

• 内容的窗口大小window=7;

• 选择模型sg=1,即选择Skip-gram。

3.3 企业行为识别

3.3.1 触发器参数实验

触发器参数实验主要针对参数top(表示高频动词取值)。本文对剩余动词中前top个 高 频 词 进行触发器识别,通过对高频动词和种子数据中企业行为进行相似度计算。如果最大相似度小于阈值,则此高频动词无法触发企业行为,如果相似度最大值大于等于阈值,那么词高频动词触发了企业行为,将此动词加入到触发对应企业行为的触发器中。

图4 基于F_值指标的词向量训练窗口及模型趋势

基于数据集data_1,研究随着前top个动词变化(top=[100,200,300,400,500,600,700,800,900]),分类器的准确率、召回率和F_值的变化如图5所示,其中触发器阈值设定u0=0.3,分类器阈值设定u1=0.3

图5 Data_1高频动词对触发器影响

从图5明显看出随着top变化,识别效果会在某一个点达到峰值,data_1中峰值为top=400。实验表明,随着top增加,触发器识别能够提高企业行为识别。但随着top增加,噪音也会增加,触发器会降低企业行为识别准确性。

表4展示了触发器中每一类企业行为对应的前五个触发动词。根据触发器参数实验,在此触发器识别参数选择分别为:top=100,u0=0.3。

从表4中可以看出“发售”行为的触发器动词组识别效果较好,而其他企业行为都相应地加入了噪音动词。此结果说明触发器单凭阈值u0设置,不能够有效地过滤掉高频动词中的噪音动词,触发器识别导致企业行为加入了相应的噪音动词。

综上,对触发器参数识别中参数选择如下:

• 剩余动词中高频动词:top=400;

• 相似度阈值:u0=0.3

3.3.2 分类器识别效果

为了验证我们提出的企业行为识别模型的有效性,我们比较了其他四种表征词向量的方法,分别是词袋(Bag of Words,BOW)[11]、TFIDF+BOW、TFIDF加权以及LDA。LDA是一个无监督学习算法,将文档集中每一篇文档的主题以概率分布的形式给出;BOW假设文档中词汇是独立的,基于文档中的词汇来构建词典,最后用词典向量表征一篇文档;TFIDF+BOW则需计算数据集中每个词的TFIDF值,选择高频的TFIDF值的词形成词袋向量,从而表征文档;而TFIDF加权选择词的方式与TFIDF+BOW一致,只是向量每一维的值等于对应词语在该句中的TFIDF值,以它作为加权值,从而表征文档。它的主要缺点是忽略文本语法和语序关系导致识别效果不佳。对于四种方法,对比实验结果如下:

从图6可以看出基于Word2Vec表征文档向量的分类效果,明显优于其他四种表征文档的方法。其主要原因是:Skip-gram模型是一个浅层神经网络。它的每个词与其上下文建立联系(窗口控制),通过对语料库的训练使得参数得到优化,最终使得相关或者相似的词更接近,用于触发器以及企业行为识别的效果自然更优。但是,本文的方法也存在局限性,比如不能有效地识别出NULL,即识别出每一篇文档都具有企业行为。

图6 分类器对比实验结果

本文对于分类器识别,相似度阈值参数选择如下:u1=0.3。

3.4 行为演化形式化

根据演化模型,针对维度一,本文分别选取了华为、VIVO、中兴三家企业在2015年1月到2016年6月的数据,用于研究这三家企业五类企业行为上的演化过程。其中参数分别表示为T=2015.1~2016.6,t=1个月,ck=[“华为”,“中兴”,“VIVO”],E=[“发售”,“推广”,“研发”,“合作”,“招募”],最后得到了三家企业的演化过程。(如图7~图9所示)。

图7 2015.1~2016.6华为公司行为演化

图8 2015.1~2016.6VIVO公司行为演化

图9 2015.1~2016.6中兴公司行为演化

针对维度一,可以看出不同企业的行为分布差异明显,不同企业利用社交媒体平台的侧重点也不同。如图7和8,可以看出华为注重在社交媒体中发布企业“合作”和“研发”行为等相关的企业信息,而VIVO则是侧重将社交媒体平台作为一个营销推广平台,发布“招募”类信息。图9展示出中兴各类行为都有涉及,而“发售”行为占比很低。

针对维度二,分别取了华为、VIVO、中兴、小米四家企业在2015年1月到2016年6月的数据中“发售”、“研发”、“合作”、“推广”、“招募”五类企业行为。参数表示为T=2015.1~2016.6,t=1个月,C=[“华为”,“中兴”,“VIVO”,“小米”],em=[“发售”,“研发”,“合作”,“推广”,“招募”],五类企业行为具体演化如图10~图14所示。

图10 2015.1~2016.6四家企业“发售”行为演化

图11 2015.1~2016.6 四家企业“研发”行为演化

图12 2015.1~2016.6 四家企业“合作”行为演化

图13 2015.1~2016.6 四家企业“推广”行为演化

图14 2015.1~2016.6 四家企业“招募”行为演化

针对维度二,对于同一类的企业行为,竞争型企业之间具有不同的演化过程。通过分析竞争型企业间演化过程,能够了解预测对手的情况。图10针对“发售”行为,可以看出华为发布的“发售”信息较少甚至没有,而小米和VIVO两家以营销起家的企业明显更加侧重于在社交媒体平台进行营销,而中兴则是走“中庸路线”;图11针对“研发”行为,四家企业每月发布“研发”行为各有规律,其中华为的占比相对较高;图12针对“合作”行为,其中中兴和华为两家企业合作行为表现明显,而小米和VIVO发布关于“合作”行为的博文则相对较少;图13针对“推广”行为,其中VIVO和小米稳居高位,且呈现对抗趋势,即强竞争关系。而中兴、华为在社交媒体上发布“推广”信息明显低于前两家企业;图14针对“招募”行为,VIVO作为营销型企业,VIVO的招募行为明显高于其他三家企业。

4 总结与展望

社交媒体中海量的用户生成数据(User-generated Content,UGC)免费且易获取。这类数据具有重要的商业和研究价值,但传统的统计分析和自然语言处理方法不能有效地处理这些数据。因此,本文提出了利用深度学习工具Word2Vec和动词触发器有效识别企业行为的方法,然后再基于识别方法分析企业行为的演化过程。

研究结果表明:本文基于神经网络模型挖掘企业行为的方法明显优于传统方法,但是未来仍需要改进对NULL(空类)以及多类主题的识别。对于企业行为的演化分析,不仅可以用于分析企业自身演化,也可以分析竞争对手间对比演化,未来可以用于对企业发展规律、企业关系抽取、企业知识图谱等方向的研究。

猜你喜欢

触发器语料库分类器
浅谈时序逻辑电路的成长记忆
平行语料库在翻译教学中的应用研究
《语料库翻译文体学》评介
基于特征选择的SVM选择性集成学习方法
触发器在酒店管理系统中的应用
基于深度优先随机森林分类器的目标检测
基于差异性测度的遥感自适应分类器选择
基于层次化分类器的遥感图像飞机目标检测
语篇元功能的语料库支撑范式介入
几种常见触发器工作方式的讨论