ALBERT 中文实战之文本相似度

ALBERT是一个比BERT要轻量,效果更好的模型,本篇实践介绍如何用ALBERT计算两个文本的相似度。

ALBERT利用词嵌入参数因式分解和隐藏层间参数共享两种手段,显著减少了模型的参数量的同时,基本没有损失模型的性能。笔者在下面的文章中详细介绍了ALBERT的理论,感兴趣的同学可以戳进去了解:《解读ALBERT》。

github地址

使用孪生ALBERT网络生成句子的嵌入表示:


ALBERT 中文实战之文本相似度_第1张图片

Pooling方法:

a. CLS:直接使用CLS的输出作为Embedding

b.MEAN: 平均所有token的输出作为Embedding

c. MAX:取每一维输出向量的最大值

目标函数:

       a. 分类目标函数:

                            640?wx_fmt=png

            其中 u 和 v 为两个句子的 Embedding,Wt为变换矩阵,最终的维度为3n*k,该目标函数可用于预训练Sentence            Embedding

       b. 回归目标函数:

           该目标函数直接计算u和v的cosine相似度,将之均方误差作为loss。另外结构也是预测时候的计算方式

       c. 三胞胎目标函数:

                          640?wx_fmt=png

          其中Sa为句子a的Embedding,Sp则为句子p,句子p是跟a属于同一类型的正例句子,n 则是一个反例,三胞胎网络和孪生网络类似,这个目标函数是为了让正例距离尽量近而反例尽量远
 

你可能感兴趣的:(深度学习)