基于圖卷積網(wǎng)絡(luò)的半監(jiān)督分類(Semi-Supervised Classification With Graph Convolutional Networks)

注:內(nèi)容非原創(chuàng),僅作翻譯
原論文地址:https://arxiv.org/abs/1609.02907

摘要:我們提出一個直接操作圖本身并且基于圖卷積網(wǎng)絡(luò)的半監(jiān)督學(xué)習(xí)的方法,該方法使用圖結(jié)構(gòu)數(shù)據(jù),它是一種卷積神經(jīng)網(wǎng)絡(luò)的變體。我們通過譜圖卷積的局部一階近似來激勵卷積結(jié)構(gòu)的選擇。我們的模型在圖形邊的數(shù)量上是線性擴(kuò)展的,并且學(xué)習(xí)了隱藏層對局部圖結(jié)構(gòu)和節(jié)點(diǎn)特征進(jìn)行編碼的表示。在“論文的引用網(wǎng)絡(luò)”( citation networks and on a knowledge graph dataset)數(shù)據(jù)集上進(jìn)行了大量實(shí)驗(yàn)我們證明我們的方法比相關(guān)的方法有顯著的優(yōu)勢。

1. 引言

我們考慮一個在圖上的(例如引用網(wǎng)絡(luò))節(jié)點(diǎn)分類問題(例如文檔),這里的標(biāo)簽只能對很小的一部分子集可用。這種問題可以表示為基于圖的半監(jiān)督學(xué)習(xí),可以通過某種形式的顯式的基于圖的正則化來平滑圖上的標(biāo)簽信息(Zhu等人2003; Zhou等人2004; Belkin 等人2006; Weston等人2012),例如,使用一個圖拉普拉斯正則化在損失函數(shù)中:
L=L_0+λL_{reg}, with\; L_{reg}=\displaystyle\sum_{i,j}A_{ij}||f(X_i)-f(X_j)||^2=f(X)^T\Delta f(X).\quad eq.1這里的L_0可以表示為在有標(biāo)簽的部分圖中的監(jiān)督損失,f(.)是一個類似于可微分函數(shù)的神經(jīng)網(wǎng)絡(luò),λ是一個權(quán)重因子,X是由每一個節(jié)點(diǎn)X_i的特征向量組成的矩陣。?= D?A表示無向圖G = (V, E)的未歸一化圖拉普拉斯行列式,N個節(jié)點(diǎn)表示為v_i\in V,邊表示為(v_i, v_j)\in ε,鄰接矩陣表示為A\in R^{N\times N}(二進(jìn)制或者加權(quán)值),次數(shù)矩陣D_{ii}=\sum_jA_{ij},公式1中的推導(dǎo)依賴于圖中連通節(jié)點(diǎn)共享同一個標(biāo)簽這一個假設(shè)。然而,這種假設(shè)可能會限制建模能力,因?yàn)閳D的邊不一定要對節(jié)點(diǎn)相似性進(jìn)行編碼,但可能包含其他信息。
在該論文中,我們直接使用一個神經(jīng)網(wǎng)絡(luò)模型f(X,A)對一個圖進(jìn)行編碼,并且有監(jiān)督地使用所有有標(biāo)簽的節(jié)點(diǎn)對L_0進(jìn)行訓(xùn)練,從而避免顯式地對基于圖的損失函數(shù)進(jìn)行正則化計(jì)算。在圖的鄰接矩陣上調(diào)節(jié)函數(shù)f(·)將允許模型從監(jiān)督損失L_0中分開梯度信息,并使其能夠?qū)W習(xí)有標(biāo)簽和無標(biāo)簽節(jié)點(diǎn)的表示。
我們的進(jìn)展是雙重的。首先,我們?yōu)橹苯幼饔糜趫D的神經(jīng)網(wǎng)絡(luò)模型引入了一個簡單并且表現(xiàn)良好的分層傳播規(guī)則,并且展示了它們是如何通過譜圖卷積的一階近似來激勵神經(jīng)網(wǎng)絡(luò)模型。其次,我們證明并演示了這種基于圖的神經(jīng)網(wǎng)絡(luò)模型如何被用于快速和可擴(kuò)展的半監(jiān)督式節(jié)點(diǎn)分類。大量的實(shí)驗(yàn)表明,我們的模型在時間效率上都優(yōu)于現(xiàn)有最先進(jìn)的半監(jiān)督學(xué)習(xí)方法。

2. 圖上快速近似卷積

在這節(jié),我們提供一個特定的基于圖的神經(jīng)網(wǎng)絡(luò)模型f(X, A),該模型將會在本文的剩余部分進(jìn)行使用。我們考慮一個使用了如下所示傳播函數(shù)的的多層GCN:
H^{(l+1)}=\sigma(\widetilde{D}^{-\frac{1}{2}}\widetilde{A}\widetilde{D}^{-\frac{1}{2}}H^{(l)}W^{(l)}).\quad eq.2這里的\widetilde{A}=A+I_N是一個添加了自連接的無向圖G的鄰接矩陣表示,其中I_N是一個單位矩陣,\widetilde{D}_{ii}=\sum_j\widetilde{A}_{ij}W^{(l)}是一個可訓(xùn)練的分層權(quán)重矩陣。\sigma(.)是一個激活函數(shù),例如ReLU(.)=max(0,.),H^{(l)}\in R^{N \times D}是一個第l層的激勵矩陣,H^{(0)}=X,也就是說第一層的激勵矩陣是每一個節(jié)點(diǎn)的特征向量構(gòu)成的特征矩陣。在下文中,我們證明了這種傳播規(guī)則的形式可以通過圖上局部譜濾波器的一階近似來進(jìn)行激勵(Hammond等人 2011; Defferrard等人 2016)。

2.1 卷積譜圖

我們將圖上的譜卷積定義為一個信號x\in R^N(一個節(jié)點(diǎn)對應(yīng)一個標(biāo)量)和一個過濾器g_\theta = diag(\theta)的乘積,其中的參數(shù)\theta為在傅里葉域上的向量,滿足\theta\in R^N。例如:
g_\theta*x=Ug_\theta U^Tx\quad eq.3這里的U是一個標(biāo)準(zhǔn)化圖拉普拉斯變換L=I_N-D^{-\frac{1}{2}}AD^{-\frac{1}{2}}=U\land U^T,其中的\land為對角矩陣特征值,運(yùn)算U^Txx的圖傅里葉變換結(jié)果。我們可以將g_\theta理解為一個關(guān)于L特征值的函數(shù),例如:g_\theta(\land)。驗(yàn)證和計(jì)算公式3是一個費(fèi)時費(fèi)力的活兒,因?yàn)楹吞卣飨蛄烤仃?img class="math-inline" src="https://math.jianshu.com/math?formula=U" alt="U" mathimg="1">相乘的復(fù)雜度為O(N^2)。此外,對于大型圖,首先計(jì)算L的特征分解可能非常昂貴(時間和設(shè)備上)。為了緩解這個問題(之所以稱為緩解,是因?yàn)椴]有得到徹底解決),我們可以使用近似表達(dá)式,下式中的多項(xiàng)式T_k(x)直到K階:
g_{\theta'}(\land)=\sum_{k=0}^{K}\theta'_kT_k(\widetilde\land)\quad eq.4這里的\widetilde\land=\frac{2}{\lambda_{max}}\land-I_N,其中的\lambda_{max}指的是L的最大特征值,\theta'\in R^K是一個切比雪夫系數(shù)向量,切比雪夫多項(xiàng)式遞歸定義為T_k(x)=2xT_{k-1}(x)-T_{k-2}(x),并且滿足初始條件T_0(x)=1T_1(x)=x?;氐较惹暗亩x,我們可以更新公式為:
g_{\theta'}*x\approx\sum_{k=0}^{K}\theta'_kT_k(\widetilde{L})x\quad eq.5其中的\widetilde{L}=\frac{2}{\lambda_{max}}L-I_N,并且可以得證(U\land U^T)^k=U\land^k U^T,需要注意的是這個表達(dá)式是k局部的,因?yàn)樗?img class="math-inline" src="https://math.jianshu.com/math?formula=K" alt="K" mathimg="1">階拉普拉斯多項(xiàng)式,也就是說,它只依賴于離中心節(jié)點(diǎn)(K階領(lǐng)域)最大K步的節(jié)點(diǎn)(什么意思?),原文如下:

該段原文,沒看明白所以然

計(jì)算公式5所用到的時間復(fù)雜度為O(|\epsilon|),也就是說和邊的數(shù)量是線性關(guān)系。

2.2 Layer-Wise 線性模型

基于圖卷積的神經(jīng)網(wǎng)絡(luò)模型可由公式5的多層卷積層疊加而成,每層跟隨一個逐點(diǎn)非線性(point-wise non-linearity)?,F(xiàn)在,假設(shè)我們將逐層卷積運(yùn)算限制為K = 1(參見公式5),即一個線性的w.r.t.\; L的函數(shù),因此是圖拉普拉斯譜上的一個線性函數(shù)。
通過這種方法,我們可以保持一種豐富的卷積濾波函數(shù),但是并不局限于給出的顯式參數(shù)化,例如切比雪夫多項(xiàng)式等。我們期待這樣一個模型能夠解決具有非常寬節(jié)點(diǎn)度分布的圖(例如社交網(wǎng)絡(luò)、引用網(wǎng)絡(luò)、知識圖和許多其他真實(shí)世界的圖數(shù)據(jù)集)的局部領(lǐng)域結(jié)構(gòu)過擬合問題。此外,這種分層線性模型允許我們構(gòu)建更深入的模型,這是一種可以提高多個領(lǐng)域建模能力的實(shí)踐。
在這種情況下,我們將GCN網(wǎng)絡(luò)進(jìn)一步近似\lambda_{max}\approx 2,神經(jīng)網(wǎng)絡(luò)參數(shù)將會在大規(guī)模的訓(xùn)練之后達(dá)到這樣預(yù)期的估計(jì)。因此,公式5可以簡化為:
g_{\theta'}*x\approx \theta'_0x+\theta'_1(L-I_N)x=\theta'_0x-\theta_1'D^{-\frac{1}{2}}AD^{-\frac{1}{2}}x\quad eq.6這里有兩個自定義的參數(shù)\theta'_0\theta'_1。這個濾波器可以在整個圖中共享,這種形式的連續(xù)濾波操作可以對一個節(jié)點(diǎn)的k階鄰(k-th)域進(jìn)行卷積操作,其中k指的是神經(jīng)網(wǎng)絡(luò)模型中連續(xù)濾波操作或者卷積層的數(shù)量。
在實(shí)踐中,得益于進(jìn)一步限制了參數(shù)的數(shù)量來處理過擬合并且最小化每層操作的數(shù)量(例如使用矩陣乘法),得到了下面的表達(dá)式:
g_\theta*x\approx\theta(I_N+D^{-\frac{1}{2}}AD^{-\frac{1}{2}})x\quad eq.7這里將上述的雙參數(shù)合并為一個單參數(shù)\theta=\theta'_0=-\theta_1',需要注意的是I_N+D^{-\frac{1}{2}}AD^{-\frac{1}{2}}現(xiàn)在的特征值在[0, 2]范圍內(nèi)。因此,在深度神經(jīng)網(wǎng)絡(luò)模型中重復(fù)使用該算子會導(dǎo)致該數(shù)值不穩(wěn)定和梯度消失,為了解決這一問題,我們引入了再歸一化技巧:
I_N+D^{-\frac{1}{2}}AD^{-\frac{1}{2}}\to\widetilde{D}^{-\frac{1}{2}}\widetilde{A}\widetilde{D}^{-\frac{1}{2}},其中參數(shù)滿足\widetilde{A}=A+I_N\;and\;\widetilde{D}_{ii}=\sum_j\widetilde{A}_{ij}。我們可以將這個定義泛化到信號X\in R^{N\times C}這里的C輸入通道(每個節(jié)點(diǎn)有C維的特征向量)和F維濾波器的特征映射如下:
Z=\widetilde{D}^{-\frac{1}{2}}\widetilde{A}\widetilde{D}^{-\frac{1}{2}}X\Theta\quad eq.8這里的\Theta\in R^{C\times F}是濾波器參數(shù)矩陣,Z\in R^{N\times F}是信號卷積矩陣。這個濾波計(jì)算的復(fù)雜度是O(|\epsilon|FC),這樣可以有效實(shí)現(xiàn)\widetilde{A}X稠密矩陣和稀疏矩陣的乘積操作。

3. 半監(jiān)督節(jié)點(diǎn)分類器

通過介紹一個簡單但是靈活的模型f(X, A)可以在圖上進(jìn)行有效信息傳播后,回到半監(jiān)督節(jié)點(diǎn)分類問題。正如在引言中所述,我們可以通過對數(shù)據(jù)X和圖結(jié)構(gòu)的底層鄰接矩陣A的模型f(X, A)進(jìn)行調(diào)整,來適應(yīng)基于圖的半監(jiān)督學(xué)習(xí)中的某些典型假設(shè)。我們期望這種設(shè)置在鄰接矩陣A中包含但是數(shù)據(jù)X中不包含相關(guān)信息的情況下模型會很有效,例如引用網(wǎng)絡(luò)中文檔之間的引用鏈接或知識圖中的關(guān)系。一個用于半監(jiān)督學(xué)習(xí)的多層次GCN如下圖1所示。

圖1. a. 圖卷積網(wǎng)絡(luò)結(jié)構(gòu)

圖表解釋:輸入通道C和特征映射輸出F進(jìn)行半監(jiān)督學(xué)習(xí)的多層圖卷積網(wǎng)絡(luò)(GCN)的示意圖。圖的結(jié)構(gòu)(以黑線表示的邊)在層之間共享,標(biāo)簽用Y_i表示。

圖1. b. 隱藏層活動狀態(tài)

圖表解釋:隱藏層的可視化展示,在Cora數(shù)據(jù)集上使用5%的標(biāo)簽訓(xùn)練的兩層GCN,其中的顏色表示文檔類別。

3.1 栗子(例子)

下文中,我們考慮一個兩層的GCN用于半監(jiān)督節(jié)點(diǎn)分類,其圖上有一個對稱的鄰接矩陣A(二進(jìn)制或者加權(quán)矩陣)。在每一步進(jìn)行處理的時候我們首先計(jì)算\widetilde{A}=\widetilde{D}^{-\frac{1}{2}}\widetilde{A}\widetilde{D}^{-\frac{1}{2}}作為預(yù)處理步驟。我們的前向模型采用以下簡形式:
Z=f(X, A)=softmax(\widetilde{A}ReLU(\widetilde{A}XW^{(0)})W^{(1)})\quad eq.9該處的W^{(0)}\in R^{C\times H}是一個輸入層到隱藏層(input-to-hidden)的權(quán)重矩陣,輸出的是維度為H的特征映射。W^{(1)}\in R^{H\times F}是一個隱藏層到輸出層(hidden-to-output)的權(quán)重矩陣。該softmax激活函數(shù),定義為softmax(x_i)=\frac{1}{Z}exp(x_i)\;with\;Z=\sum_i{exp(x_i)},該函數(shù)應(yīng)用于每一行。對于半監(jiān)督多類分類器,我們評估所有訓(xùn)練標(biāo)簽的交叉熵誤差:
L=-\sum_{l\in y_L}\sum_{f=1}^{F}Y_{lf}lnZ_{lf}\quad eq.10該處的y_L是一組有標(biāo)簽的節(jié)點(diǎn)索引目錄。
W^{(0)}W^{(1)}是使用梯度下降法訓(xùn)練的神經(jīng)網(wǎng)絡(luò)權(quán)值矩陣。在該任務(wù)中,我們每次訓(xùn)練迭代中使用完整的數(shù)據(jù)集進(jìn)行批量梯度下降,只要數(shù)據(jù)集能夠在(計(jì)算機(jī))內(nèi)存中存儲,這就是一個可行的選擇。矩陣A使用稀疏表示法,內(nèi)存的需求是O(|\epsilon|),即和邊的數(shù)量是線性相關(guān)的。訓(xùn)練過程中的隨機(jī)性是通過dropout(Srivastava等人 2014)。在之后的工作中使用小批量隨機(jī)梯度下降法來增加內(nèi)存效率。

3.2 實(shí)現(xiàn)

在實(shí)踐中,我們使用了稀疏矩陣乘法和基于GPU版本的TensorFlow對公式9進(jìn)行了高效的實(shí)現(xiàn)??梢宰C明,公式9的計(jì)算復(fù)雜度為O(|\epsilon|CHF),即和圖中的邊數(shù)有線性關(guān)系。

4. 相關(guān)工作(也稱他山之石、前人工作)

(不翻)

5. 實(shí)驗(yàn)

我們在數(shù)個實(shí)驗(yàn)中檢驗(yàn)該模型:使用引用網(wǎng)絡(luò)數(shù)據(jù)的半監(jiān)督文檔分類器,從知識圖中提取的二分圖的半監(jiān)督實(shí)體分類器,各種圖傳播模型的評估和隨機(jī)圖的運(yùn)行時分析。

5.1 數(shù)據(jù)集

我們按照Yang等人(2016)設(shè)置的實(shí)驗(yàn)條件,數(shù)據(jù)集的統(tǒng)計(jì)數(shù)據(jù)如下表所示:


數(shù)據(jù)集統(tǒng)計(jì)

在引用網(wǎng)絡(luò)數(shù)據(jù)集中——Citeseer、Cora和Pubmed中,節(jié)點(diǎn)是“文檔”,邊是“引用網(wǎng)絡(luò)”。標(biāo)簽比率(Label rate)指的是用來訓(xùn)練的節(jié)點(diǎn)所占每一個數(shù)據(jù)集整體的比重。NELL是一個從含有55864個關(guān)系節(jié)點(diǎn)以及9891個實(shí)體節(jié)點(diǎn)中提取出來的二分圖。

  • Citation networks:我們使用三個引用網(wǎng)絡(luò)數(shù)據(jù)集(Citeseer、Cora和Pubmed)。這些數(shù)據(jù)集包含每一個文檔的稀疏詞庫模型特征向量,以及每個文檔之間的引用關(guān)系列表。我們將引用關(guān)系表示為無向圖的邊并且將其構(gòu)建為一個二分的,對稱的鄰接矩陣A。每一個文檔有一個對應(yīng)的標(biāo)簽。訓(xùn)練時,我們僅僅用每一個類的20個標(biāo)簽,但是用到了所有的特征向量。
  • NELL:在程序中并未見到該數(shù)據(jù)集,不翻。
  • Random graph:在程序中并未見到該數(shù)據(jù)集,不翻。

5.2 實(shí)驗(yàn)設(shè)置

除非特別聲明,我們均訓(xùn)練在第3.1節(jié)中所述的兩層的GCN網(wǎng)絡(luò),并且在1000個樣本標(biāo)簽中計(jì)算預(yù)測分?jǐn)?shù)來評估樣本。我們提供了一個額外的實(shí)驗(yàn),使用了更深層次的模型(有10層),詳細(xì)內(nèi)容在附錄B中。我們使用了和Yang等人(2016)中相同的數(shù)據(jù)集切片。并增加了500個帶標(biāo)記的超參數(shù)優(yōu)化示例驗(yàn)證集(所有層的信號丟失率(dropout rate)、第一個GCN層的L_2正則化因子和隱藏單元的數(shù)量)。在訓(xùn)練數(shù)據(jù)過程中不使用驗(yàn)證集。
對于引用網(wǎng)絡(luò)數(shù)據(jù)集,我們只在Cora數(shù)據(jù)集上優(yōu)化超參數(shù),并且使用相同的參數(shù)集在CiteseerPubmed上。對所有模型進(jìn)行200次迭代(epoch),并使用設(shè)置為0.01學(xué)習(xí)速率的Adam優(yōu)化算法來對模型進(jìn)行訓(xùn)練。當(dāng)訓(xùn)練窗口為10的時候提前停止訓(xùn)練(即驗(yàn)證損失值連續(xù)10個迭代(epoch)都沒有減少的話,我們就停止訓(xùn)練)。對于初始值,我們使用Glorot和Bengio(2010)中提到的初始化方法進(jìn)行初始化,并相應(yīng)地對輸入特征向量進(jìn)行歸一化(行方向上),在隨機(jī)圖數(shù)據(jù)集上,我們使用了32個單位地隱層大小,并且省略了正則化(即既沒有dropout也沒有進(jìn)行L_2正則化的項(xiàng))。

