一、背景
在微博上,用户用有限数量的字去记录生活或者表达感情。因此,微博被广泛用于舆情分析,预测等许多其他的应用。微博包含一种元数据标签形式(metadata tag, hashtag),hashtag是一串前缀为#的字符串。在微博内,Hashtags被当做关键字或者话题,有着广泛的应用,比如微博检索(microblog retrieval),查询展开(query expansion),情感分析(sentiment analysis)。
可是,只有很少的用户才会为微博打上hashtags,因此,自动推荐hashtags的任务变成了很重要的研究课题,最近几年受到了很大的关注。针对这一任务,研究人员使用了多个模型的特征进行建模,协同过滤(collaborative filtering),生成式模型(generativemodels),深度神经网络等。
大多数方法通常基于词汇级特征,如BoW等,有研究表明word trigger的有效性。这意味着一个给定句子的实质内容可以通过其中的一些重要词语来实现。
二、亮点
为了使用word trigger机制,本文提出了一种新的基于注意力的CNN结构,该结构结合了local attention channel 和 global attention channel。
在全局通道中,所有单词都将被编码;而在局部注意通道中,只编码几个触发单词,这取决于gate score。
三、模型具体结构
1. 局部注意通道
首先在第i步,会对第i个词在文本上下文的重要程度进行计算,这里的window size设为5:
并且设置一个阈值,达到该阈值的词会被视为触发词(trigger words)。局部注意层使得提取微博中最重要的单词成为可能。接下来的计算就只会考虑到触发词。
接下来是一个折叠层,目的在于提取触发词的特征。z依旧是word embedding的维度。
2. 全局通道
在全局通道里,捕获的是文本全局的特征表示,z是对l个单词word embedding的卷积:
为了获得多个特征,我们在模型中使用具有不同窗口大小的多个过滤器。本文设置的是1、2、3,对于每种window size,feature map的数量设为100。
然后使用池化操作,可以为每个特征映射提取最重要的特征,并可以处理不同长度的微博。
3. 分类层
在局部注意通道和全局注意通道后,我们使用具有多个特征映射的卷积层来组合局部注意通道和全局注意通道的输出:
最后是分类器:
根据全连接层输出的分数,我们可以对每个微博的标签进行排名,并向用户推荐排名靠前的标签。
参考资料:
- 基于CNN和attention的标签推荐(IJCAI 2016)
- 论文笔记:Hashtag Recommendation for Multimodal Microblog Using Co-Attention Network