1. 引言
大规模的数据是可靠分析的基础。谷歌制作的最大的历时语料库促进文化组学这一新型领域的发展,它是一种定量分析长期文化变化的新工具,通过对关键词在语料库中的使用频率变化,展示五百年来人类文化发展史思想和文化中鲜为人知的趋势和现象。然而,其前期数据质量较差,人们通常会选择1800年之后的数据进行研究,目前对于语料库的处理方法耗时且费力,因此本文提出将语料库噪声问题转化成时间序列异常检测问题来处理,进一步提高数据质量,从而使得五个世纪以来的数据得到更充分的使用。
2. 相关工作
近年来,谷歌公司与大学图书馆合作将世界各地的从古至今的出版物通过光学字符识别(Optical Character Recognition, OCR)技术进行数字化,建立了涵盖多种语言的谷歌图书语料库(Google Books Ngram Corpus, GBNC) [1] ,并发布了三个版本的n-gram数据集,分别为2009年7月(第1版)、2012年7月(第2版)和2020年2月(第3版)。第一版的语料库是谷歌公司根据OCR和书目元数据的质量扫描了超过500 W万册书籍(5000亿词),约占迄今为止出版的所有书籍的4%;第二版的谷歌图书语料库在建立过程中采用了更先进的数字化技术,包含了更多的标题、改进的OCR和修正的元数据等,同时增加到超800万本书籍(8000亿词)的数据,约占迄今为止出版的所有书籍数量的6% [2] 。本文主要研究第三版本的语料,它涵盖8种语言,分别是英语、西班牙语、法语、德语、俄语、意大利语、中文和希伯来语,其中英语占据主导地位,它是当今世界上最大的历时语料库。
基于图书版权等原因,谷歌公司制作出谷歌图书词频统计器(Google Books Ngram Viewer, GBNV)来方便人们进行研究。它可用来分析5个世纪以来单词或词组的使用频率,是一个交互式地量化分析语言变化趋势的便捷工具。当用户进行搜索时,可以从多种语言中选择,对于英语,他们可以区分英语、美式英语、英式英语和英语小说。通常,X轴代表语料库中作品的发表年份,Y轴代表n-gram在整个语料库中出现的频率,用户输入n-gram,然后可以选择区分大小写、日期范围、语料库语言和平滑等,即可得到对应的词组的语用频率。
Michel等 [1] 首次将GBNC研究成果发表在世界顶级期刊《科学》杂志之上,其借助谷歌图书的海量数字化资料,通过对关键词在语料库中的使用频率变化,分析了公元1500年到2000年间500多万本书籍语料库,展示了五百年来人类文化发展史中鲜为人知的趋势和现象,集中展示了其对于社会人文学科而言巨大的研究价值。这种通过电子化文本的量化分析研究人类行为与文化趋势的计算词典学方法的研究领域,被称为“文化组学(Culturomics)”,其迅速成为学者关注的焦点。
研究者对海量数字档案进行数据挖掘以研究人们使用的语言与词汇,进而揭示其中反应出来的文化现象。Twenge等 [3] [4] 报道了美国书籍中个人主义词汇和短语出现频率的增加。Kesebir等 [5] 记录了道德用语使用频率的下降,而Twenge等 [6] 则强调了脏话使用频率的增加。此外,Greenfield [7] 的发现表明,在美国和英国,个人主义的增加和生态变化之间存在关系,这源于美国和英国英语语料库中的词频变化。在国内,文化组学的研究也如雨后春笋般涌现,如在中国这样的集体主义社会,通过追踪民间信仰或人称代词的概念,个人主义也在上升 [8] [9] 。邵斌 [10] 以浙江文化关键词为研究对象所展现的词频变动轨迹去探究浙江文化在英语世界中的影响力。曾凡斌等 [11] 通过传播学学科的关键词首次利用GBNC这一大数据分析工具分析传播学学科的发展。陈云松 [12] 通过社会学的关键词的词频研究19世纪以来的社会学发展趋势,并对社会组学建立展望。
尽管GBNC基于数据量之大、时间跨度范围之广、搜索功能之强大的特色被越来越多的研究人员接受,但也有学者质疑其结果的可靠性 [13] - [20] ,主要的批评包括OCR不足、缺乏代表性及错误的元数据。首先,此项工作是由不同的大学合作完成的,OCR的差异导致了数据质量不佳,其中大部分是由于古籍印刷质量不佳所致,例如,字母s在古代英语书籍中经常被认作f,在17世纪所扫描的书籍中,大约有一半被错误地识别为beft,随着谷歌对于设备的升级,在21世纪的当代书籍中,错误率为0.02%。其次,整个语料库文献的比例及单个作者可能用特定的词和短语严重影响数据集的准确性引起学者对于代表性的质疑。最后,书籍的规格、出版时间等元数据问题也引发争议。
如果依靠人力去阅读这些数据去分析文化组学这个问题可能需要一个人几千年才能完成,谷歌所完成的相对词频的分析暗示文化变化的各个方面,语言中特定单词和短语的流行度可能会因多种原因而发生变化,包括技术背景(如,计算机),并且某些单词的含义会随着时间的推移而发生深刻变化(如,gay)。尽管如此,在大量单词中,频率的变化模式可能在一定程度上反映了人们感受和看待世界的方式的变化,因此我们认为GBNC仍是一种对专家和非专家都有利的语言趋势检测的工具。目前,较火的两种处理GBNC方案:第一种是从语料库中提取所有可能的支持数据,如不仅考虑单个单词,还要研究其他形式甚至是同义词的行为 [21] [22] ,研究不同语料库(普通英语、英式英语、美式英语)中含义相同的术语 [3] ;第二种是对原数据进行预处理,如删除所有非单词的标记(字符串) [23] 等。上述两种处理方式耗时且费力,且纠正所有的错误是一件不可能的事情,因此本文提出将语料库噪声问题转化为时间序列异常检测问题来解决局部质量对齐问题。
3. 时间序列分析方法
时间序列 (Time Series, TS)是一组按照时间发生先后顺序进行排列的数据点序列,时间序列分析是将数据文件中某一变量的观测值按时间顺序排列成一个数值序列,时间顺序可以是任何单位的,如时、日、周、月、年等,展示研究对象在一定时期内的变动过程,分析事物的变化特征。本文主要从以下两种方式来进行时间序列分析:一种是建立相应的数学模型,如指数平滑法、整合移动平均自回归模型(Autoregressive Integrated Moving Average Model, ARIMA) [24] 等,描述系统的时序状态;另一种是可视化时间序列 [25] [26] ,重新构造数据,提取特征并转化为复杂的网络,在保持时间和频率动态的同时,将信息映射到原始时间序列不要使用空格、制表符设置段落缩进,不要通过连续的回车符(换行符)调整段间距。
3.1. 传统时间序列模型
简单指数平滑是在考虑所有的数据的时候给数据赋予不同的权重,对时间点t + 1的预测值
是t时的观测值
和t时预测值
的加权平均值,数学表达如公式(1),其中α为平滑参数。
(1)
每个时序数据集都可以分解为相应的几个部分:趋势、季节性和残差。任何呈现某种趋势的数据集都可以用霍尔特线性趋势算法来进行预测,该算法由预测函数和两次平滑函数组成,一个是水平函数,一个是趋势函数
,以及平滑参数α和β。
是观测值和样本内单步预测值的加权平均数,
是根据
和之前的预测趋势
在时间t处的预测趋势的加权平均值,预测函数就是将这两个方程相加得到的,数学表达公式如(2)、(3)和(4):
(2)
(3)
(4)
ARIMA (p, d, q)模型是将观察对象随时间拖移而形成的时间序列看作一个随机序列,用一定的数学模型去近似描述这个序列。它是自回归模型(Auto Regressive, AR)、Integrated和移动平均模型(Moving Average, MA)的结合,将序列中的下一步预测结果为历史的观测值和残差的线性函数。AR描述当前值与历史值间的关系,它适用于没有趋势和季节性的时间序列,预测与历时数据相关的时间序列即平稳的时间序列。一般p阶自回归模型AR数学公式定义如(5):
(5)
Integrated用来在预测非平稳时间序列时,对时序数据进行d阶差分化,使得时间序列变平稳,即数据值被相邻观测值的差值替代;MA关注的是自回归模型中的误差项的累加,它将观测值与应用于滞后观测值的移动平均模型的残差之间的相关性合并,参数q表示预测模型种预测误差的滞后数。一般q阶移动平均模型MA数学公式定义如(6):
(6)
自回归移动平均模型ARMA是自回归AR与移动平均MA的结合,将序列中的下一步预测结果为历史的观测值和残差的线性函数。一般自回归移动平均模型ARMA数学公式定义如(7):
(7)
ARIMA是将非平稳的时间序列进行差分,计算相邻观测值间的差值,在将数据带入ARMA公式中。
3.2. 马尔可夫模型
马尔可夫转移场(Markov Transition Fields, MTF)是一种突出时间序列行为的可视化技术,将时间序列可视化为基于一阶马尔可夫过程和时间顺序的复杂网络,更好地保存了时间相关性和频率结构。一般来说,复杂的真实世界序列数据很难通过可视化来观察他们的特征,先要对嵌入在时间序列中的时间动态进行深层次的分析,一种可能的解决方案是重新构造数据,提取特征,以便更好地对时间依赖性进行视觉编码。在本文中,我们构造马尔可夫转移矩阵,将提取得到的特征转化为复杂的网络,并且保持时间和频率的动态,同时存在一个反向操作将信息映射回原始时间序列。
首先,将时间序列量化。给定一个时间序
,将时间序列离散化,实行数据分箱
。
其次,建立马尔可夫转移矩阵。把一连串的数据
转换为不同等级的数据
,每个值
被映射到每个
中,构造一个Q*Q的加权邻接矩阵W,方法是沿着每个时间步,以一阶马尔可夫链的方式计算箱之间的转移概率。W的数学公式如(8):
(8)
其中,
是
中一个点后面跟着
中一个点的频率,
。
然后,建立马尔科夫转移场。MTF通过将每个概率沿时间顺序排列来扩展马尔可夫矩阵M,即顺序表示马尔可夫转移概率,以保留时域中的信息。M数学公式如(9):
(9)
为使矩阵M进行更高效的计算和可视化,对其采取两种常见的降维技术:分段聚合近似(Piecewise Aggregate Approximation, PAA)和模糊(Blurring)。
最后,提取M中的有用信息映射回原始时间序列,即将MTF对角线上的转移概率映射回原始时间序列。
4. 实验结果与分析
GBNC获取的数据是关键词历年的使用频率,可以看作是数据文件中关键词的观测值按年排列成的一个时间序列,针对该语料库中的局部数据质量对齐问题,本文提出了将语料库噪声问题转化为时间序列检测问题。时间序列异常检测(TS Anomaly Detection)的主要目标是从时间序列中识别异常的事件或行为。异常的两个标准:1) 异常数据跟样本中的大多数数据不太一样。2) 异常数据在整体数据样本中占比比较小。目前,常见的无监督机器学习异常检测主要分为基于预测的方法和基于重构的方法。
本文使用两种方法来将语料库噪声问题转化为时间序列的异常检测问题:一是使用传统的时间序列模型去预测时间序列,将预测值与实际值的差值作为特征放入到孤立森林里面去实现异常点检测 [27] ;另一种是可视化时间序列,从而找到偏离正常轨道的信号来达到进一步提高数据质量的目的 [26] 。
4.1. 传统时间序列
首先,获取数据。GBNC被广泛应用于文化组学中去研究人类行为与文化趋势,此语料库包含了大量的关键词,如果下载整个语料库需要大量的人力与物力,因此使用爬虫去爬取GBNC中的部分关键字的词频。本文爬取2135组拉丁词组在英语语料库中的词频,其中smoothing设为0,case_insensitive设为true,year设为1500~2019,corpus设为en-2019。
然后,对时间序列进行预处理,对时间序列进行平稳性检测,对于非平稳的序列通过差分、log变换或平方根变换转化为平稳序列,使用简单指数平滑算法(图1(a))、霍尔特线性趋势算法(图1(b))、ARIMA (图1(c))三种传统时间序列预测模型作为特征提取器。参数的选择是基于我们的经验和领域知识。这几种模型计算复杂度低,性能良好,已在异常检测文献中得到了验证,如果需要可以添加其他合适的预测模型。对于不同的时间序列预测工具,我们可以得到不同的预测值
,然后预测值
减去实际值
并取绝对值,得到时间序列的误差序列
,将这个作为数据
的特征,最后使用孤立森林(Isolation Forest)来对时间序列的特征来做无监督的异常检测。
(a)
(b)
(c)
Figure 1. Diagram of “de facto” anomaly detection of traditional time series models
图1. “de facto”的传统时间序列模型的异常检测图
本文对上述词组的词频进行异常检测,基于版面原因仅展示“de facto”的异常结果,如上图所示,蓝色为实际的数据,灰色为时间序列的预测数据,红色的点为孤立森林算法得到的异常的数据点,异常的数据几乎都出现在前期,但基于以下两点原因传统时间序列模型不是本实验的最好方法:一是传统的时间序列模型在预测时间序列时会产生负值,这与实际意义不符(词频最低为零,不会出现负值);二是传统的时间序列模型是从前往后去预测,而GBNC的数据前期的质量问题最严重,导致后续的研究会出现较大的偏差。
4.2. MTF异常检测
本文采取MTF来进行异常检测,它解决上述实验的问题,重新构造数据,提取特征来进行时间序列分析。首先,使用Python包Pyts进行时间序列分类,将时间序列离散成不同的值,然后建立一个马尔可夫转移矩阵来计算转移概率。随后,本文将每个概率沿时间轴对齐,来构建“de facto”的MTF,其中横坐标表示1500~2019年,纵坐标表示1500~2019,颜色表示其自转移概率。
PAA主要应用在分类和查询任务等展示主要趋势而忽略时间序列的详细结构,而本实验需要保留原始数据中的信息,通常选用对原始信号进行小的信息损失,因此本文使用模糊化来对MTF进行压缩从而获取聚合的MTF (图2(b))。最后,本文将自转移概率(MTF对角线上显示的转移概率)映射回原始时间序列,以更好地理解时间序列的性质和行为,“de facto”结果如图2(a)所示。我们发现,前期的数据其转移概率越高(蓝色偏深),前期的数据质量较差;后期的数据其转移概率越高(红色偏深),说明后面的数据质量比较高。
(a) (b)
Figure 2. Diagram of “de facto” anomaly detection of Markov Model
图2. “de facto”的马尔可夫模型的异常检测图
通过观察整个时间序列的自转移概率,本文n_bins为4,将低于0.3的时间点视为异常点,整合2135组拉丁词组的异常点,本文发现大部分的异常点都集中在1500年至1800年之间,其英语语料库中的结果如图3所示,这也与上文所提出的学者质疑相吻合。