5.3 基準(zhǔn)

我們與Yang等人(2016)相同的基線方法進(jìn)行了比較,即標(biāo)簽傳播
(LP) (Zhu等人2003),半監(jiān)督嵌入(SemiEmb) (Weston等人2012),manifold正則化(ManiReg) (Belkin等人2006)和基于跳躍圖嵌入(DeepWalk)(Perozzi等人2014)。我們省略了TSVM (Joachims, 1999),因?yàn)樗荒軘U(kuò)展到一個含有大量類別的數(shù)據(jù)集中。
我們進(jìn)一步對比了Lu和Getoor(2003)提出的迭代分類算法(ICA),并結(jié)合兩個邏輯回歸分類器,一個用于單獨(dú)的局部節(jié)點(diǎn)特征,另一個用于使用局部特征和Sen等人(2008)描述的聚合操作符進(jìn)行關(guān)系分類。我們首先使用所有標(biāo)記的訓(xùn)練集節(jié)點(diǎn)訓(xùn)練本地分類器,并使用它引導(dǎo)未標(biāo)記節(jié)點(diǎn)的類標(biāo)簽進(jìn)行關(guān)系分類器訓(xùn)練。我們在所有未標(biāo)記的節(jié)點(diǎn)上(使用本地分類器引導(dǎo))以隨機(jī)節(jié)點(diǎn)順序運(yùn)行迭代分類(關(guān)系分類器),進(jìn)行10次迭代。L_2正則化參數(shù)和聚合操作符(count vs. prop,參見Sen等人(2008))分別根據(jù)每個數(shù)據(jù)集的驗(yàn)證集性能進(jìn)行選擇。
最后,我們比較了Planetoid(Yang等人2016)的結(jié)果,我們總是選擇表現(xiàn)最好的模型變體(轉(zhuǎn)導(dǎo)型和誘導(dǎo)型)作為基準(zhǔn)。

