本文目录一览:

冠远万能主板管温多大的

冠远万能主板的管温一般在50-60度之间,但是也可以根据您的使用环境和配置来调整,最高可以达到85度,但是建议您尽量将管温保持在50-60度之间,以免影响主板的使用寿命。此外,您还可以通过添加散热器或者更换散热器来降低主板的管温,以保证主板的正常使用。

要写论文了,有什么好的软件吗?

写论文需要一个好的软件来帮助你进行组织和撰写,下面列出几款比较常用的软件:

Microsoft Word:这是一款最常用的文字处理软件,包含丰富的排版和格式工具,可以很方便地对论文进行排版和编辑。

LaTeX:这是一款专门用于科技论文排版的软件,支持数学公式、图表、参考文献等复杂的排版要求,对于需要进行科技论文写作的人来说非常有用。

EndNote:这是一款文献管理软件,可以帮助你管理和组织参考文献,并自动生成参考文献列表。

Grammarly:这是一款英语语法检查工具,可以帮助你检查论文中的语法错误和拼写错误。

Zotero:这也是一款文献管理软件,可以帮助你收集、管理和引用参考文献,支持多种引用格式和多个文献数据库。

这些软件都有其各自的特点和优势,你可以根据自己的需要选择适合自己的软件来进行论文写作.

同时也可以使用ChatGPT去搜索你需要的专业知识

论文笔记之GPT-GNN: Generative Pre-Training of Graph Neural Networks

文中指出训练GNN需要大量和任务对应的标注数据,这在很多时候是难以获取的。一种有效的方式是,在无标签数据上通过自监督的方式预训练一个GNN,然后在下游任务上只需要少量的标注数据进行fine-tuning。

本文提出了GPT-GNN通过生成式预训练的方式来初始化GNN。GPT-GNN引入了一个自监督的属性图生成任务,来pre-training一个GNN,使其能够捕捉图上的结构信息和节点属性信息。

图生成任务被分成了两部分:①属性生成。②边生成。

pre-training的GNN要能够捕捉input graph的结构信息和节点属性信息,使其能够在相似领域的下游任务上通过少量label的fine-tuning就能达到很好的泛化效果。本文采用的方式是重构输入的属性图来对图分布建模。

第一步,如上左图所示,通过自监督学习任务(节点属性生成和边生成)来预训练GNN。第二步,如上右图所示,pre-training好的模型以及参数用于对下游任务的初始化,只需要在少部分标注数据上做fine-tuning。

输入G=(V,E,X),其中V表示顶点集,E表示边集,X表示顶点属性矩阵。

目标:pre-training一个GNN模型,使其能够:1)捕捉图中的结构特征和属性特征。2)能够对图的下游任务有帮助。

也就是对图G=(V,E,X)不使用label学习一个可以泛化的GNN模型fθ。

GPT-GNN通过重构/生成输入图的结构信息和节点属性信息来pre-training GNN。given 输入图G=(V,E,X)和GNN模型fθ,图和GNN的likelihood定义为p(G,θ),通过最大化likelihood来预训练GNN,也就是

如何对p(G,θ)建模?

通过自回归的方法分解目标概率分布。

首先说明什么是自回归

怎么用gpt写论文(gpt怎么做)

如上式所示,c为常数项,є为随机误差,概括来说就是X的当期值等于一个或数个前期值的线性组合加常数项加随机误差。

对于graph来说,自回归方法概括为:nodes in the graph come in an order, and the edges are generated by connecting each new arriving node to existing nodes.

对于一个给定的order,通过自回归的方式分解log likelihood,每次生成一个节点。

在step i,given 所有在前面步骤生成的节点,包括节点属性Xi和节点之间的边Ei来生成新的节点i,包括节点属性Xi和与现有节点的连接边Ei.

如何对pθ(Xi,Ei|Xi,Ei)建模?

一种简单的方式是假设Xi和Ei是独立的,也就是

