目錄
摘要部分
張量分解
超平面投影
超平面
投影
超平面投影的應(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ù)壓縮、降維、特征提取和模式識別等。
常見的張量分解的方法:
-
CP分解(Candecomp/Parafac Decomposition):CP分解將張量分解為一組秩-1張量的和。對于三維張量,CP分解可以表示為三個矩陣的外積和。
-
Tucker分解:Tucker分解將張量分解為一個核心張量和一組矩陣的乘積。與CP分解不同,Tucker分解允許核心張量具有不同的秩。
-
張量奇異值分解(Tensor SVD):這是奇異值分解(SVD)的張量推廣,用于將張量分解為一組正交矩陣和一組奇異值。
-
分層Tucker分解(Hierarchical Tucker Decomposition):這種方法采用分層結(jié)構(gòu)來分解張量,允許更靈活和可擴(kuò)展的表示。
超平面投影
超平面
超平面是一個維度比包圍空間低一維的子空間。例如,在三維空間中,超平面是一個平面;在二維空間中,超平面是一條直線。
投影
投影是將一個點(diǎn)或一組點(diǎn)從一個空間映射到另一個空間的過程。在超平面投影的情況下,這意味著將高維空間中的點(diǎn)映射到一個低維子空間上。
超平面投影的應(yīng)用
超平面投影在許多領(lǐng)域都有應(yīng)用,包括:
-
降維:通過將數(shù)據(jù)投影到低維子空間,可以減少數(shù)據(jù)的復(fù)雜性和維度,同時保留重要的特征和結(jié)構(gòu)。
-
分類和回歸:在支持向量機(jī)(SVM)等機(jī)器學(xué)習(xí)算法中,超平面用作決策邊界,將不同類別的數(shù)據(jù)分開。
-
數(shù)據(jù)可視化:通過將高維數(shù)據(jù)投影到二維或三維空間,可以更容易地可視化和理解數(shù)據(jù)的結(jié)構(gòu)和關(guān)系。
數(shù)學(xué)表示
超平面可以通過線性方程來表示:
其中 是超平面的法向量,是常數(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)特征選擇。
- L2正則化:也稱為嶺回歸(Ridge Regression),通過在損失函數(shù)中添加參數(shù)的平方和作為懲罰項(xiàng)。這有助于防止參數(shù)值過大。
??
- Elastic Net正則化:結(jié)合L1和L2正則化,既實(shí)現(xiàn)了特征選擇,又防止了參數(shù)過大。
其中,是正則化強(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>
舉例
相關(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é)上,這可以表示為:
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()

擴(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í)體之間的語義屬性仍未被探索。
方法
?基于關(guān)系約束的評分函數(shù)
?根據(jù)張量分解和超平面投影來設(shè)計(jì)評分函數(shù)。
張量分解是一種廣泛存在的變換函數(shù),它可以通過將一個張量分解為分量秩1張量的和來計(jì)算一個元組的分?jǐn)?shù)。?
我們應(yīng)用張量分解函數(shù)來模擬元組(r、t、s)和(r、t、o)的相互作用,并計(jì)算關(guān)系約束的值。
張量分解容易過擬合,所以引入正則化矩陣在對應(yīng)的關(guān)系約束的元素。?
超平面投影:?
?文章來源:http://www.zghlxwxcb.cn/news/detail-667861.html
?文章來源地址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)!