国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

利用語義屬性來進(jìn)行時序知識圖譜的補(bǔ)全

這篇具有很好參考價(jià)值的文章主要介紹了利用語義屬性來進(jìn)行時序知識圖譜的補(bǔ)全。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

摘要部分

張量分解

超平面投影

超平面

投影

超平面投影的應(yīng)用

數(shù)學(xué)表示

正則化

引言部分

TKG嵌入方法

舉例

相關(guān)工作

SKG嵌入方法

評判事實(shí)合理性的評分函數(shù)模型

平移模型

TransE

TransE例子

張量分解模型

RESCAL

神經(jīng)網(wǎng)絡(luò)模型

TKG嵌入方法

外推

插值

具有語義屬性的KG嵌入

方法


摘要部分

通過加強(qiáng)關(guān)系約束來保留TKG中暗含的語義屬性。

借鑒張量分解超平面投影的思想設(shè)計(jì)與時間戳關(guān)聯(lián)的關(guān)系約束。

采用合適的正則化方案來適應(yīng)特定的關(guān)系約束。

張量分解

張量分解(Tensor Decomposition)是一種數(shù)學(xué)技術(shù),用于將高維數(shù)據(jù)結(jié)構(gòu)(稱為張量)分解為多個低維組件。張量是一個多維數(shù)組,可以看作是矩陣(二維數(shù)組)的高維推廣。張量分解的目的是找到原始數(shù)據(jù)的緊湊表示,通常用于數(shù)據(jù)壓縮、降維、特征提取和模式識別等。

常見的張量分解的方法:

  1. CP分解(Candecomp/Parafac Decomposition):CP分解將張量分解為一組秩-1張量的和。對于三維張量,CP分解可以表示為三個矩陣的外積和。

  2. Tucker分解:Tucker分解將張量分解為一個核心張量和一組矩陣的乘積。與CP分解不同,Tucker分解允許核心張量具有不同的秩。

  3. 張量奇異值分解(Tensor SVD):這是奇異值分解(SVD)的張量推廣,用于將張量分解為一組正交矩陣和一組奇異值。

  4. 分層Tucker分解(Hierarchical Tucker Decomposition):這種方法采用分層結(jié)構(gòu)來分解張量,允許更靈活和可擴(kuò)展的表示。

超平面投影

超平面

超平面是一個維度比包圍空間低一維的子空間。例如,在三維空間中,超平面是一個平面;在二維空間中,超平面是一條直線。

投影

投影是將一個點(diǎn)或一組點(diǎn)從一個空間映射到另一個空間的過程。在超平面投影的情況下,這意味著將高維空間中的點(diǎn)映射到一個低維子空間上。

超平面投影的應(yīng)用

超平面投影在許多領(lǐng)域都有應(yīng)用,包括:

  1. 降維:通過將數(shù)據(jù)投影到低維子空間,可以減少數(shù)據(jù)的復(fù)雜性和維度,同時保留重要的特征和結(jié)構(gòu)。

  2. 分類和回歸:在支持向量機(jī)(SVM)等機(jī)器學(xué)習(xí)算法中,超平面用作決策邊界,將不同類別的數(shù)據(jù)分開。

  3. 數(shù)據(jù)可視化:通過將高維數(shù)據(jù)投影到二維或三維空間,可以更容易地可視化和理解數(shù)據(jù)的結(jié)構(gòu)和關(guān)系。

數(shù)學(xué)表示

超平面可以通過線性方程來表示:

利用語義屬性來進(jìn)行時序知識圖譜的補(bǔ)全,時序知識圖譜補(bǔ)全,知識圖譜,人工智能

其中 是超平面的法向量,是常數(shù), 是空間中的點(diǎn)。

投影點(diǎn)可以通過以下公式計(jì)算:

其中 是投影點(diǎn),是原始點(diǎn), 是超平面上的任意點(diǎn),是超平面的法向量。

超平面投影是一種強(qiáng)大的數(shù)學(xué)工具,用于降維、分類、回歸和數(shù)據(jù)可視化。它通過將高維空間中的點(diǎn)投影到低維子空間來實(shí)現(xiàn)這些目的,從而提供了一種有效的方式來分析和解釋復(fù)雜數(shù)據(jù)集。

正則化

正則化(Regularization)是機(jī)器學(xué)習(xí)和統(tǒng)計(jì)建模中的一個技術(shù),用于防止模型過擬合。過擬合是指模型在訓(xùn)練數(shù)據(jù)上表現(xiàn)得非常好,但在未見過的測試數(shù)據(jù)上表現(xiàn)較差的現(xiàn)象。正則化通過向模型的目標(biāo)函數(shù)(通常是損失函數(shù))添加一個懲罰項(xiàng)來實(shí)現(xiàn)。

正則化的基本思想是限制模型的復(fù)雜度,使其不會過于依賴訓(xùn)練數(shù)據(jù)中的噪聲或異常值。通過引入一些形式的懲罰,正則化鼓勵模型選擇較小的參數(shù)值,從而使模型更簡單、更平滑。

常見的正則化方法有:

  • L1正則化:也稱為Lasso正則化,通過在損失函數(shù)中添加參數(shù)的絕對值之和作為懲罰項(xiàng)。這通常會導(dǎo)致某些參數(shù)精確為零,從而實(shí)現(xiàn)特征選擇。

利用語義屬性來進(jìn)行時序知識圖譜的補(bǔ)全,時序知識圖譜補(bǔ)全,知識圖譜,人工智能

  • L2正則化:也稱為嶺回歸(Ridge Regression),通過在損失函數(shù)中添加參數(shù)的平方和作為懲罰項(xiàng)。這有助于防止參數(shù)值過大。

??利用語義屬性來進(jìn)行時序知識圖譜的補(bǔ)全,時序知識圖譜補(bǔ)全,知識圖譜,人工智能

  • Elastic Net正則化:結(jié)合L1和L2正則化,既實(shí)現(xiàn)了特征選擇,又防止了參數(shù)過大。

利用語義屬性來進(jìn)行時序知識圖譜的補(bǔ)全,時序知識圖譜補(bǔ)全,知識圖譜,人工智能

其中,是正則化強(qiáng)度的超參數(shù),通過交叉驗(yàn)證等方法選擇合適的值。

正則化有助于提高模型的泛化能力,使其在未見過的數(shù)據(jù)上表現(xiàn)得更好。不過,選擇合適的正則化方法和強(qiáng)度需要仔細(xì)的調(diào)整,以便在偏差和方差之間找到合適的平衡點(diǎn)。


引言部分

TKG嵌入方法

被證明在進(jìn)行時序知識圖譜補(bǔ)全時是有用的。

這些方法通常通過將時間戳信息合并到現(xiàn)有的評分函數(shù)中來擴(kuò)展針對靜態(tài)知識圖設(shè)計(jì)的嵌入方法。

這些方法主要注意于測量整個事實(shí)的合理性,而忽略了每個實(shí)體在特定時間戳上出現(xiàn)在關(guān)系的主體或?qū)ο笪恢蒙系钠睢?/strong>

舉例

對于這個事實(shí),關(guān)系暗示了主體是個政治家,所有那些不是政治家的實(shí)體就可以被過濾掉,但是如果實(shí)體是奧巴馬的話,雖然他滿足了是個政治家的約束,但是奧巴馬能夠作為這個事實(shí)的實(shí)體并且這個事實(shí)為真的時間段只能是 在2009年到2016年

相關(guān)工作

根據(jù)是否考慮了時間信息,相關(guān)模型分為兩類:靜態(tài)知識圖譜(SKG)嵌入方法,時序知識圖譜(TKG)嵌入方法

SKG嵌入方法

實(shí)體和關(guān)系被嵌入到連續(xù)的低維向量空間中。

評判事實(shí)合理性的評分函數(shù)模型

  • 平移模型
TransE

TransE 是一種基本的平移模型,它將該關(guān)系看作是從嵌入的主體實(shí)體到嵌入的對象實(shí)體的幾何平移。

