Siamese CBOW原理
2022-07-16 本文已影响0人
晓柒NLP与药物设计
论文链接:Siamese CBOW: Optimizing Word Embeddings for Sentence Representations
Siamese CBOW是一个孪生网络(Siamese network),并且在句子层面应用了CBOW根据周围词预测中心词的策略,即相邻句子与中心句语义相近。原论文根据该策略,将每个目标句的相邻句子作为正样本,非相邻句子作为负样本。但本质思想为正样本和目标句的语义相近,负样本和目标句的语义不同,根据知识库的实际场景,可以将query作为目标句,与query同标问的相似问作为正样本,与query不同标问的相似问作为负样本。Siamese CBOW的网络结构如下:
在深度学习FAQ模型的实际应用如下:
-
输入句子分别为query(对应word embedding sentence i),与query同标问的两个正样本(对应word embedding sentence i-1 和 i+1),与query不同标问的两个负样本(对应negative example 1 和 n)
-
为5个输入句子分词(jieba),以词序列形式表示句子(对应[、、...、],......)
-
每个输入句子的词序列经过词向量矩阵W获取每个词的词向量,并平均词向量生成每个句子的句向量(分别对应、、、、)
-
query的句向量分别和正负样本的句向量计算余弦相似度
-
余弦值经过softmax得到预测值
query的句向量()与各正负样本的句向量()的预测值如下:
其中为模型参数,即词向量矩阵W(Siamese CBOW的唯一可训练参数) -
使用梯度下降不断优化损失函数,则可以得到词向量矩阵W。
query和正负样本的目标概率与预测值的交叉熵作为损失函数:
其中目标概率: