【论文阅读】One For All: Toward Training One Graph Model for All Classification Tasks

目录

  • 0、基本信息
  • 1、研究动机
  • 2、创新点——One For All :unique features
  • 3、准备
  • 4、具体实现
    • 4.1、用TAGs统一来自不同领域的图数据
    • 4.2、用NOI(NODES-OF-INTEREST)统一不同图任务
      • 4.2.1、NOI子图
      • 4.2.2、NOI提示结点
    • 4.3、用于图的上下文学习(ICL)的图提示范式(GPP)
  • 5、训练和评估过程
  • 未完待续

0、基本信息

  • 会议:2024-ICLR-UNDER_REVIEW
  • 评分:6,6,6,10
  • 作者:Anonymous authors
  • 文章链接:ONE FOR ALL: TOWARDS TRAINING ONE GRAPHMODEL FOR ALL CLASSIFICATION TASKS
  • 代码链接:ONE FOR ALL: TOWARDS TRAINING ONE GRAPHMODEL FOR ALL CLASSIFICATION TASKS

1、研究动机

 设计一个能够解决多个任务的模型是人工智能长期发展的一个目标。最近,LLMs因其强大的学习能力,在执行跨领域的下游任务上取巨大的成功,但是在图领域上还没有一个统一的模型解决图结构数据上不同的任务。

面临的挑战——
(1)来自不同领域的图数据集通常在特征表示上不同。

 具体来说,来自不同领域的图数据特征有不同的维度,大小,分布和语义意义,几乎不可能使用一个相同的模型直接学习这些数据的表征。

(2)图领域中不同的下游任务涉及图的不同的部分,以及需要指定任务的知识和方法。

 图上任务可以分为,结点级,边级和图级的任务,图神经网络在不同类任务上成功背后的原因是不同的。结点级任务——节点特征恰当的平滑;边级or图级任务——编码局部结构很重要。一个优秀的结点级任务模型不一定能够在边级or图级任务上表现优秀。
总之,现有的模型不能够有效地学习不同的任务。

(3)如何设计一个统一的方法执行跨领域和上下文学习的图任务模型仍然是不清楚的

 针对上述挑战,作者提出一个通用的解决方案——one for all(OFA),用于建立和训练具有跨领域上下文学习能力的模型。

2、创新点——One For All :unique features

(1)文本属性图(TAG)
 OFA使用文本属性图(TAGs)将来自不同领域的图数据整合到一个大的TAG数据集,并利用LLMs的能力从所有领域中共同学习。

 9个常见的来自不同领域的数据集,用文本描述图中所有的结点和边,然后使用单个LLM将来自不同领域的文本嵌入到同一个嵌入空间。

(2)NOI子图 和NOI提示结点
 NOI(nodes-of-interest)子图 和NOI提示结点,不仅统一了不同类型的图任务,而且提高了基础模型学习图中结构信息的能力。

(3)图提示范式 (GPP)

 图提示范式 (graph prompting paradigm,GPP)——插入一个提示图到原始的输入图中的特定任务的方式。提示图中的节点包含关于下游任务的所有相关信息(由文本描述,并由与输入图相同的LLM编码器编码)。然后,修改后的图形成为基础模型的实际输入。

 因此,OFA是自适应的,根据提示图以执行不同的任务。训练后,用户可以用自然文本描述任何图形,并应用OFA管道来预测可能看不见的类。

3、准备

文本属性图(TAGs)
 将TAG定义为一个图,图中的每个节点和每条边都与一个文本句子相关联。
TAG: G = ( V , E , R ) \mathcal{G}=(\mathcal{V},\mathcal{E},\mathcal{R}) G=(V,E,R) V = { v 1 , … , v ∣ V ∣ } \mathcal{V}=\{v_1,\dots ,v_{|\mathcal{V}|}\} V={v1,,vV}是结点集合, R = { r 1 , … , r R } \mathcal{R}=\{r_1,\dots,r_{\mathcal{R}}\} R={r1,,rR}是关系集合, E = { e 1 , … , e ∣ E ∣ } \mathcal{E}=\{e_1,\dots,e_{|\mathcal{E}|}\} E={e1,,eE}是边集合。一条边 e i j = ( v i , r , v j ) ∈ E e_{ij}=(v_i,r,v_j)\in \mathcal{E} eij=(vi,r,vj)E由源结点 v i ∈ V v_i\in \mathcal{V} viV,关系 r ∈ R r\in \mathcal{R} rR和目的结点 v j ∈ V v_j\in \mathcal{V} vjV组成。
s v i s_{v_i} svi定义为与结点 v i v_i vi相关的文本句子, s e i j s_{e_{ij}} seij表示与边 e i j ∈ E e_{ij}\in \mathcal{E} eijE相关联的文本句子。
N k ( v ) \mathcal{N}_k(v) Nk(v)定义为结点 v v v k k k跳内所有邻居结点的集合。