TransE的核心思想是將知識圖譜中的三元組(頭實(shí)體、關(guān)系、尾實(shí)體)表示為向量空間中的平移操作。具體來說,如果一個三元組(h, r, t)是真實(shí)的(即存在于知識圖譜中),那么頭實(shí)體的向量表示與關(guān)系的向量表示之和應(yīng)該接近尾實(shí)體的向量表示。數(shù)學(xué)上,這可以表示為:

利用語義屬性來進(jìn)行時序知識圖譜的補(bǔ)全,時序知識圖譜補(bǔ)全,知識圖譜,人工智能

TransE的目標(biāo)是學(xué)習(xí)實(shí)體和關(guān)系的向量表示,使得真實(shí)三元組的這一約束得到滿足,同時不真實(shí)的三元組(即不在知識圖譜中的三元組)不滿足該約束。

為了實(shí)現(xiàn)這一目標(biāo),TransE使用了一個損失函數(shù),通常是基于間隔的合頁損失(margin-based hinge loss)。損失函數(shù)鼓勵真實(shí)三元組的得分低于不真實(shí)三元組的得分,并且兩者之間的差距至少為一個預(yù)定的間隔。

TransE例子
import torch
import torch.nn as nn
import torch.optim as optim

# 定義實(shí)體和關(guān)系
entities = ["北京", "紐約", "巴黎", "中國", "美國", "法國"]
relations = ["位于"]
entity2idx = {entity: idx for idx, entity in enumerate(entities)}
relation2idx = {relation: idx for idx, relation in enumerate(relations)}

# 定義三元組
triples = [
    ("北京", "位于", "中國"),
    ("紐約", "位于", "美國"),
    ("巴黎", "位于", "法國"),
]

# 超參數(shù)
embedding_dim = 10
margin = 1.0
learning_rate = 0.01
epochs = 1000

# 初始化實(shí)體和關(guān)系的嵌入
entity_embeddings = nn.Embedding(len(entities), embedding_dim)
relation_embeddings = nn.Embedding(len(relations), embedding_dim)

# 優(yōu)化器
optimizer = optim.SGD(list(entity_embeddings.parameters()) + list(relation_embeddings.parameters()), lr=learning_rate)

# 訓(xùn)練
for epoch in range(epochs):
    total_loss = 0
    for head, relation, tail in triples:
        # 獲取實(shí)體和關(guān)系的索引
        head_idx = torch.LongTensor([entity2idx[head]])
        relation_idx = torch.LongTensor([relation2idx[relation]])
        tail_idx = torch.LongTensor([entity2idx[tail]])

        # 獲取嵌入
        head_embedding = entity_embeddings(head_idx)
        relation_embedding = relation_embeddings(relation_idx)
        tail_embedding = entity_embeddings(tail_idx)

        # 計(jì)算損失
        loss = torch.nn.functional.relu(margin + (head_embedding + relation_embedding - tail_embedding).norm(p=1) - (head_embedding + relation_embedding - tail_embedding).norm(p=1))
        total_loss += loss.item()

        # 反向傳播和優(yōu)化
        loss.backward()
        optimizer.step()
        optimizer.zero_grad()

    if epoch % 100 == 0:
        print(f"Epoch {epoch}, Loss: {total_loss}")

# 打印最終的嵌入
print("Entity embeddings:", entity_embeddings.weight.data)
print("Relation embeddings:", relation_embeddings.weight.data)

from sklearn.decomposition import PCA
import matplotlib.pyplot as plt

# 使用PCA將實(shí)體嵌入降到2維
pca = PCA(n_components=2)
entity_embeddings_2d = pca.fit_transform(entity_embeddings.weight.data)

# 繪制實(shí)體
plt.scatter(entity_embeddings_2d[:, 0], entity_embeddings_2d[:, 1])

# 添加標(biāo)簽
for i, entity in enumerate(entities):
    plt.annotate(entity, (entity_embeddings_2d[i, 0], entity_embeddings_2d[i, 1]))

plt.title('Entity Embeddings')
plt.show()

