Zhou D, Guo L, He Y. Neural storyline extraction model for storyline generation from news articles[C]. Association for Computational Linguistics, 2018.
摘要翻译
故事线生成旨在提取某一特定主题下描述的事件,并揭示这些事件是如何随着时间的推移而演变的。大多数现有的方法首先训练监督模型从不同时期发表的新闻文章中抽取事件,然后将相关事件连结成连贯的故事。它们依赖于域,不能处理未见的事件类型。为了解决这个问题,基于概率图形模型的方法联合建模事件和故事线的生成(在没有注释数据的情况下)。然而,参数推理过程过于复杂,并且模型往往需要很长时间才能收敛。在本文中,我们提出了一种新的基于神经网络的方法来提取结构化表示和进化模式的故事线,而不使用注释数据。在提出的模型中,一篇新闻文章的标题和主体被假定为共享相似的故事线分布。此外,假设在相邻时间段中描述的类似文档共享相似的故事线分布。基于这些假设,可以提取出故事情节的结构化表示和演化模式。该模型在三个新闻语料库上进行了评价,实验结果表明,该模型优于现有的计算方法的准确性和效率。
intro学习
In general, storyline can be considered as an event cluster where event-related news articles are ordered and clustered depending on both content and temporal similarity.
关于该模型的建立,作者主要给出了两个合理的假设:
(1)that the storyline distributions of a document’s title and its main
body are similar.
因此可以使用成对排序的方式进行模型优化。
(2)*that similar documents described in neighboring time periods should share similar storyline distributions.
因此,在前一时间段学习的模型可以用于指导当前时期模型的学习。
基于这两个假设,该模型可以提取并关联出相关的事件。此外,还执行了基于置信度分数的故事线过滤。这使得生成新的故事情节成为可能。
方法浅析
为了从文档流中模拟在连续时间段内生成的故事线,作者提出了一种基于神经网络的方法,称为神经故事线提取模型(NSEM),如下图所示。以上模型基于两个合理的假设:
- Assumption 1: for a document, the storyline distribution of its title and main body should be similar.
一般来说,对于任何给定的文档,它的标题和主体都应该讨论相同的故事情节。虽然标题可能存在隐喻和转喻来抓住读者的眼球,但关键的实体和用词并不会改变,如名称、位置等。因此,可以合理假设文档的标题及其主体具有相似的故事线分布。标题和主体的故事线分布记为和。并且二者应该很相似。基于这个假设,时间段的文档可以以这种方式聚类成多个故事线。表示对于主体的正确标题(正例),而表示一个不相关的标题(负例),从主体和从正确的标题获得的故事情节分布的相似性应该远远大于从不相关的标题获得的相似性,即:
- Assumption 2: for similar documents in neighboring time periods, they should share similar storyline distribution.
基于这个假设,在不同时间段内提取的事件可以被链接成故事情节。由于新闻文章的主体包含的信息比标题更多,所以作者只使用主体的故事情节分布来简化模型结构。前一时间段的学习信息用于监督当前时间段的学习。
基于上述两个假设,上图所示的NSEM包含以下四层:
(1)Input layer,以、和作为输入,并将这些文本转换为向量;
(2)Main body-Storyline layer 和 (3)Title-Storyline layer,两者被设计用来生成故事线分布;
(4)Similarity layer,其目的是计算主体与标题的故事情节分布之间的相似性。
在图的上方,使用前一个时间段学习的模型来指导当前时间段的故事线分布学习。
Input Layer:
输入层的目标是用分布式嵌入和来表示主体和标题。对于新闻文章,作者更多地关注事件的关键元素,如位置、人、组织和关键词。因此,一个事件可以用一个四元组表示:。
从主体中提取这些元素,并将它们的单词嵌入连接为特征向量
具体做法:首先识别出其中的命名实体记录为“single-token”,并训练word2vec将每个实体都表示为一个100维的向量。还根据TF-IDF等一些标准过滤掉不那么重要的关键字和实体。对于包含同一事件元素类型的多个实体的文档,根据其出现次数,计算所有位置嵌入的加权和。如果文档中缺少某个事件元素,则将其设置为“null”。在连接了四个关键事件元素后,每个文档或标题都用一个400维的嵌入向量来表示。
Main body-Storyline Layer:
这一层的目的是表示主体的故事线分布。假设总共有个故事线,故事线分布是一个维向量,表示为:。这一部分的相关计算可以形式化为如下:
Title-Storyline Layer:
这一层的目的是表示标题的故事线分布。
其形式和方法与Main body-Storyline Layer的计算一样,这里将不进行赘述。
Similarity Layer:
这一层的目的是计算和之间分布的相似性。
Storyline Construction
与将相关事件链接到故事情节中的常见方式不同,该模型在一个统一的框架中提取它。根据前序提到的第二个假设,对于当前的时间段,作者使用前一个时间段的故事线生成结果作为约束条件来指导在时间段的故事线生成过程。对于时间段中的文档(这里只使用新闻文章的主体),首先使用中训练的模型来预测它的故事线分布。因此,当在学习时,我们就会期望它类似于。通过这样做,该模型可以将不同时间段内的相关事件联系在一起。对于观察到间歇性故事情节的情况,【即,相关事件最初发生,但在一定的时间段内消失,之后再发生】 则从之前的所有时间段中随机选择文档,让它们参与到当前模型的学习中来。
Training
在训练中,依赖的是之前给定的两个假设:
(1)对于一个文档,它的标题和主体应该共享相似的故事线分布。即使用成对排序方法来优化和。其基本思想是,主体的故事情节分布应该更类似于相关的标题,而不是不相关的标题。
(2)基于相邻时间段内的相似文档,它们应该共享相似的故事线分布。作者以前后时间线为对比,构建了如下分布相似性损失:
因此,总体的损失函数可以表示为:
其算法过程伪代码如下:
Post-processing
因为每个时间段的故事线数量被认为是相同的,一些新出现的故事情节可能会被错误地与之前的时间线联系起来。因此,需要进行后处理来过滤掉这些错误的关联。我们假设,如果当前的故事情节与之前提取的故事情节没有任何共同的关键元素,那么它应该被标记为一个新的故事情节。
论文中定义了故事线的覆盖范围( Coverage)如下:
与之前听说的一样,故事线生成算法好像并没有什么固定的方式和途径,无论是两个合理的假设还是将事件转换为一个四元组,其方式都是启发式的,包括中间所用到的TF-IDF的过滤机制,还是后处理中新故事线的生成,都是一些经验式的方式。总体来说,使用的模型方法以及Loss的构造都是常见的,最重要的一点应该是问题的定义以及形式的转换。【只敢小声bb。。】