然而,这种分解方式完全忽略了节点属性和节点之间联系(边)之间的依赖关系。然而这种依赖关系是属性图和基于聚合邻居节点信息的GNN的核心属性。

因此,文中提出了一种分解方式,当生成一个新的节点属性时,给出结构信息,反之亦然。

从而整个生成过程可以分为两部分:

1)given 观测边,生成节点属性。

2)given 观测边和1)中生成的节点属性,生成剩下的边。

通过这种方式,模型能够捕捉每个节点属性和结构之间的依赖关系。

定义变量o来表示Ei中观测边的index vector,即Ei,o表示已经观测到的边。¬o表示masked边(要生成边)的index。

通过引入o,可以把前面的分布重写为所有可能观测边的期望likelihood.

这里的理解非常重要,第一个等式中,把Ei拆成了Ei,¬o和Ei,o,也就是说指定了哪些边是观测边,哪些边是masked边。需要注意的是,当o确定下来以后,¬o也是确定的。因此等式外面加上了对o的累加,这里可以理解为类似于全概率公式去对所有可能的o求和。

此外,这里需要注意Ei,Ei,Ei,o,Ei,¬o四个符号分别表示的是什么。现在位于step i,Ei是指在step i之前已经生成的边,Ei是指在step i将会生成的边(与节点i相连,有好多条),之后再将Ei中的边生成过程拆分成已经生成和将要生成两部分,即Ei,o和Ei,¬o。

下一个等式中,把第二个p看作概率分布,写作对于o期望的形式。最后把Xi和Ei,¬o看作独立的过程,拆成两个概率分布。

这种分解的优势在于,没有忽略Xi和Ei,o的联系。第一项表示given观测边,聚合目标节点i的邻居信息来生成其属性Xi.第二项表示given观测边和刚生成的属性Xi,预测Ei,¬o中的边是否存在。

如上图所示,给出了一个例子。对于一个academic graph,我们要去生成一个paper node,它的属性为title,并且其和author,publish venue,reference相连。上图中的实线部分为已经观测到的边,首先生成节点的属性,即title。然后基于author1,author2,author3和刚生成的节点属性title,预测剩下的边,即虚线部分。

出于效率的考虑,希望:

1)对于输入图只跑一次GNN就能计算节点属性生成和边生成过程的loss。

2)希望节点属性生成和边生成能同时进行。

然而,边生成需要用到节点属性信息,如果两个生成过程同时进行,会导致信息泄漏。

为了避免这个问题,将节点分为两种类型:

•属性生成节点。mask住这些节点的属性,用一个共用的dummy token Xinit来代替,Xinit和Xi的维度是相同的,并且在pre-training的过程中学习到。

•边生成节点。保持它们原有的属性。

需要注意的是,同一个节点在不同阶段扮演不同的角色,可能是属性生成节点也可能是边生成节点。只是在某一阶段,一个节点有一个确定的角色。

在graph上训练GNN来生成各节点的embedding,用hAttr和hEdge来分别表示属性生成节点和边生成节点的embedding。由于属性生成节点的属性被mask住了,因此hAttr中包含的信息通常会少于hEdge。因此,在GNN的message passing过程中,只使用hEdge作为向其他节点发送的信息。也就是说,对于每个节点,其聚合邻居hEdge的信息和自身的信息来生成新的embedding。之后,对于节点的embedding,使用不同的decoder来生成节点属性和边。(注意,节点的embedding和节点属性不是一回事。通俗理解,在GNN中节点的属性是input,节点的embedding是hidden layer。)

对于属性生成,用DecAttr来表示decoder,输入hAttr来生成节点属性。decoder的选择依赖于节点属性的类型,如果是text类型的节点属性,可以使用LSTM等;如果节点属性是vector,可以使用MLP。定义一个距离函数来度量生成属性和真实属性之间的差异,对于text类型属性,可以使用perplexity,对于vector属性,可以使用L2距离。由此,可以计算属性生成过程中的loss

最小化生成属性和真实属性之间的差异,等价于对generate attributes做MLE,也就是最大化下式

从而捕捉了图中的节点属性信息。

