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 子层能够根据一组属性词和情感极性, 学习每个图像对象的不同注意力分数,

