Page 309 - 《软件学报》2026年第2期
P. 309

788                                                        软件学报  2026  年第  37  卷第  2  期


                                                                                                 T  进行编
                 属性词用于描述用户对特定属性的偏好, 情感极性则表示用户对这些属性的情感倾向. 本文通过对文本
                 码, 生成文本特征向量.
                                                                                    W
                    具体地, 首先对输入文本        T  进行分词处理, 并输入到词嵌入层中, 获得词嵌入向量  . 然后, 将词嵌入向量                    W
                 与位置向量    E pos  相加, 得到输入特征  T 0 :

                                                T 0 = W + E pos , {T 0 ,W,E pos } ∈ R N×D             (1)
                 其中,  N  表示序列长度,   D 表示特征维度. 接下来, 输入特征         T 0  输入到文本编码器中. 文本编码器由         L 层相同结构
                 的模块堆叠而成, 每一层包含一个多头自注意力               (self-attention, MSA) 子层和一个前馈网络  (feed-forward network,
                 FFN) 子层, 每一层的计算过程如下:

                                               T = LN(MSA(T ℓ−1 )+T ℓ−1 ), T ∈ R  N×D                 (2)
                                                                    ′
                                                ′
                                                ℓ                   ℓ
                                                T ℓ = LN(FFN(T )+T ), T ℓ ∈ R N×D                     (3)
                                                            ′
                                                                ′
                                                            ℓ   ℓ
                             ℓ
                 其中,  T ℓ  表示第   层编码器的隐藏状态,    LN(·) 表示层归一化    (layer normalization, LN) 操作.
                  2.2   图片编码器
                                                I, 这些图片被视为一个整体并依次拼接在一起, 以描述产品的各项细节,
                    图片编码器的输入是一组产品图片
                 如颜色、质地等. 本文将拼接后的产品图片输入到图像编码器中, 生成视觉特征向量.
                    具体地, 为了使用     ViT  编码图片, 首先将图片分割成一系列扁平化的二维块序列. 然后, 在块序列的开头添加
                                             X
                 一个特殊标记     [CLS], 形成输入序列  . 接着, 将输入序列       X  和位置向量  E pos  相加, 得到输入特征  :
                                                                                          I 0

                                                I 0 = X + E pos , {I 0 ,X,E pos } ∈ R (M+1)×D         (4)
                 其中,   M  表示序列长度. 最后, 将输入特征       I 0  输入到  ViT  中, 获得特殊标记  [CLS]  的视觉表示  H img . 虽然  ViT 和
                 Transformer 编码器结构相似, 但需注意层归一化的位置有所不同, 每一层的计算过程如下:

                                               ′
                                               I = MSA(LN(I ℓ−1 ))+ I ℓ−1 , I ∈ R (M+1)×D             (5)
                                                                  ′
                                               ℓ                  ℓ
                                                I ℓ = MLP(LN(I ))+ I , I ℓ ∈ R (M+1)×D                (6)
                                                           ′
                                                               ′
                                                           ℓ   ℓ
                                                                0
                                                        H img = LN(I )                                (7)
                                                                L
                             ℓ
                 其中,  I ℓ  表示第   层编码器的隐藏状态,    I  表示来自第   L 层的特殊标记    [CLS] 输出,  MLP(·) 是一个全连接层.
                                                0
                                                L
                  2.3   图像标题生成
                    现有的多模态研究表明, 与经典的单模态任务相比, 加入视觉模态并不总能带来显著的改进, 甚至可能产
                 生负面影响. Zhu   等人  [43]  认为, 图像中可能存在噪声, 而输入文本已经包含了生成目标文本所需的足够信息. 因
                 此推测当前的方法并未充分挖掘视觉模态中有意义信息的潜力. 为了解决这一问题, 本文提出利用图像标题作
                 为桥梁, 连接图像与文本. 具体来说, 在生成图像的视觉表示的同时, 将其转换为自然语言形式, 从而更有效地
                 利用视觉信息.
                    如后文图    3  所示, 本文采用   BLIP-2  模型来生成图像标题. 这是一个在多个视觉-语言任务上展现出卓越性能
                 的大型多模态语言模型. 其中, 图像编码器使用的是                CLIP  的  ViT, 而基础语言模型建立在基于编码器-解码器的
                 FlanT5  模型  [44] 之上并在  COCO  数据集  [45] 上对其进行微调, 让其适用于图像标题生成任务. 具体来说, 给定多模态
                 数据  {I,T}, 本文使用  BLIP-2  模型为产品图像    I  生成相应的标题. 然后, 将图像标题与输入文本            T  进行拼接, 使得
                 输入文本的最终格式为“⟨属性词⟩; ⟨情感极性⟩; ⟨图像标题⟩”.
                  2.4   基于文本引导的融合模块
                                                        [CLS] 标记后, 本文设计了一个基于文本引导的融合模块, 以实
                    在获得文本表示      H txt (= T L ) 和视觉表示   H img  的
                 现多模态融合. 该模块包括        3  个子层: 文本引导的注意力       (text-guided attention, TGA) 融合子层、前馈网络子层和
                 文本驱动的门控      (text-driven gated, TDG) 融合子层, 如图  2  所示.
                    该融合模块的优势在于, TGA 子层能够根据一组属性词和情感极性, 学习每个图像对象的不同注意力分数,
   304   305   306   307   308   309   310   311   312   313   314