3.2.5 SCTE算法的实验结果与分析
通过在主题建模和搜索应用任务上的多组实验来验证SCTE算法在主题表达上的有效性。采用多个评价指标对SCTE算法进行评价。
1.实验设置
(1)数据集
使用爬取的200万条新浪微博数据作为实验数据。对数据进行如下预处理:删除重复的文档;分词、去停用词;删除出现少于8次的词;移除小于3个词的文档。
(2)对比算法
采用LDA、GSDMM、Twitter-TTM、PTM、LTM及DCT等多个主流的主题建模与表达算法作为对比算法。
(3)参数设置
在实验中,对于静态主题模型如LDA、GSDMM、PTM和LTM,设置超参数α=0.1,β=0.01,参数κ的值从0到1变化,π的值从0到1 000变化。
2.实验一:SCTE算法与对比算法的主题一致性比较
设置主题K的值分别为50和100,设置C的值分别为5、10和20。利用中文维基百科文章作为辅助语料库来计算SCTE算法与对比算法的主题一致性(PMI-Score)。SCTE算法与对比算法的主题一致性(PMI-Score)的比较如表3-2所示。
表3-2 SCTE算法与对比算法的主题一致性比较
我们提出的SCTE算法的主题一致性结果明显优于对比算法,这表明SCTE算法能够从微博短文本中学习到更一致的主题,主要原因是SCTE算法通过自聚合短文本为长文本,并直接建模词对共现信息,能够解决短文本上下文稀疏性问题,进而学习到更加一致的主题。LTM算法的结果优于LDA和GSDMM算法,主要原因是LTM算法通过自聚合文档方式,解决了社交网络上下文稀疏性问题,使其能生成好的主题表示。
DCT算法的主题一致性结果优于LDA和GSDMM算法,主要的原因是DCT能够建模时间的动态性,并在一定程度上解决了社交网络上下文稀疏性问题。与LDA算法相比,Twitter-TTM、PTM及GSDMM算法也取得了好的主题一致性结果。LDA算法表现最差,主要原因是LDA算法建模短文本时仍然按照长文本来建模,无法缓解社交网络上下文稀疏性问题。
3.实验二:SCTE算法与对比算法的主题分布比较
为了进一步验证SCTE算法在主题建模与表达上的有效性,我们从结果中随机选择两个高频,且同时出现在SCTE算法和对比算法结果中的主题,列出概率最大的前10个词来评价主题表达质量,如表3-3与表3-4所示。
从表3-3的实验结果可以看到,SCTE算法的结果与“雅安地震”话题较为相关;DCT和LTM算法的结果也比较接近“雅安地震”这一话题;GSDMM算法包含了一些不相关的词,如“美食”和“麻辣”等;LDA算法的结果包含了较多大众化的词,仅仅有部分词与主题相关,表明其主题表达的性能较差;Twitter-TTM算法的结果优于LDA算法的结果,但是,其结果中仍然混杂了多个不同的主题。与其他对比算法相比,SCTE算法能够有效地对在线社交网络主题进行表达。
表3-3 SCTE算法与对比算法获取的与“雅安地震”相关的前10个词
从表3-4的实验结果看出,SCTE算法生成的结果更加接近于“交通事故”话题;LDA算法生成的结果包含了“音乐”“食物”及其他不相关的词;DCT算法的结果与主题较为接近,但也包含了一些高频词如“青岛”“乌云”等。这表明与其他对比算法相比,SCTE算法在主题表达上获取了最好的性能,且具有显著的鲁棒性。
表3-4 SCTE算法与对比算法获取的与“交通事故”相关的前10个词
4.实验三:SCTE算法与对比算法的主题表达质量比较
通过利用聚类纯度(Purity)和聚类熵(Entropy)来评价主题表达的质量。聚类纯度(Purity)和聚类熵(Entropy)是两个评价聚类质量的标准方法,其中,聚类纯度(Purity)的值越高,表明其方法具有较好的性能,与之相反,聚类熵(Entropy)的结果越小,表明其具有较好的聚类结果。采用话题标签(hashtags)作为类标,选择每日出现次数是微博数据集中每日平均出现次数的两倍以上的话题标签,基于话题出现次数进行排序,选择5个高频且意义清晰的话题标签作为测试集的类标。随机选择1/10的数据移除话题标签作为测试集。SCTE算法与对比算法的聚类纯度(Purity)和聚类熵(Entropy)实验结果分别如图3-3(a)和图3-3(b)所示。
从图3-3的实验结果可以看出,SCTE算法在聚类纯度(Purity)和聚类熵(Entropy)上的结果均优于其他对比算法,表明SCTE算法能够从在线社交网络文本中准确地分析和表达主题,其主要原因是SCTE算法在文本聚类任务中,通过动态地自聚合短文本为长文本,能够有效地增强上下文语义信息。DCT算法的结果优于LTM、PTM、Twitter-TTM、GSDMM和LDA算法,但是与SCTE算法相比其结果要差。上述的实验结果表明,在社交网络短文本流中建模主题的动态分布有助于提高主题表达的质量。LDA算法表现最差,表明解决短文本上下文稀疏性问题有助于提高文本主题表达的性能。
图3-3 SCTE算法与对比算法的聚类结果比较
5.实验四:SCTE算法与对比算法的搜索性能比较
通过将主题表达的结果应用于搜索任务,能够进一步验证SCTE算法的主题表达性能。通过利用搜索似然模型,将SCTE算法应用于文本搜索任务来评价主题表达的质量。将SCTE算法和对比算法的主题表达结果输入似然搜索模型来进行微博搜索,通过搜索的性能来验证主题表达的质量。搜索似然模型如式(3-10)所示:
其中,n(w,s)表示在词w在查询s中的词频,P(w|t,d)表示聚合文档d与搜索词w相关的概率。通过利用权重语言模型可以计算P(w|t,d),具体的计算如式(3-11)所示:
其中,κ表示权重参数,π表示狄利克雷先验,P(w|t,d),P M(w|t,d)和P C(w|t,d)分别表示词在聚合文档d,短文本d r和聚类词中的最大似然估计。上述参数可以通过基于LDA的搜索模型进行计算,计算公式如式(3-12)所示:
其中,P(w|t,d,k)表示在时间片t,词w与主题k相关的概率。P(k|t,d)表示聚合文档d分配给主题k的概率。
为了评价SCTE算法与对比算法的微博搜索性能,采用人工标注的方法标记搜索结果,使用谷歌或者百度搜索等工具作为判断的外部工具。提取25天时间间隔的数据构建微博流数据场景。获取4个数据集:(2013年中的)3月7日、4月1日、4月26日、5月26日。在测试集中,基于出现的次数对数据进行排序,选择前100个高频的主题作为查询。将上述5个集合作为真值(ground truths),采用归一化折损累计增益(NDCG)、平均准确率(MAP)、召回率(Recall)和前N个值的准确率(P@N)等标准的信息搜索评价指标来评价搜索的性能。按6∶3∶1的比例分割数据集为训练集、验证集和测试集。最优的κ和π的取值由验证集决定。实验重复10次,取所有评价指标结果的平均值。
(1)权重参数的影响
通过改变权重参数的值来分析权重参数对搜索性能的影响。实验设置权重参数κ的值从0到1变化。实验结果如图3-4所示。
当κ=0时,SCTE算法与对比算法的搜索性能一致,随着权重参数κ从0增加到0.7,SCTE算法和对比算法的性能快速提升。SCTE算法的搜索性能显著优于其他对比算法,主要原因是SCTE算法能够生成接近于查询主题的高质量的主题表示。
当κ值超过0.7时,SCTE算法和对比算法性能都显著下降。这是因为随着更多主题的生成,给搜索任务带来了挑战。当权重参数κ=1时,SCTE算法的表现仍然优于其他对比算法,主要原因是SCTE算法能够持续地为搜索任务生成一致性的主题。
图3-4 SCTE算法与对比算法在不同权重参数设置下的搜索结果对比
(2)隐主题数量的影响
为了验证隐主题数量对搜索性能的影响,我们对每个查询设置隐主题数量的变化范围为2~20,比较4个标准搜索评价指标的结果。不同隐主题数量的搜索实验结果如图3-5所示。
从图3-5可以观察到,随着隐主题数量的增加,SCTE算法和对比算法的搜索性能变化明显,当隐主题数量从2增加到12,SCTE算法和对比算法的搜索性能显著提升。当隐主题数量大于12时,SCTE算法和对比算法的搜索性能趋于稳定。
图3-5 SCTE算法与对比算法在不同隐主题数量下的搜索结果对比
当隐主题数量大于12时,SCTE算法仍然表现出较好的性能。与LDA、GSDMM、Twitter-TTM、PTM和LTM算法相比,DCT算法也获得了好的搜索结果。但与SCTE算法相比,DCT算法的表现稍差。上述结果表明,SCTE算法通过自聚合短文本为长文本,并动态建模主题能有效地提升主题表达的性能,进而获取了较好的搜索结果,且具有鲁棒性。在SCTE算法和对比算法中,LDA算法的搜索性能表现最差,主要原因是LDA算法无法从微博流数据中较好地学习主题,且无法解决短文本上下文稀疏性问题。
(3)时间间隔的影响
为了验证流数据中时间间隔的影响,采用归一化折损累计增益(NDCG)、平均准确率(MAP)、召回率(Recall)及搜索返回的前30个结果的准确率(P@30)来验证搜索性能,数据集基于5个不同的时间片进行划分。不同时间间隔的搜索结果如图3-6所示。
图3-6 SCTE算法与对比算法在不同时间间隔下的搜索结果对比
SCTE算法显著优于其他对比算法,表明在不同的时间间隔设置下,相比其他基准算法,SCTE算法能够获取到较好的搜索性能。其他对比算法的搜索性能顺序依次为LTM、PTM、Twitter-TTM、GSDMM和LDA。SCTE算法的表现优于DCT算法,表明SCTE算法聚合短文本为长文本,并捕获主题的动态变化,其性能优于直接建模动态主题算法的性能。SCTE算法的性能优于GSDMM算法,表明通过建模主题的动态变化能够学习到更一致的主题。
主题模型PTM和LTM的表现优于主题模型Twitter-TTM,主要原因是主题模型Twitter-TTM在主题表达的过程中要求复杂的启发式信息,且仅仅区分建模主题词和普通词,无法有效地解决社交网络上下文稀疏性问题。随着时间间隔的增加,SCTE算法和其他对比算法的搜索性能显著下降,主要原因是用户兴趣和偏好的动态变化给搜索任务带来了挑战。SCTE算法在所有时间片的结果仍然是最优的。
6.实验五:聚合文档数量对SCTE算法性能的影响
当文档数量D较小时,学习到的主题的一致性较差。因此,在SCTE算法中,有必要验证聚合文档数量对主题表达和建模的影响。利用主题一致性(PMI-Score)作为评价指标来验证聚合文档数量变化对主题表达和建模的影响。在PMI-Score计算中,设置C的值为10,聚合文档数量设置为5~2 000,隐主题的数量K分别设置为50和100,观察主题一致性(PMI-Score)值的变化。SCTE算法在不同的聚合文档数量下的主题一致性结果如图3-7所示。
图3-7 SCTE算法在不同的聚合文档数量下的主题一致性结果
随着聚合文档数量从5增加到1 000,SCTE算法的主题一致性(PMI-Score)结果显著提升。随着聚合文档数量的增加,能够提供更丰富的上下文词共现信息,其性能不断增加。可以观察到K等于50的性能优于K等于100时的性能,主要原因是微博上下文缺少词共现信息,而当主题数量过多时会加剧该问题,并使得主题中混合了大量的无关话题。当聚合文档数量D较小时,SCTE算法学习到的主题一致性的结果较差,这是因为当聚合文档数量较少时,即使SCTE算法能够在一定程度上解决微博上下文稀疏性问题,但由于聚合文档太少,仍然使得在主题表达过程中存在上下文稀疏性问题。当聚合文档D的数量大于400时,SCTE算法获取了较好的主题一致性结果,主要原因是SCTE算法要求足够多的文档来确保训练过程中建模的准确性。随着聚合文档数量从1 000增加到2 000,SCTE算法的主题一致性(PMI-Score)趋于稳定,表明SCTE鲁棒性较好。