学习情景——分类问题

 定义一个数据集 D = { ( d i , y i ) } 1 D \mathcal{D}=\{(d_i,y_i)\}_1^D D={(di,yi)}1D D D D为数据集中数据的数量, d i d_i di是一个数据样本, y i ∈ Y y_i\in\mathcal{Y} yiY d i d_i di的标签, Y \mathcal{Y} Y是所有数据标签的集合。将数据集划分为训练集,验证集和测试集,即 D t r a i n , D v a l , D t e s t \mathcal{D}_{train},\mathcal{D}_{val},\mathcal{D}_{test} Dtrain,Dval,Dtest.对应的标签集合为 Y t r a i n , Y v a l , Y t e s t \mathcal{Y}_{train},\mathcal{Y}_{val},\mathcal{Y}_{test} Ytrain,Yval,Ytest.

关注三种学习情景
(1)监督学习
 该模型将在 D t r a i n D_{train} Dtrain上进行训练,并在 D v a l D_{val} Dval上进行评估,来选择最好的模型。最后,使用 D t e s t D_{test} Dtest对模型的性能进行评估。验证集和测试集数据中的所有标签都在训练过程中已知,即 Y t r a i n = Y t e s t \mathcal{Y}_{train} = \mathcal{Y}_{test} Ytrain=Ytest(???)
(2)少样本学习
 少样本学习的训练和评估过程与监督学习类似,但是,在少样本学习中, Y t r a i n ∩ Y t e s t = ∅ \mathcal{Y}_{train}\cap \mathcal{Y}_{test}=\emptyset YtrainYtest=.

 少样本学习通常处理 N-way K-shot任务,其中,使用 N ∗ K N*K NK数据 { ( d i , y i ) } 1 N ∗ K \{(d_i,y_i)\}^{N*K}_1 {(di,yi)}1NK作为支持样本,使得每个不同的类都提供有 K K K个标记数据,其中, N N N是不同类的总数。接下来,给定这些支持样本,模型需要将查询集合 Q = { d i } 1 n \mathcal{Q} = \{d_i\}^n_1 Q={di}1n中的数据分类到这 N N N个类中。

(3)零样本学习
 这可以被看作是少数学习的特殊情况。在零次学习中,对于任何 N-way K-shot任务,将 K = 0 K = 0 K=0,因为没有支持样本。

zero-shot learning 是机器学习中的一种策略,其目标是使模型能够理解并识别它在训练阶段未曾遇到过的类别。
few-shot learning旨在在只给出非常少量已知类别的标注数据时,通过学习如何利用这些数据来泛化到未知类别上,完成分类任务。
one-shot learning在只给出单个样本时,通过学习如何利用这个样本来泛化到未知类别上,完成分类任务。

(4)语境学习

 语境学习是指通过给预先训练好的语言模型提供特定任务的例子或语境,对其进行微调的过程。这种方法利用了预先训练的模型的知识和泛化能力,并对其进行调整,以便更好地执行手头的具体任务。
 对于语言模型,这主要是通过提示机制来实现的。预训练的LLM模型将由提示文本 C C C提供的提示作为输入,然后,通过生成以C为条件的句子的其余部分来给出任务的答案。

在语境学习过程中,模型可以通过:

  • 使用语义先验知识,在给定的上下文样例下预测标签
  • 从给定的样例里学习输入-标签映射

 ICL主要思路是,给出少量的标注样本,设计任务相关的指令形成提示模板,用于指导待测试样本生成相应的结果。

4、具体实现

overview
(1)来自不同领域的图数据聚合到具有相同形式的文本属性图TAG,并使用单个LLM模型将所有的TAGs嵌入到相同的空间中;
(2)通过NOI子图和NOI提示结点统一图域中不同类型的任务,这样图模型能够自动的考虑到任务相关的信息;
(3)图提示范式(GPP)将任务信息有机地注入到图数据中,从而实现上下文学习。
在这里插入图片描述

