摘要
在真实的社交网络中,标签被广泛应用于理解单个微博的内容。然而,用户在发布微博时并不总是主动添加话题标签,因此需要投入大量精力进行自动的话题标签推荐。作为一种新趋势,用户不再仅仅发布文本,而是更愿意分享多模态数据,如图像。针对这种情况,我们提出了一种基于注意力的多模态神经网络模型(AMNN)来学习多模态微博的表示并推荐相关的标签。在本文中,我们将hashtag推荐任务转换为一个序列生成问题。然后,我们提出了一种混合神经网络方法来提取文本和图像的特征,并将它们合并到序列模型中进行标签推荐。在Instagram和两个公共数据集上的实验结果表明,该方法的性能优于现有的方法。我们的模型在三个不同的指标上实现了最佳性能:精度、召回率和准确性。
引言
近年来,社交网络已经发展成为人们交流和分享信息的强大平台。随着移动互联网的发展,人们参与网络活动,花费更多的时间在社交媒体上,产生了大量的数据。为了避免被淹没,一个改善信息传播的好选择是通过使用话题标签。作为一种手动用户驱动的标签机制,hashtag可以用于标记每个微博中的关键词或主题。用户通过在单词或短语前加上#(#)来创建和使用标签,例如#sunset。Hashtag提供了一种方式来组织用户生成的数据,使信息更容易访问。以往的许多研究都证明了话题标签在社会数据挖掘中的有效性,如信息检索、情感分析、事件检测和话题跟踪,因为话题标签更具包容性和信息性。然而,只有一部分微博包含标签。例如,Twitter上只有24%的推文包含至少一个hashtag,而每天有超过5亿条推文被发布。因此,社交网络中的话题标签推荐任务近年来受到越来越多的关注。
虽然已有很多研究致力于此任务,但现有的方法大多只关注文本信息。然而,社交网络上出现了一种新的趋势,人们在分享想法时倾向于在文本中附上图片。据统计,超过三分之一的微博不仅包含文字,还包含微博平台上的图片。另一方面,随着Instagram和Flicker等照片和视频分享社交服务的兴起,更多带有标签的多模态微博可供使用。因此,多模态标签推荐成为一项新的具有挑战性的任务。图1是一个带有图片和文字的微博实例,以及相应的hashtag列表。值得注意的是,#earth、#nature等标签也与图片相关,不能直接从文本中提取。因此,综合考虑多模态微博的文本和图像信息,可以推荐更好的标签。
随着在计算机版本和神经语言处理(neural language processing, NLP)任务方面取得的令人瞩目的成就,基于深度神经网络的各种方法被提出用于标签推荐。这些模型采用神经网络和注意力机制从微博中提取特征,近年来取得了良好的效果。然而,这些研究中的大多数仍然仅仅基于文本信息执行hashtag推荐任务。自动生成基于图像的标签列表是一项非常具有挑战性的任务,因为标签不仅与图像的内容有关,而且与潜在的语义信息有关。标签和图像之间的相关性可以称为弱相关性。因此,以前仅使用文本特性的方法不能直接用于此任务。同时,深度学习方法在神经图像标题(NIC)生成问题上取得了优势,这是一个直接的任务,通过神经网络自动生成图像的文本描述。为此,我们提出了协同关注网络,将文本信息和视觉信息结合起来,为多模态推文推荐hashtag。然而,由于协同注意机制以协同引导的方式产生文本和视觉注意,因此协同注意网络无法很好地应用于当前社会化媒体服务中普遍存在的只关注图像和很少关注文本的情况。另外,coattention网络模型使用了交叉熵损失的多类softmax分类器进行hashtag推荐任务,导致在多hashtag环境下性能下降。
与以往的研究不同的是,我们研究了标签之间的相关性,将标签推荐任务转化为一个序列预测问题。这背后的直觉是基于一个hashtag不能全面描述一个微博的全部内容,所有的hashtag可以构成完整的信息,如图1所示。换句话说,两个标签之间可能存在隐含的相关性。为此,我们提出了一种新的基于注意力的多模态神经网络(AMNN)模型来捕获图像、文本和标签之间的潜在交互作用,其中编码-解码器结构用于标签序列预测。受图像字幕任务成果的启发,我们采用混合神经网络模型,结合注意机制从多模态数据中提取特征。
特别是,我们在本文中关注的hashtag推荐任务被重新解释为序列生成问题。我们使用softmax+seq2seq机制来达到预期的效果。此外,考虑到社交网络中微博的形式多种多样,我们在第一步中采用并行方式产生图像和文本的分布式表示,使模型能够方便地处理不同类型的输入。例如,本文提出的模型在文本不可用或太短的情况下,仍然可以只使用图像信息执行hashtag推荐任务,反之亦然,使模型更具灵活性和可行性。
综上所述,本文提出了使用编码器-解码器结构的神经网络模型进行标签推荐。主要贡献可归纳如下。
1)研究了多模态微博的标签推荐任务,提出了一种基于注意力的神经网络框架,从图像和文本中提取特征,捕获标签之间的相关性,称为AMNN模型。
2)探索了hashtag的序列模式,将hashtag推荐任务定义为序列生成问题。为了生成hashtag序列,我们使用编码器-解码器体系结构来对这个生成过程建模。
3)在Instagram上抓取的三个基准数据集(包括一个大集合)和两个公开数据集上的大量实验结果表明,我们提出的方法能够充分利用文本和图像特征,获得最佳的hashtag推荐性能。此外,当只有图像或文本信息时,该模型的性能也优于其他基线方法。
本文的其余部分组织如下。第二部分介绍了本文的背景知识和相关工作。第三节给出了所提出的神经网络模型的总体设计。第四节给出了实验结果,并对模型的性能进行了评价。最后,第五节总结了本文并强调了我们未来的工作。
相关的工作
与传统的机器学习算法不同,我们主要关注基于神经网络的相关工作。在本节中,我们首先简要回顾一下hashtag推荐的任务。然后,介绍了基于神经网络的标签推荐的最新研究成果。
A.传统的标签推荐
与标签推荐相比,标签推荐更倾向于描述网站资源,如音乐、电影、文档等,hashtag推荐在社交媒体上的应用前景更广阔。随着社交网络的发展,hashtag推荐任务近年来投入了大量精力。现有的研究大多将该任务制定为分类问题,并采用了数据挖掘算法,如主题模型、语义相似度、等级学习等。Feng Xiao等人提出了一种基于词共现模式的面向新闻话题的话题标签推荐方法,可以帮助用户参与到突发新闻的讨论中。类似地,Godin等人利用话题模型,根据话题分布,学习语言分类推文和建议标签对推文的潜在话题分配。Zangerle等人提出了一种基于分析与用户当前输入的消息相似的消息的方法。他们评估了多种相似度,并提出了对候选标签进行排序的不同排名技术。Li等人提出了一种新的推文标签推荐方法,该方法利用学习到排名算法,将主题增强词嵌入、推文实体数据、推文标签频率、推文标签时间数据和推文URL域信息构建的特征结合起来。该模型基于标签流行度(频率)和标签时间信息(时间)生成标签候选列表。
另外,针对[5]、[29]、[30]的个性化推荐问题,目前有热门的研究路线。特别是在话题标签推荐方面,Wang等人提出通过协同过滤的方式预测活跃用户的话题标签使用偏好,并根据特定微博的相关分数推荐话题标签。Zhao等人提出了hashtag - lda,它通过潜在主题联合建模用户、hashtag和单词之间的关系,并根据用户分布和hashtag频率找到与用户最相关的hashtag。基于注意力的神经标签推荐模型(ABNT)[23]利用多层感知器对用户、项目和标签之间的交互进行非线性建模,引入注意力网络来捕获用户标签序列的复杂模式。
除了内容和用户信息外,各种外部知识已经被证明是推荐系统的有用因素,例如地理信息和时间信息。位置感知标签推荐模型通过学习区域与标签的本地流行度之间的相关性来推荐已知的GPS位置。Topic-over-time混合成员模型(TOT-MMM)引入了具有流行度的话题标签生命周期,基于推文中潜在话题的时间聚类效应推荐了话题标签。同时,在中分析了话题标签的时间重复使用,提出了一种基于时间依赖性和认知启发的话题标签推荐方法。最近,Kou等人提出了一种新的基于微博多特征的话题标签推荐模型,包括单词嵌入、用户-话题标签矩阵和用户-话题标签主题模型,以缓解数据稀疏性问题。Dey等人提出了一种基于单词嵌入的微博标签推荐方法EmTaggeR,该方法通过推导微博上的单词向量和标签嵌入来进行标签推荐。
然而,上述的hashtag推荐模型并不适合在多模态微博上执行。因此,人们提出了更多基于神经元的方法,并取得了令人印象深刻的性能;我们的工作也是这一领域的研究之一。
B.基于神经网络的标签推荐
神经网络模型,特别是那些涉及注意机制的神经网络模型,在神经科学和计算机视觉中得到了大量的研究。注意机制源于人们的直觉,即选择最相关的信息,而不是利用所有可用的信息。类似地,神经网络在聚焦于输入的特定部分时产生更好的结果。因此,人们提出了许多基于注意力的神经网络方法。
*Zhang提出了一种基于注意力的卷积神经网络(CNN)架构,该架构同时考虑全局和局部信息来执行标签推荐任务。Huang等人在中引入了一种分层注意机制,以扩展端到端记忆网络体系结构,整合用户的历史。因此,在推荐标签时,将文本信息和相应的用户兴趣结合起来。Li等人提出了一种基于主题注意力的长短期模型(LSTM)模型,该模型通过注意机制将主题建模纳入LSTM体系结构中。随后,他们联合对内容注意和话题注意进行建模,提出了一种新的话题协同注意网络(TCAN)。然而,对图片的标签推荐几乎没有进行过研究。最近,Park et al.引入了一种新的基准,名为HAshtag Recommendation for real image in SOcial Networks (HARRISON),该基准由基于CNN的视觉特征提取器和基于神经网络的多标签分类器组成。在此基础上,Wu等人提出了一个基于注意力的神经图像标签网络(A-NIH)来建模社会图像和标签之间的序列关系。在本文中,我们扩展了这一工作,并将这一概念转移到多模式社会情境中。
在多模态神经网络模型方面,也有很多相关的研究,如视觉问答任务,命名实体识别,推荐推荐等。其中,Zhang等人提出了一种用于hashtag推荐任务的层叠式两层协同注意网络,该网络将推特引导的视觉注意和图像引导的文本注意按顺序结合起来。由于协同注意网络模型同时依赖于文本信息和视觉信息,当只有一种类型的数据可用时,无法达到令人满意的性能。此外,锣等提出的一种生成方法。[12]这些多通道微博推荐标签包含文本和视觉信息,标签建议任务转换的翻译问题从视觉和文本标签的话,假设标签、文本内容和视觉语言对同一件事情的描述在微博使用不同的语言。
从一个简单的回顾中可以看出,只有少数研究关注多模态信息,它们中的大多数不能直接应用于只有图像或很少文本的情况。同时,很少有模型考虑到标签相关性。为了克服这一问题,我们提出了一种新的神经网络模型,该模型以并行的方式提取多模态特征,并将hashtag推荐任务转化为序列生成问题。
我们的模型
注: 编码器⽤来分析输⼊序列,解码器⽤来⽣成输出序列。
与大多数神经网络方法不同,这些方法将hashtag推荐任务视为一个多类分类问题,在本文中我们将该任务转换为一个序列生成问题。在给定一个带有文本和图片的多模态微博的情况下,我们的模型旨在自动生成一个合适的标签列表。所提出的序列到序列模型的整体架构如图2所示,其中包括一个混合特征提取编码器和一个用于推荐的耦合解码器。在编码器中,并行神经网络分别提取微博的图像特征和文本特征,合并后送入解码器部分。然后,根据GRU网络获得的标签概率生成标签序列;这里,我们将首先介绍编码器中特征提取的细节。然后,在推荐标签时,我们在解码器部分介绍了该过程。最后,描述了如何训练多模态神经网络模型。
为了简化模型的表示,我们首先定义本文中使用的符号,并在表I中列出它们。
A.多模态神经网络编码器
1)图像特征提取:为了提取图像表示,我们采用混合神经网络体系结构。第一步,CNN获取给定图像的初步特征图。由于在图像处理领域的成功应用,我们选择了具有代表性的神经网络,Inception V3和ResNet-50来执行这项任务。得到的特征映射可以表示为If= [v1,v2,…,vn]。然后,利用LSTM(长短期记忆网络)对中间特征进行顺序处理。LSTM中的过渡方程定义如下:
注:LSTM
LSTM通过“门”(gate)来控制丢弃或者增加信息,从而实现遗忘或记忆的功能。“门”是一种使信息选择性通过的结构,由一个sigmoid函数和一个点乘操作组成。sigmoid函数的输出值在[0,1]区间,0代表完全丢弃,1代表完全通过。一个LSTM单元有三个这样的门,分别是遗忘门(forget gate)、输入门(input gate)、输出门(output gate)。
遗忘门(forget gate):遗忘门是以上一单元的输出ht−1和本单元的输入xt为输入的sigmoid函数,为Ct−1中的每一项产生一个在[0,1]内的值,来控制上一单元状态被遗忘的程度。
输入门(input gate):输入门和一个tanh函数配合控制有哪些新信息被加入。tanh函数产生一个新的候选向量Ct,输入门为Ct中的每一项产生一个在[0,1]内的值,控制新信息被加入的多少。至此,我们已经有了遗忘门的输出ft,用来控制上一单元被遗忘的程度,也有了输入门的输出it,用来控制新信息被加入的多少,我们就可以更新本记忆单元的单元状态了。
输出门(output gate):输出门用来控制当前的单元状态有多少被过滤掉。先将单元状态**,输出门为其中每一项产生一个在[0,1]内的值,控制单元状态被过滤的程度。
为了保证处理过程中维数的一致性,LSTM网络由d单元组成,表示维数也一样。然后,每个单元格的输出形成一个序列[h1,h2,…hd]按时间顺序排列。在观察到hashtag只对图像的特定区域有贡献的情况下,我们采用注意机制来捕捉空间特征,它包含更多的信息并过滤掉噪声数据。因此,我们设置一个注意层来生成图像的注意分布。具体地说,我们使用一个完全连接的神经网络将隐藏状态投影到一个固定的特征空间。然后,添加softmax层输出概率分布。计算过程如下:
最后,图像Xf的最终特征表示为{Xf,1, Xf,2,…Xf,i……Xf,d}。加权向量中的每个值由以下具有注意概率得到,其中Xf,i恰好是第i维的表示值,
2)Test特征提取
考虑到BiLSTM模型能够学习长期依赖关系,近年来在自然语言处理任务中得到了广泛应用,我们采用BiLSTM模型进行文本特征提取。BiLSTM从两个方向(前向和后向)得到输出值,这样可以很好地融合上下文信息。
注:BiLSTM
前向的LSTM与后向的LSTM结合成BiLSTM。
将词的表示组合成句子的表示,可以采用相加的方法,即将所有词的表示进行加和,或者取平均等方法,但是这些方法没有考虑到词语在句子中前后顺序。如句子“我不觉得他好”。“不”字是对后面“好”的否定,即该句子的情感极性是贬义。使用LSTM模型可以更好的捕捉到较长距离的依赖关系。因为LSTM通过训练过程可以学到记忆哪些信息和遗忘哪些信息。
但是利用LSTM对句子进行建模还存在一个问题:无法编码从后到前的信息。在更细粒度的分类时,如对于强程度的褒义、弱程度的褒义、中性、弱程度的贬义、强程度的贬义的五分类任务需要注意情感词、程度词、否定词之间的交互。举一个例子,“这个餐厅脏得不行,没有隔壁好”,这里的“不行”是对“脏”的程度的一种修饰,通过BiLSTM可以更好的捕捉双向的语义依赖。
对于给定的文本,文本中每个标记的表示都用预定义的维度随机初始化。然后,BiLSTM网络得到前隐态→hf和后隐态← hb。我们将这两个状态连接为即时隐藏编码ht。然后,我们将ht输入到注意层,如下流程制定:
利用softmax函数得到归一化权值,Tf得到关注层的目标输出,准确地得到文本特征。
3)特征合并
如第一部分所述,文本和图片有时会从不同的角度包含社交微博的目标信息,通过合并这两种特征,可以推荐更合适的话题标签。为了达到这一目的,我们在推荐之前合并文本和图像的表示,如图2所示。该模型将图像和文本分布表示相连接,得到了多模态微博的综合表示。
值得注意的是,在我们的方法中,只有图像或文本特征仍然足以执行hashtag推荐任务,这使得模型对于社交网络中的大多数情况更加灵活。
B.Hashtag推荐的解码器
该解码器是一个门控循环单元(GRU)网络。在训练过程中,我们首先将hashtag映射到一个固定的特征空间作为GRU网络的输入。GRU作为递归神经网络(RNN)的一种变体,能够很好地模拟标签与多模态数据之间的相关性。培训过程制定如下:
注:GRU网络
GRU是LSTM网络的一种效果很好的变体,它较LSTM网络的结构更加简单,而且效果也很好,因此也是当前非常流形的一种网络。GRU既然是LSTM的变体,因此也是可以解决RNN网络中的长依赖问题。
在LSTM中引入了三个门函数:输入门、遗忘门和输出门来控制输入值、记忆值和输出值。而在GRU模型中只有两个门:分别是更新门和重置门。
更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,更新门的值越大说明前一时刻的状态信息带入越多。重置门控制前一状态有多少信息被写入到当前的候选集 h~t 上,重置门越小,前一状态的信息被写入的越少。
其中H = (H1,…, Hm)是hashtag序列。每个hashtag都表示为一个one-hot编码,其尺寸为hashtag字典大小L。我们We是时间步长t的权值矩阵,xt是hashtag在时间步长t的嵌入特征。
训练和预测过程的一个关键区别是,只使用多模态特征图作为预测的输入。因此,由于hashtag序列在预测过程中不可用,因此将每个GRU单元之前的输出和后续输入之间的连接移除。
给定先前的输出hgt−1,GRU单元使用更新门zt和重置门rt生成下一个输出hgt。过渡方程定义如下:
在每个时间步,我们采用单个全连通网络和softmax函数来生成每个hashtag在步骤t处的分布概率。
最后,我们可以得到一个候选hashtag的排序列表,根据每个hashtag出现的概率,在时间步t中推荐相关度最高的一个。
C.推荐
我们通过以下步骤执行hashtag推荐。对于给定的图文混合的多模态微博,神经网络模型首先利用带有注意力机制的混合神经网络(编码器)分别提取图文特征向量。然后,AMNN将这两种表示合并,并将输出值输入GRU网络,生成推荐的标签序列(解码器)。整个过程如图2所示。为了简单起见,我们使用贪婪搜索算法为推荐生成最终的top-K hashtag。由于输出的单词经常是重复的,我们也在每一步中筛选出重复的单词。
D.训练
目标函数是ground-truth标签在每个时间步的预测概率的负对数-似然函数:
其中Ht是为t时刻步长的ground-truth hashtag, H0为编码器的输出值,H{1,t−1}为之前的hashtag序列,I为多模态微博的表示,θ表示我们提出的网络的所有参数,分别对编码器和解码器的所有参数。训练过程使用梯度下降使上述损失函数最小化。采用随机梯度下降(SGD)方法对Adam规则进行参数更新。采用L2和Dropout正则化提高泛化能力,防止模型过拟合。
注:SGD
梯度下降最常见的三种变形 BGD,SGD,MBGD。
BGD 采用整个训练集的数据来计算 cost function 对参数的梯度。缺点:由于这种方法是在一次更新中,就对整个数据集计算梯度,所以计算起来非常慢,遇到很大量的数据集也会非常棘手,而且不能投入新数据实时更新模型。
SGD 每次更新时对每个样本进行梯度更新,对于很大的数据集来说,可能会有相似的样本,这样 BGD 在计算梯度时会出现冗余,而 SGD 一次只进行一次更新,就没有冗余,而且比较快,并且可以新增样本。缺点:SGD的噪音较BGD要多,使得SGD并不是每次迭代都向着整体最优化方向。所以虽然训练速度快,但是准确度下降,并不是全局最优。
MBGD 每一次利用一小批样本,即 n 个样本进行计算,这样它可以降低参数更新时的方差,收敛更稳定,另一方面可以充分地利用深度学习库中高度优化的矩阵操作来进行更有效的梯度计算。