消息传递

1.使用内置的消息传递api

比如GraphConv

2.实现自己的消息传递策略

Write your own GNN module

https://docs.dgl.ai/tutorials/blitz/3_message_passing.html

Message Passing APIs

https://docs.dgl.ai/guide/message-api.html#guide-message-passing-api

https://docs.dgl.ai/guide/message-heterograph.html

Apply Message Passing On Part Of The Graph

https://docs.dgl.ai/guide/message-part.html

message function,Reduce function

https://docs.dgl.ai/api/python/dgl.function.html

ConvGNNs

ConvGNNs fall into two categories, spectral-based and spatial-based. Spectral based approaches define graph convolutions by introducing filters from the perspective of graph signal processing [82] where the graph convolutional operation is interpreted as removing noises from graph signals. Spatial-based approaches inherit ideas from RecGNNs to define graph convolutions by information propagation. spatial-based methods have developed rapidly recently due to its attractive efficiency, flexibility, and generality.

谱域图卷积是空域图卷积的特例

https://zhuanlan.zhihu.com/p/139682302

https://zhuanlan.zhihu.com/p/122968925

https://blog.csdn.net/weixin_45901519/article/details/106388964

https://blog.csdn.net/weixin_45901519/article/details/106436591

https://blog.csdn.net/weixin_45901519/article/details/106492963

 GNN GCN
  
 GCN

Bert系列之句向量生成

https://zhuanlan.zhihu.com/p/444346578

1 sentence-bert

sts任务,数据分为sts无标签数据,sts有标签数据,nli有标签

无监督,有监督loss一样,文中有3种loss,区别在于数据集

无监督:nli有标签;有监督:sts有标签数据

2 simcse

sts任务,数据分为sts无标签数据,sts有标签数据

无监督,有监督区别在于:样本构造不同

无监督样本正负来源于sts无标签数据数据增强,有监督样本正负来源于sts有标签数据

3 consert

sts任务,数据分为sts无标签数据,sts有标签数据,还有nli数据集(有标签)

相同

和simcse相同之处:都是在finetune引入对比

不同

1 无监督

和simces loss一样为NT-Xent,不同在于sts无标签数据数据增强方式不同

2 有监督

区别在于loss和数据源

simcse loss为NT-Xent,数据源为sts有标签数据

consert loss为 NT-Xent + 别的有监督loss(比如cross entropy),数据源为sts无标签数据和nli数据集(有标签),+表示融合 ,论文有3种融合方式

Learning to Rank From Pairwise Approach to Listwise Approach(listnet)

https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/tr-2007-40.pdf

https://blog.csdn.net/Mr_tyting/article/details/80554849

核心思想为:

  1. Given two lists of scores(模型和人)
  2. we can first calculate two permutation probability distributions from them(简化到用top1)
  3. and then calculate the distance between the two distributions as the listwise loss function.(交叉熵)

4. Probability Models

4.1. Permutation Probability

$\pi=(2,3,1) $指的是对象2排在第一位

上面是topn的形式

因为总共有n!次排序组合

4.2. Top One Probability

topk:

总共有N ! / ( N − k ) ! 种不同排列,大大减少了计算复杂度

top1:

此时有n种不同排列情况

概率分布的含义:对于每个j,分别都处于第一的概率是多少

5.Learning Method: ListNet

We employ a new learning method for optimizing the listwise loss function based on top one probability, with Neural Network as model and Gradient Descent as optimization algorithm. We refer to the method as ListNet.

$y^{(i)}$是真实的score list,有个疑问就是$y^{(i)}$怎么得到?关于这个,应该是先有真实的score list(人打),然后基于score list得到排序,参考 https://zhuanlan.zhihu.com/p/66514492

核心步骤

1.打标得到真实的score list,模型得到预测的score list

2.然后用softmax得到真实的和预测的score list的概率分布

3.然后用交叉熵计算两种概率分布的差距

pairwise

pairwise learning to rank 的方法可以分为两大类。

第一类是基于打分函数,它们通过一些特殊的设计让模型依靠“样本对”的信息来学习得到每个样本的score。所以得到这类方法最后的全局排序结果很简单,就是用所有样本的score来排序即可。

另一类方法是基于优先函数的方法。这类方法的整个过程分为两个阶段,第一阶段是用机器学习模型来学习两个样本之间的优先关系,例如f(x1, x2)=1表示样本x1优先于x2(x1应该排在x2前面),f(x1, x2)=-1表示样本x2优先于x1(x1应该排在x2后面)。从题主的问题来看,可能问的是“当我们已经训练出了优先函数f之后,如何对所有样本进行排序,并且使该排序在最大程度上与f的结果一致”。这个问题在学界被称为Rank Aggregation(排列聚合)。

具体参考 https://www.zhihu.com/question/389068269

别的相关参考:

https://www.jianshu.com/p/235756fbf6b6

https://zhuanlan.zhihu.com/p/318300682

https://zhuanlan.zhihu.com/p/65224450

https://zhuanlan.zhihu.com/p/65756030

https://www.zhihu.com/question/389068269/answer/1180120736

调节学习率

当学习率过大的时候会导致模型难以收敛,过小的时候会收敛速度过慢,合理的学习率才能让模型收敛到最小点而非局部最优点或鞍点

经验值: 0.01 ~ 0.001

学习率衰减

原因:起初距离目标偏离大,可以设置较大,为了快速收敛,后续逐渐靠近目标,需要精细化一点,所以希望值小一点

分类

1.轮数衰减

每经过k个epochs后学习率减半

2.指数衰减

3.分数衰减

参考

https://blog.csdn.net/LiuPeiP_VIPL/article/details/119581343


:D 一言句子获取中...