利用語義屬性來進(jìn)行時序知識圖譜的補(bǔ)全,時序知識圖譜補(bǔ)全,知識圖譜,人工智能

利用語義屬性來進(jìn)行時序知識圖譜的補(bǔ)全,時序知識圖譜補(bǔ)全,知識圖譜,人工智能
實(shí)體向量降維后的可視化?

擴(kuò)展:TransR , TransH?and TransD ?

  • 張量分解模型
RESCAL

RESCAL是一種用于知識圖譜嵌入的張量分解方法。與許多其他知識圖譜嵌入方法不同,RESCAL不是為每個關(guān)系學(xué)習(xí)一個單一的嵌入向量,而是為每個關(guān)系學(xué)習(xí)一個矩陣。這允許模型捕捉更復(fù)雜的關(guān)系,并可以更好地建模多對多關(guān)系。

RESCAL的工作原理

假設(shè)我們有一個三維張量,其中每個切片表示一個關(guān)系,每個元素表示實(shí)體和之間的關(guān)系的存在或強(qiáng)度

RESCAL通過以下方式分解這個張量:

  • 實(shí)體嵌入:所有關(guān)系共享相同的實(shí)體嵌入矩陣,其中每一行是一個實(shí)體的嵌入向量。
  • 關(guān)系嵌入:對于每個關(guān)系,RESCAL學(xué)習(xí)一個矩陣。
  • 重構(gòu):通過實(shí)體嵌入和關(guān)系矩陣,我們可以重構(gòu)原始張量:。

擴(kuò)展:DistMult 、ComplEx

  • 神經(jīng)網(wǎng)絡(luò)模型

這些方法應(yīng)用多層非線性特征來計(jì)算實(shí)體和關(guān)系之間的交互作用,從而生成表達(dá)性特征嵌入。

TKG嵌入方法

根據(jù)要預(yù)測的時間戳,我們可以將這些方法分為兩個背景:外推和插值

外推

外推模型側(cè)重于預(yù)測未來時間戳t(t > tT)的新事實(shí)。他們通常通過將TKG視為事件序列來開發(fā)時間依賴的評分函數(shù)。

插值

目的是通過推斷歷史時間戳t(t0 <t<tT)中缺失的事實(shí)來補(bǔ)全TKG。這些工作通常為每個時間戳計(jì)算一個隱藏的表示,并擴(kuò)展靜態(tài)分?jǐn)?shù)函數(shù)以利用時間信息。

具有語義屬性的KG嵌入

在時間知識圖嵌入中,關(guān)系及其涉及實(shí)體之間的語義屬性仍未被探索。

方法

利用語義屬性來進(jìn)行時序知識圖譜的補(bǔ)全,時序知識圖譜補(bǔ)全,知識圖譜,人工智能

?基于關(guān)系約束的評分函數(shù)

利用語義屬性來進(jìn)行時序知識圖譜的補(bǔ)全,時序知識圖譜補(bǔ)全,知識圖譜,人工智能

?根據(jù)張量分解和超平面投影來設(shè)計(jì)評分函數(shù)。

利用語義屬性來進(jìn)行時序知識圖譜的補(bǔ)全,時序知識圖譜補(bǔ)全,知識圖譜,人工智能

張量分解是一種廣泛存在的變換函數(shù),它可以通過將一個張量分解為分量秩1張量的和來計(jì)算一個元組的分?jǐn)?shù)。?

我們應(yīng)用張量分解函數(shù)來模擬元組(r、t、s)和(r、t、o)的相互作用,并計(jì)算關(guān)系約束的值。

利用語義屬性來進(jìn)行時序知識圖譜的補(bǔ)全,時序知識圖譜補(bǔ)全,知識圖譜,人工智能

張量分解容易過擬合,所以引入正則化矩陣在對應(yīng)的關(guān)系約束的元素。?

利用語義屬性來進(jìn)行時序知識圖譜的補(bǔ)全,時序知識圖譜補(bǔ)全,知識圖譜,人工智能

超平面投影:?

利用語義屬性來進(jìn)行時序知識圖譜的補(bǔ)全,時序知識圖譜補(bǔ)全,知識圖譜,人工智能?