下面来分别介绍:

4.1、用TAGs统一来自不同领域的图数据

 尽管不同领域图的属性不同,但所有属性都可以用自然语言来描述。这种优势在于,通过使用文本来描述节点和边,我们可以应用LLM将不同的图形属性编码到同一空间中。

用于任何结点和边文本特征生成的标准化形式:
在这里插入图片描述

给定一个文本属性图 G \mathcal{G} G,文本特征 s v i s_{v_i} svi总是从文本特征结点(Feature node)开始,表示该结点是具有原始图特征的输入结点,而不是提示结点。接下来是特征类型的文本描述(feature description)和特征的内容(feature content),如果一个结点具有多个特征,则将他们通过分号连接起来。

e i j e_{ij} eij的文本特征 s e i j s_{e_{ij}} seij的构造是类似的,不过,文本的开始是特征边:
在这里插入图片描述

附录B

 将LLM作为编码器,将所有的文本特征编码为一个固定长度的向量作为结点or边的最终输入特征。
也就是说,对于结点 v i v_i vi和边 e i j e_{ij} eij,他们的向量表征为:
x i = L L M ( s v i ) x_i=\mathbf{LLM}(s_{v_i}) xi=LLM(svi)

x i j = L L M ( s e i j ) x_{ij}=\mathbf{LLM}(s_{e_{ij}}) xij=LLM(seij)
 因为LLM编码的输入特征包含域信息,所以后续的工作可以捕获和利用该信息。通常,任何类型的LLM都可以用作编码器,并且更强的LLM可能会产生更好的整体性能。在OFA中,为了简单起见,本文采用了句子转换器Transformer(Reimers & Gurevych,2019),它具有很强的学习句子嵌入的能力。

4.2、用NOI(NODES-OF-INTEREST)统一不同图任务

Nodes-of-Interest(NOI)是指任务中的一组目标结点,表示为 T \mathcal{T} T。NOI不局限于列出任务级别,其大小取决于预测目标。

4.2.1、NOI子图

NOI子图为由NOI结点组成的子图。
定义: S h ( v ) = { V v h , E v h , R v h } S_h(v)=\{\mathcal{V}_v^h,\mathcal{E}_v^h,\mathcal{R}_v^h\} Sh(v)={Vvh,Evh,Rvh}为结点 v v v周围 h h h跳ego-subgraphs,包含结点 v v v h h h跳邻居结点和所有互连的边。NOI子图 G h ( T ) \mathcal{G}_h(\mathcal{T}) Gh(T)包含NOI中所有结点的ego-subgraphs:
G h ( T ) = ⋃ v ∈ T S h ( v ) = { ⋃ v ∈ T V v h , ⋃ v ∈ T E v h , ⋃ v ∈ T R v h } \mathcal{G}_h(\mathcal{T})=\bigcup_{v\in\mathcal{T}}\mathcal{S}_h(v)=\{\bigcup_{v\in\mathcal{T}}\mathcal{V}_v^h,\bigcup_{v\in\mathcal{T}}\mathcal{E}_v^h,\bigcup_{v\in\mathcal{T}}\mathcal{R}_v^h\} Gh(T)=vTSh(v)={vTVvh,vTEvh,vTRvh}

  • 结点级任务——NOI就是结点本身, T = { v } \mathcal{T}=\{v\} T={v} G h ( T ) = S h ( v ) \mathcal{G}_h(\mathcal{T})=S_h(v) Gh(T)=Sh(v)
  • 链接级任务—— T = { v i , v j } \mathcal{T}=\{v_i,v_j\} T={vi,vj} G h ( T ) = S h ( v i ) ∪ S h v j \mathcal{G}_h(\mathcal{T})=S_h(v_i) \cup S_h{v_j} Gh(T)=Sh(vi)Shvj
  • 图级任务——NOI包含图上所有结点,NOI子图 G h ( T ) = ( V , E , R ) \mathcal{G}_h(\mathcal{T})=(\mathcal{V},\mathcal{E},\mathcal{R}) Gh(T)=(V,E,R)

4.2.2、NOI提示结点

NOI提示结点统一不同任务中处理和readout过程。NOI提示节点与任务提示文本相关联:
在这里插入图片描述