Figure 3. Diagram of all Latin phrases anomaly detection of Markov Model
图3. 全部拉丁词组的马尔可夫异常检测图
5. 结束语
本文以GBNC的学者质疑为出发点,研究改进语料库局部质量对齐的方法,首次提出将语料库噪声问题转化为时间序列异常检测问题。本文通过传统的时间序列模型和时间可视化方法,结合数据本身特点来实现异常检测。最终,本文发现,GBNC语料库的前期数据即1500~1800存在很大问题,异常数据较多,这也导致大多数学者选择1800之后的数据进行文化组学的研究,但前期300多年的历时数据也是具有很大研究意义的。最后,本文总结出现早期数据质量较差的原因如下:
· 元数据错误。这其中包括错误归属的作者、错误的出版日期、错误的主题分类、错误拼写的标题、作者和出版商等,甚至存在一本书的元数据附加到另一本完全不同的书。
· 扫描错误,包括书籍质量和OCR质量。在通过OCR转换成数字化文本的过程中,早期的书籍印刷质量较差,且实现较长不易保存,导致可能出现无法阅读、上下颠倒或顺序错误等问题,从而影响扫描质量;此项工程是由多个机构共同承担,它们的OCR技术不统一也可能会影响扫描质量。
· 书籍自身问题。书籍规格、题材等存在差异,存在单栏或双栏的格式,也会影响数据质量。
· 书籍出版有周期,时间跨度较大,数据存在噪声。
虽然GBNC的早期数据存在问题,但是对于研究历时变化(500多年的文化变化)具有重大的意义,所以本文不建议直接将早期的数据直接忽略,后续的研究将针对如何处理异常的数据点,从而更好地完成文化组学的研究。在大数据时代,对海量数据的科学定量分析能提供给我们一些原先无法预测到的结果,这必将促进更多领域的发展。
参考文献