6. 結(jié)果

6.1 半監(jiān)督節(jié)點(diǎn)分類

結(jié)果匯總在下表中,表中的數(shù)字代表了分類得分比值,對于ICA,我們選擇展示其100次隨機(jī)節(jié)點(diǎn)排序運(yùn)行結(jié)果的平均值。對于其他結(jié)果而言,基準(zhǔn)方法是取自Planetoid(Yang等人2016)論文。Planetoid*表示在他們的論文中給出的變量針對各數(shù)據(jù)集有最佳模型。

表2:分類得分匯總(百分比)

在我們的方法(包括驗(yàn)證誤差的評估)和Planetoid的方法中,我們以秒為單位控制訓(xùn)練時間,直到收斂。對于后者,我們使用了由第三位作者https://github.com/kimiyoung/planetoid提供的實(shí)現(xiàn),并在與我們的GCN模型相同的硬件(使用GPU)上進(jìn)行了訓(xùn)練。我們在與Yang等人(2016)相同的數(shù)據(jù)集切片上訓(xùn)練和測試了我們的模型,并報(bào)告了使用隨機(jī)權(quán)重初始化的100次運(yùn)行的平均準(zhǔn)確性。我們對Citeseer、Cora和Pubmed使用了以下超參數(shù)集:0.5(dropout rate)、(正則化)和16(隱藏單元數(shù)目);對于NELL而言: 0.1(dropout rate), (正則化)和64(隱藏單元數(shù)目)。
此外,我們報(bào)告了我們的模型在10個隨機(jī)產(chǎn)生的數(shù)據(jù)集上的性能,這些數(shù)據(jù)集的大小與Yang等人(2016)的數(shù)據(jù)集大小相同,用GCN 表示。在這里,我們報(bào)告的平均和標(biāo)準(zhǔn)誤差的預(yù)測精度的測試集的百分比。

6.2 傳播模型評價

(不翻)

6.3 每批次的訓(xùn)練時間

(不屬于研究內(nèi)容,不翻)

7. 討論(不翻)

7.1 半監(jiān)督模型

7.2 局限性和展望

8. 結(jié)論

提出了一種新的半監(jiān)督分類方法。我們的GCN模型使用了一種有效的分層傳播規(guī)則,該規(guī)則基于圖上譜卷積的一階近似。在大量網(wǎng)絡(luò)數(shù)據(jù)集上的實(shí)驗(yàn)表明,所提出的GCN模型能夠?qū)D結(jié)構(gòu)和節(jié)點(diǎn)特征進(jìn)行編碼,這對半監(jiān)督分類是有用的。在這種情況下,我們的模型在計(jì)算效率上大大優(yōu)于最近提出的幾種方法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容