文本由相同的LLM进行编码。NOI提示结点与NOI中所有结点相连,并通过信息传递汇总NOI和任务描述中的信息。然后将类结点附加到下游任务的提示结点中。

3.3节会详细介绍class node。每个class node保存与特定类相关的文本信息:

 NOI子图和NOI提示节点的结合实现了对所有节点级、边级和图级任务的统一读取和处理。此外,连接到NOI的NOI提示节点可以被视为标记技巧,其提升了原始图模型的表达能力,以更好地学习NOI周围的结构信息。同时,NOI提示节点上的任务提示文本允许图模型根据特定任务调整读出参数,这在现有工作中是不可行的。

4.3、用于图的上下文学习(ICL)的图提示范式(GPP)

 LLMs通过提示进行情境学习,使模型不需要微调就能够执行不同学习情景的各种下游任务。

 上下文学习的核心原则是使输入数据与下游任务保持一致。因此,图提示范式(GPP)就是操作输入图,使模型能够从输入本身获取任务相关的信息。这种范式赋予图模型对可见和不可见类的上下文学习能力。

 提示图, p = ( V p , E p , R p ) \mathcal{p}=(\mathcal{V}_p,\mathcal{E}_p,\mathcal{R}_p) p=(Vp,Ep,Rp),有两种结点,第一种结点为NOI提示节点,假设我们查询目标NOI子图 G h q ( T q ) = ( V q h , E q h , R p ) \mathcal{G}_h^q(\mathcal{T}^q)=(\mathcal{V}_q^h,\mathcal{E}_q^h,\mathcal{R}_p) Ghq(Tq)=(Vqh,Eqh,Rp),则NOI提示结点为 p q p_q pq。GPP在NOI提示结点和NOI中的每个结点之间添加一条边,定义为 E c r o s s q = { ( t , r t 2 p , p q ) , ( p q , r p 2 t , t ) ∣ t ∈ T q } \mathcal{E}^q_{cross}=\{(t,r_{t2p},p_q),(p_q,r_{p2t},t)|t\in \mathcal{T}^q\} Ecrossq={(t,rt2p,pq),(pq,rp2t,t)tTq} r p 2 t r_{p2t} rp2t r p 2 t r_{p2t} rp2t分别是从NOI到NOI提示结点的边和反向边的关系。

提示图中第二种结点类型是class node。每个class node保存与特定类相关的文本信息:
在这里插入图片描述

类节点 i i i定义为 c i c_i ci,在每个类节点和NOI提示结点添加边,定义为:
E q u e r y q = { ( p q , r q 2 c , c i ) , ( c i , r c 2 q , p q ) ∣ i ∈ [ N ] } \mathcal{E}^q_{query}=\{(p_q,r_{q2c},c_i),(c_i,r_{c2q},p_q)|i\in [N]\} Equeryq={(pq,rq2c,ci),(ci,rc2q,pq)i[N]} N N N是类的数量, r q 2 c r_{q2c} rq2c r c 2 q r_{c2q} rc2q分别是从NOI提示结点到类结点的边和反向边的关系。

一个提示图为:
V p = { p q } ⋃ { c i ∣ i ∈ [ N ] } , E p = E q u e r y ⋃ E c r o s s q , R p = { r t 2 p , r p 2 t , r q 2 c , r c 2 q } . \mathcal{V}_{p}=\{p_{q}\}\bigcup\{c_{i}|i\in[N]\},\mathcal{E}_{p}=\mathcal{E}_{query}\bigcup\mathcal{E}_{cross}^{q},\mathcal{R}_{p}=\{r_{t2p},r_{p2t},r_{q2c},r_{c2q}\}. Vp={pq}{cii[N]},Ep=EqueryEcrossq,Rp={rt2p,rp2t,rq2c,rc2q}.

然后,输入到后续图模型的提示图是输入图和提示图的组合,表示为 G m = ( V q h ⋃ V ^ p , E q h ⋃ L ^ p , R q h ⋃ R p ) . \mathcal{G}_{m}=(\mathcal{V}_{q}^{h}\bigcup\hat{\mathcal{V}}_{p},\mathcal{E}_{q}^{h}\bigcup\hat{\mathcal{L}}_{p},\mathcal{R}_{q}^{h}\bigcup\mathcal{R}_{p}). Gm=(VqhV^p,EqhL^p,RqhRp).

 使用图学习模型来处理提示图,并使用类节点的嵌入来进行二进制分类。具体地,令 h c i h_{c_i} hci是来自图学习模型的类节点 c i c_i ci的向量表示。我们预测NOI属于类别 i i i的可能性通过:
P [ NOI belongs to class  i ] = σ ( MLP ( h c i ) ) P[\text{NOI belongs to class }i]=\sigma(\text{MLP}(h_{c_i})) P[NOI belongs to class i]=σ(MLP(hci))
MLP是一个多层感知机,其一维输出表示 h c i h_{c_i} hci的分类分数。

注意,因为NOI提示节点和类节点连接到NOI并包含任务文本描述,所以固定长度的向量 h c i h_{c_i} hci包含关于输入图和任务的信息,使得预测依赖于任务。虽然现有的图学习方法需要为不同的任务使用不同的池化机制,但这种公式化将不同级别的任务转化为类节点上相同的二进制分类任务,因此所有任务都可以一起训练。对于多类问题,我们比较不同类的预测得分来做出决策。
l = a r g m a x i ( M L P ( h c i ) ∣ i ∈ [ N ] ) l=\mathrm{argmax}_i\left(\mathrm{MLP}(h_{c_i})|i\in[N]\right) l=argmaxi(MLP(hci)i[N])
l l l是NOI的预测类别。

 GPP也可以解决少样本问题,未看见类的支持NOI子图帮助更好的分类查询子图,支持NOI子图定义为 G h i , k ( T k i ) \mathcal{G}_h^{i,k}(\mathcal{T}_k^i) Ghi,k(Tki),对于第 i i i类和第 k k k个支持样本,NOI T k i T^i_k Tki属于第 i i i类。

 对于查询NOI提示节点,我们通过以下方式将每个支持NOI子图连接到其对应的支持NOI提示节点 p i , k p_{i,k} pi,k

E c r o s s s = ⋃ i ∈ [ N ] , k ∈ [ K ] E c r o s s i , k = ⋃ i ∈ [ N ] , k ∈ [ K ] { ( t , r t 2 p , p i , k ) , ( p i , k , r p 2 t , t ) ∣ t ∈ T k i } . \mathcal{E}_{cross}^s=\bigcup_{i\in[N],k\in[K]}\mathcal{E}_{cross}^{i,k}=\bigcup_{i\in[N],k\in[K]}\{(t,r_{t2p},p_{i,k}),(p_{i,k},r_{p2t},t)|t\in\mathcal{T}_k^i\}. Ecrosss=i[N],k[K]Ecrossi,k=i[N],k[K]{(t,rt2p,pi,k),(pi,k,rp2t,t)tTki}.

 为了增强分类,将支持NOI提示结点连接到其NOI所属的类节点,即, E s u p p = { ( p i , k , r s 2 c , c i ) ∣ i ∈ [ N ] , k ∈ [ K ] } \mathcal{E}_{supp}=\{(p_{i,k},r_{s2c},c_i)|i\in[N],k\in[K]\} Esupp={(pi,k,rs2c,ci)i[N],k[K]}。由于查询NOI提示节点和类节点之间的关系类型 r s 2 c r_{s2c} rs2c r q 2 c r_{q2c} rq2c不同,该模型能够区分查询和信息,支持NOI。少镜头提示图 P \mathcal{P} P的总体组件是

V p = { p q } ⋃ { p i , k ∣ i ∈ [ N ] , k ∈ [ K ] } ⋃ { c i ∣ i ∈ [ N ] } , \mathcal{V}_p=\{p_q\}\bigcup\{p_{i,k}|i\in[N],k\in[K]\}\bigcup\{c_i|i\in[N]\}, Vp={pq}{pi,ki[N],k[K]}{cii[N]},
E p = E c r o s s q ⋃ E q u e r y ⋃ E c r o s s s ⋃ E s u p p , R p = { r t 2 p , r p 2 t , r q 2 c , r c 2 q , r s 2 c } \mathcal{E}_p=\mathcal{E}_{cross}^q\bigcup\mathcal{E}_{query}\bigcup\mathcal{E}_{cross}^s\bigcup\mathcal{E}_{supp},\quad\mathcal{R}_p=\{r_{t2p},r_{p2t},r_{q2c},r_{c2q},r_{s2c}\} Ep=EcrossqEqueryEcrosssEsupp,Rp={rt2p,rp2t,rq2c,rc2q,rs2c}

 提示图可以以与上面讨论的类似的方式构造。与前面提到的场景一样,类节点的输出嵌入用于进行二进制分类。OFA通过将支持NOI提示节点连接到相应的类节点来利用少量支持示例,并且模型综合类节点上的示例信息和任务语义信息以进行更准确的预测。请注意,少数样本情景中类节点表示仍然与零样本情景中的表示一致,因此它们也可以一起训练。

 总而言之,NOI表示与任务相关的节点集合,并且提取的NOI子图包括NOI的邻域信息。然后,NOI提示节点通过图学习模型总结NOI中的信息,因为所有NOI节点都连接到NOI提示节点。NOI提示符节点稍后连接到一组带有文本描述的类节点。在图模型处理之后,类节点表示包含类信息、任务信息和NOI信息,它们可以用于独立地进行预测,就像LLM的提示输入包含输入、目标和任务描述一样。