?文章來源地址http://www.zghlxwxcb.cn/news/detail-667861.html

到了這里,關(guān)于利用語義屬性來進(jìn)行時序知識圖譜的補(bǔ)全的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 從零開始的知識圖譜生活,構(gòu)建一個百科知識圖譜,完成基于Deepdive的知識抽取、基于ES的簡單語義搜索、基于 REfO 的簡單KBQA

    從零開始的知識圖譜生活,構(gòu)建一個百科知識圖譜,完成基于Deepdive的知識抽取、基于ES的簡單語義搜索、基于 REfO 的簡單KBQA

    項(xiàng)目設(shè)計(jì)集合(人工智能方向):助力新人快速實(shí)戰(zhàn)掌握技能、自主完成項(xiàng)目設(shè)計(jì)升級,提升自身的硬實(shí)力(不僅限NLP、知識圖譜、計(jì)算機(jī)視覺等領(lǐng)域) :匯總有意義的項(xiàng)目設(shè)計(jì)集合,助力新人快速實(shí)戰(zhàn)掌握技能,助力用戶更好利用 CSDN 平臺,自主完成項(xiàng)目設(shè)計(jì)升級,提升自

    2024年02月15日
    瀏覽(25)
  • 語義解析技術(shù)在大數(shù)據(jù)時代的應(yīng)用與前景-自然語言生成SQL與知識圖譜問答實(shí)戰(zhàn)【文末送書-17】

    語義解析技術(shù)在大數(shù)據(jù)時代的應(yīng)用與前景-自然語言生成SQL與知識圖譜問答實(shí)戰(zhàn)【文末送書-17】

    語義解析技術(shù)可以提高人機(jī)交互的效率和準(zhǔn)確性,在自然語言處理、數(shù)據(jù)分析、智能客服、智能家居等領(lǐng)域都有廣泛的應(yīng)用前景。特別是在大數(shù)據(jù)時代,語義解析能夠幫助企業(yè)更快速地從大量的數(shù)據(jù)中獲取有用的信息,從而提高決策效率。 在大數(shù)據(jù)時代的背景下,語義解析技

    2024年01月21日
    瀏覽(43)
  • FPGA時序約束(二)利用Quartus18對Altera進(jìn)行時序約束

    FPGA時序約束(二)利用Quartus18對Altera進(jìn)行時序約束

    FPGA時序約束(一)基本概念入門及簡單語法 最近由于不懂時序約束,在高速信號采集上面吃了很多虧,不知道系統(tǒng)工作異常的原因是什么。記錄一下查到的資料,有些許自己的理解,可能有誤。(主要是小梅哥及《FPGA時序約束與分析(吳厚航)》) 在程序編譯之后,會出現(xiàn)

    2024年02月05日
    瀏覽(22)
  • PointNet:利用深度學(xué)習(xí)對點(diǎn)云進(jìn)行3D分類和語義分割

    PointNet:利用深度學(xué)習(xí)對點(diǎn)云進(jìn)行3D分類和語義分割

    參考自,PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation 代碼倉庫地址為:https://github.com/charlesq34/pointnet/ 介紹 這次介紹的是一個比較基礎(chǔ)的工作,針對空間點(diǎn)云,進(jìn)行分類或者語義分割的框架,現(xiàn)在通常也被用作對RGB-D圖像進(jìn)行特征提取的部分。 該工作的目的就是

    2024年02月03日
    瀏覽(23)
  • 4種通過LLM進(jìn)行文本知識圖譜的構(gòu)建方法對比介紹

    4種通過LLM進(jìn)行文本知識圖譜的構(gòu)建方法對比介紹

    我們在以前的文章中已經(jīng)介紹了使用大語言模型將非結(jié)構(gòu)化文本轉(zhuǎn)換為知識圖譜。但是對于知識圖譜的創(chuàng)建是一個很復(fù)雜的過程,比如需要對屬性增加限制,創(chuàng)建符合特定主題/模式的圖譜,并且有時文檔非常大,無法作為單個提示處理,所以在切分后的提示中創(chuàng)建的圖譜需要

    2024年01月20日
    瀏覽(20)
  • 利用TimeGAN技術(shù)對一維時序數(shù)據(jù)進(jìn)行擴(kuò)增(Python代碼)

    利用TimeGAN技術(shù)對一維時序數(shù)據(jù)進(jìn)行擴(kuò)增(Python代碼)

    1.數(shù)據(jù)集介紹 特征是工作經(jīng)驗(yàn)?zāi)晗蓿瑯?biāo)簽是薪水,因?yàn)閿?shù)據(jù)量太少,利用GAN技術(shù)進(jìn)行擴(kuò)增 YearsExperience Salary 1.1 39343 1.3 46205 1.5 37731 2 43525 2.2 39891 2.9 56642 3 60150 3.2 54445 3.2 64445 3.7 57189 3.9 63218 4 55794 4 56957 4.1 57081 4.5 61111 4.9 67938 5.1 66029 5.3 83088 5.9 81363 6 93940 6.8 91738 7.1 98273 7.9 10130

    2024年02月07日
    瀏覽(36)
  • 【圖像分割】Unet-ConvLstm利用時序信息進(jìn)行視頻分割

    【圖像分割】Unet-ConvLstm利用時序信息進(jìn)行視頻分割

    文章: Exploiting Temporality for Semi-Supervised Video Segmentation 代碼: https://github.com/mhashas/Exploiting-Temporality-For-Semi-Supervised-Video-Segmentation 理解: 使用單幀標(biāo)注,對視頻進(jìn)行分割。利用時間維度信息來推斷空間信息。將傳統(tǒng)FCN轉(zhuǎn)化成時間-空間FCN。 方法: 通過FCN語義分割網(wǎng)絡(luò),對時間

    2023年04月27日
    瀏覽(29)
  • 自學(xué)筆記——利用python開展Neo4j圖數(shù)據(jù)庫知識圖譜構(gòu)建和統(tǒng)計(jì)分析

    自學(xué)筆記——利用python開展Neo4j圖數(shù)據(jù)庫知識圖譜構(gòu)建和統(tǒng)計(jì)分析

    前言: 在上《高級統(tǒng)計(jì)學(xué)》時,老師提到結(jié)合所學(xué)知識點(diǎn)自行設(shè)計(jì)任務(wù),并利用所學(xué)完成。 近期正好在學(xué)習(xí)python的編程和利用neo4j開展知識圖譜構(gòu)建,于是在征得老師同意下,嘗試完成任務(wù):“統(tǒng)計(jì)近6年社科基金,并構(gòu)建知識圖譜。”?? 入門小白自學(xué)筆記,請高手勿噴。

    2024年02月16日
    瀏覽(24)
  • 經(jīng)典文獻(xiàn)閱讀之--VoxFormer(基于Transformer的3D語義場景補(bǔ)全)

    經(jīng)典文獻(xiàn)閱讀之--VoxFormer(基于Transformer的3D語義場景補(bǔ)全)

    之前了解了很多BEV的相關(guān)操作,但是基本上要么是激光和視覺結(jié)合,要么是純視覺完成的2D激光投影這兩種,而那種3D Occupancy方法可以利用柵格的方法完成純視覺占據(jù)柵格的生成?!禫oxFormer: Sparse Voxel Transformer for Camera-based 3D Semantic Scene Completion》就是這種方法對于被遮擋的物

    2024年01月23日
    瀏覽(23)
  • 酌情參考——chatGPT給的一些語義框架的學(xué)術(shù)思路,語義和圖譜結(jié)合似乎是個不錯的方向

    語義和圖譜結(jié)合似乎是個不錯的方向 我個人覺得可以用知識圖譜,用 語義框架作為學(xué)術(shù)上理論依據(jù),來解決學(xué)生領(lǐng)域認(rèn)知問題。 2023年9月12日18:02:48的idea。 附:認(rèn)知相關(guān) 文旭:認(rèn)知語言學(xué)的研究方法 - 向上好青年的文章 - 知乎

    2024年02月09日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包