对于边生成过程,假设每条边的生成过程和其他边是独立的,由此对likelihood进行分解

得到hEdge后,如果节点i和节点j相连,则使用

进行建模,DecEdge是一个pairwise score function。

loss定义为

Si-指的是没有和节点i相连的节点。

最小化loss等价于对generate edges做MLE,从而捕捉了图中的结构信息。

上图给出了属性图生成过程的一个具体例子。

a)对于input graph确定permutation order π。

b)随机挑选一部分与节点i相连的边作为observed edges Ei,o,剩下的边作为masked edges Ei,¬o,并且删除masked edges。

c)把节点分为属性生成节点和边生成节点。

d)计算节点3,4,5的embedding,包括它们的属性生成节点和边生成节点。

(d)-(e)通过对于每个节点并行进行节点属性预测和masked边预测来训练一个GNN模型。

完整的算法流程如下所示。

对于上图的算法流程进行详细的说明。

输入一个属性图,每次采样一个子图G~作为训练的实例进行训练。首先决定permutation order π。同时,我们希望能够并行化训练,只做一次前向传播,就能得到整个图的embedding,由此可以同时计算所有节点的loss。因此,根据permutation order π来移除边,也就是使每个节点只能从跟低order的节点处获得信息。

之后,需要决定哪些边被mask。对于每个节点,获得其所有的出边,随机挑选一部分边被mask住,这一过程对应上述line4。

之后,对节点进行划分,得到整个图中节点的embedding,用于之后loss的计算,对应line5。

lone 7-9进行loss的计算。

line 8中,通过整合采样图中未连接的节点和Q中以前计算的节点embedding来选择负样本,这种方式能够减轻对于采样图优化和对于整个图优化的差距。

在line11-12中,优化模型并更新Q。

对于异构图,即包含不同类型的点和边的图,唯一的不同在于不同类型的点和边采用不同的decoder。

对于大规模的图,可以采样子图来进行训练,即上述算法流程中Sampler的作用。为了计算Ledge这一loss,需要遍历输入图的所有节点。然而,我们只能在采样的子图上计算这个loss。为了缓解这一差异,提出了adaptive queue,其中存储了之前采样的子图的节点embedding作为负样本。每次采样一个新的子图时,逐步更新这个队列,增加新的节点embedding,移除旧的节点embedding。通过引入adaptive queue,不同采样子图中的节点也能为全局的结构提供信息。

GPT和GPT2

GPT用的是transformer decoder

fine-tuning的输入:最后一个词的向量。

GPT采用单向transformer可以解决Bert无法解决的生成文本任务。

一个字一个字往出蹦的形式

通常我们会用特定的网络结构去给任务建模,构建通用NLP模型,对p(output | input, task)建模。output ,input, task三者都用向量表示。

把第二阶段替换由Finetuning有监督,换成了无监督做下游任务,因为它扔进去了好多任务数据,且有提示词。

问题1 :GPT2把第二阶段的Finetuning做有监督地下游NLP任务,换成了 无监督地做下游任务 。为什么这样做?一种看法认为,只是GPT作者想说明在第一阶段Transformer学到了很多通用的包含各个领域的知识。

问题2:为什么GPT 2.0仍然固执地用单向语言模型,而不是双向语言模型呢?

Bert的论文认为,Bert的有效性主要是因为使用了双向语言模型。

1.生成内容后续单词这种模式,单向语言模型更方便;

2、想证明通过增加数据量和模型结构,单向模型未必输双向模型。

问题3:GPT2训练好的语言模型,如何无监督适应下游任务,比如文本摘要,怎么知道是在做文本摘要任务呢?

首先,所有任务都采取相同的往出蹦字的输出模式。GPT2.0给出了一种新颖的生成式任务的做法,就是一个字一个字往出蹦,然后拼接出输出内容作为翻译结果或者摘要结果。GPT-2的输入也会加入提示词,比如输入格式是 文本+TL;DR:,GPT-2模型就会知道是做摘要工作了。