设计了一个能够识别不同边缘类型的GNN作为OFA中的图模型。

在这里插入图片描述

5、训练和评估过程

 不管任务类型,所有输入都被标准化为提示文本属性图 G m G_m Gm,OFA首先使用LLM将图中的所有文本嵌入到向量表示中:
x i j = L L M ( s e i j ) , ∀ e i j ∈ E m , x i = L L M ( s v i ) , ∀ v i ∈ V m x_{ij}=LLM(s_{e_{ij}}),\forall e_{ij}\in\mathcal{E}_{m},\quad x_{i}=LLM(s_{v_{i}}),\forall v_{i}\in\mathcal{V}_{m} xij=LLM(seij),eijEm,xi=LLM(svi),viVm

 然后,通过一个多个的信息传递层处理嵌入文本,得到 G m \mathcal{G}_m Gm中每个结点的最终嵌入:
h v i l + 1 = W s e l f h v i l + ∑ r ∈ R m ∑ v j ∈ N 1 r ( v i ) 1 ∣ N 1 r ( v i ) ∣ W r ( R e L U ( h v j l + x i j ) ) h_{v_{i}}^{l+1}=\boldsymbol{W}_{\mathrm{self}}h_{v_{i}}^{l}+\sum_{r\in\mathcal{R}_{m}}\sum_{v_{j}\in\mathcal{N}_{1}^{r}(v_{i})}\frac{1}{|\mathcal{N}_{1}^{r}(v_{i})|}\boldsymbol{W}_{r}(\mathrm{ReLU}(h_{v_{j}}^{l}+x_{ij})) hvil+1=Wselfhvil+rRmvjN1r(vi)N1r(vi)1Wr(ReLU(hvjl+xij))
其中, h v i 0 = x i h_{v_i}^0=x_i hvi0=xi W s e l f W_{self} Wself W r W_r Wr是用于自环和关系的可训练的变换矩阵, N 1 r ( v i ) \mathcal{N}_1^r(v_i) N1r(vi)是连接到具有关系类型 r r r v i v_i vi的直接邻居。GNN是R-GCN的拓展。

 设计了一个简单的注意力层来总结从 h 1 h_1 h1 h L h_L hL的所有层输出。最终的结点表征为:
h v i = H ⋅ S o f t m a x ( ( W k H ) ′ ⋅ W q x i ) ′ , H = [ h v i 1 . . . h v i l . . . h v i L ] h_{v_i}=\boldsymbol{H}\cdot Softmax((\boldsymbol{W}_k\boldsymbol{H})'\cdot\boldsymbol{W}_qx_i)',\quad\boldsymbol{H}=[h_{v_i}^1\quad...\quad h_{v_i}^l\quad...\quad h_{v_i}^L] hvi=HSoftmax((WkH)Wqxi),H=[hvi1...hvil...hviL]
W k W_k Wk W q W_q Wq是key和query可训练的权重。

最后,我们收集每个类节点 { h c i ∣ ∀ v ∈ [ N ] } \{ h_{c_i}| \forall v \in[N]\} {hci∣∀v[N]}的输出节点嵌入并且使用MLP预测头对每个类节点执行二进制分类,类 i i i的可能性为:

p i = σ ( M L P ( h c i ) ) p_i=\sigma(\mathsf{MLP}(h_{c_i})) pi=σ(MLP(hci))
σ \sigma σ为sigmoid函数。对于多分类问题,所有类别的概率为:

l p = argmax ⁡ ( ( p i ∣ i ∈ [ N ] ) ) , l_p=\operatorname{argmax}\left((p_i|i\in[N])\right), lp=argmax((pii[N])),
l p l_p lp为模型的最终预测。
对于 G m \mathcal{G}_m Gm的训练损失函数为:
L G m = − 1 N ∑ i = 1 N y i ⋅ l o g ( p i ) + ( 1 − y i ) ⋅ ( 1 − l o g ( p i ) ) \mathcal{L}_{\mathcal{G}_{m}}=-\frac{1}{N}\sum_{i=1}^{N}y_{i}\cdot log(p_{i})+(1-y_{i})\cdot(1-log(p_{i})) LGm=N1i=1Nyilog(pi)+(1yi)(1log(pi))
其中, N N N G m \mathcal{G}_m Gm中类的数量。

未完待续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/630782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java大数据hadoop2.9.2 Java编写Hadoop分析平均成绩

1、准备文件&#xff0c;例如score.txt&#xff0c;内容如下&#xff1a; zs k1 88 ls k1 98 ww k1 78 zs k2 88 ls k2 98 ww k2 78 zs k3 88 ls k3 98 ww k3 78 2、创建maven项目 <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common --><d…

【XTuner 大模型单卡低成本微调实战】学习笔记

参考学习教程【XTuner 大模型单卡低成本微调实战】 理论 Finetune简介 大语言模型 微调模式 增量预训练 指令跟随微调 LoRA和QLoRA Xtuner介绍 实战 自定义微调 用 Medication QA 数据集进行微调 将数据转为 XTuner 的数据格式 目标格式&#xff1a;(.jsonL) 写提示词请C…

ChatGPT 商业提示词攻略书

原文&#xff1a;ChatGPT Business Prompt Playbook 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 一、书系介绍 人工智能发展迅速。非常迅速。 所以我希望你做两件事&#xff1a; (1) 在 Twitter 上关注我&#xff1a;iamkylebalmer (2) 订阅我的免费电子邮件通…

SpringMVC JSON数据处理见解6

6.JSON数据处理 6.1.添加json依赖 springmvc 默认使用jackson作为json类库,不需要修改applicationContext-servlet.xml任何配置&#xff0c;只需引入以下类库springmvc就可以处理json数据&#xff1a; <!--spring-json依赖--> <dependency><groupId>com.f…

MySQL窗口函数(MySQL Window Functions)

1、窗口函数基本概念 官网地址&#xff1a;https://dev.mysql.com/doc/refman/8.0/en/window-functions.html 窗口可以理解为 记录集合&#xff0c;窗口函数就是在满足某种条件的记录集合上执行的特殊函数。 即&#xff1a;每条记录都要在此窗口内执行函数。 静态窗口&#x…

springboot集成shiro+前端vue,前后端分离项目遇到跨域以及sessionid拿不到等问题

近期在写前后端分离的项目&#xff0c;由于前后端分离导致原来使用的shiro配置无法满足现有系统要求。同时在前后端分离项目中存在的一些问题。例如&#xff0c;一些用户信息需要存储在后端方便进行安全性判断&#xff0c;但这些存储在后端的session前端却获取不到&#xff08;…

Docker本地私有仓库搭建配置指导

一、说明 因内网主机需要拉取镜像进行Docker应用&#xff0c;因此需要一台带外主机作为内网私有仓库来提供内外其他docker业务主机使用。参考架构如下&#xff1a; 相关资源&#xff1a;加密、Distribution registry、Create and Configure Docker Registry、Registry部署、D…

K8s-架构

一、K8s节点划分 K8s集群包含Master(控制节点)和Node(工作节点)&#xff0c;应用部署在Node节点上。 集群架构图&#xff1a; 二、Master节点 Master节点分成四个组件&#xff1a;scheduler、ApiServer、Controller Manager、ETCD。类似三层结构&#xff0c;controller&#…

2024年外贸新兴市场有哪些 | 箱讯科技国际贸易平台

当前欧美市场经济增速放缓&#xff0c;通胀持续高位导致物价普遍上涨&#xff0c;进一步引发消费疲软。此外&#xff0c;受原材料价格、劳动力、土地等经营成本上升影响&#xff0c;外贸出口企业利润被进一步压缩。 困顿之中&#xff0c;新兴市场成为破局关键&#xff0c;巨大的…

Mysql流程控制函数

1概述 Mysql中的流程控制函数非常重要&#xff0c;可以根据不同的条件&#xff0c;执行不同的流程转换&#xff0c;可以在SQL语句中实现不同的条件选择。MySQL中的流程处理函数主要包括IF()、IFNULL()和CASE()函数。 1.1 IF函数 SELECT IF(1 > 0, 正确, 错误);1.2 IFNULL…

rabbitmq基础教程(ui,java,springamqp)

概述&#xff1a;安装看我上篇文章Docker安装rabbitmq-CSDN博客 任务一 创建一个队列 这样创建两个队列 在amq.fanout交换机里面发送数据 模拟发送数据 发送消息&#xff0c;发现一下信息&#xff1a; 所以得出理论&#xff0c;消息发送是先到交换机&#xff0c;然后由交换机…

如何手写一个RPC?

在学习 RPC 框架之前&#xff0c;我们先来手写一个RPC。 我们在学习的过程中&#xff0c;一定要做到知其然&#xff0c;还要知其所以然。 架构演进 单体架构 要知道&#xff0c;在以前单体架构的时候&#xff0c;会将所有的应用功能都集中在一个服务当中。 单体架构初始开发…

新版K8s:v1.28拉取Harbor仓库镜像以及本地镜像(docker弃用改用containerd,纯纯踩坑)

目录 一、项目概述二、环境三、项目样式Harborkuboard运行样式 四、核心点Harbor安装config.toml文件修改(containerd)ctr、nerdctl相关命令kuboard工作负载 五、总结 一、项目概述 使用Kuboard作为k8s集群的管理平台&#xff0c;Harbor作为镜像仓库&#xff0c;拉取Harbor镜像…

HttpServletRequest getServerPort()、getLocalPort() 、getRemotePort() 区别

getRemotePort() 、getServerPort()、getLocalPort() request.getServerPort()、request.getLocalPort() 和 request.getRemotePort() 这三个方法都是获取与HTTP请求相关的端口信息的 客户端(如浏览器)通过某个随机分配的网络连接端口(7070) 向服务器发送HTTP请求( http://exam…

异次元发卡最新0day(XSS组合拳)

异次元商店头像上传处存在存储型XSS注入&#xff08;user、admin均存在&#xff09;。其中&#xff0c;user处有过滤&#xff0c;admin无。 将恶意脚本插入后&#xff0c;管理员访问用户管理页面即可执行恶意脚本。 恶意脚本执行后&#xff0c;会新增一个管理员用户&#xff0c…

HBase学习二:RegionServer详解

1、内部结构 RegionServer是HBase系统中最核心的组件,主要负责用户数据写入、读取等基础操作。RegionServer组件实际上是一个综合体系,包含多个各司其职的核心模块:HLog、MemStore、HFile以及BlockCache。 一个RegionServer由一个(或多个)HLog、一个BlockCache以及多个R…

构建中国人自己的私人GPT—限时免费部署

在现实生活中&#xff0c;很多公司或个人的资料是不愿意公布在互联网上的&#xff0c;但是我们又要使用人工智能的能力帮我们处理文件、做决策、执行命令那怎么办呢&#xff1f;于是我们构建自己或公司的本地专属GPT变得非常重要。 先看效果&#xff1a; 解方程&#xff0c;24小…

小程序中使用上传图片,显示、删除、预览

一、功能介绍 需要哦用户点击加号上传图片&#xff0c;并展示所上传图片和能够删除和预览 二、功能实现 采用的uniapp&#xff0c;创建了一个view容器包裹加号图标和展示的图片。 内部展示图片超过9张时候&#xff0c;加号图片隐藏 <view class"img-list">/…

RK3399平台入门到精通系列讲解(USB篇)UDC 层 usb_gadget_probe_driver 接口分析

🚀返回总目录 文章目录 一、UDC:usb_gadget_probe_driver函数分析二、usb_gadget_driver 结构详细介绍三、usb_udc 结构详细介绍一、UDC:usb_gadget_probe_driver函数分析 UDC层的一项基本任务是向上层提供usb_gadget_probe_driver()接口函数。 上层调用者为composite.c中…

JVM工作原理与实战(十八):运行时数据区-堆

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、运行时数据区 二、堆 1.堆介绍 2.关键参数 总结 前言 ​JVM作为Java程序的运行环境&#xff0c;其负责解释和执行字节码&#xff0c;管理内存&#xff0c;确保安全&#xff0c…