-
三元組(head, relation and tail)來表達知識
- 如 sky tree, location, Tokyo
-
Data
-
Input:
$(h, \ell, t)$ -
output
- embedded_entity
- embedded_relation
-
-
Graph
-
directed
-
multi-relations
-
-
希望將知識圖譜中的 entity 和 relation 轉換成低維度的向量
- 用embedding不是one-hot的原因是希望賦予維度更多意義
- 處理了維度災難的問題,有助於深度學習模型運算
- 先前也有許多方式嘗試轉向量,但效果不好或運算量太大
-
優點
-
模型簡單
-
準度高
-
能夠處理大量資料
-
讓 head + relation ~= tail
-
- A 跟 B 會不會是好友
- 協同過濾在用戶-物品的交互稀少時表現會不理想,可以透過混合的推薦系統來優化模型效度
- (?, r, t): 給導演(r)和驚魂(t),希望知道導演(h)是誰
- (h, r, ?): 給驚魂(h)和導演(r),希望知道被哪個人導演
- Embed head/tail and relation in the same vector space, such that $$ head + relation = tail\ $$
- 樣本資料
-
$(h, \ell, t) \in S$ 為正確的樣本 -
$(h^\prime, \ell, t^\prime) \in S$ 為錯誤的樣本,從正確的樣本中抽換 h 或 t 而來- 每個tail的數量不一定,冷門的標度比較難被抽樣到,會有inbalance的問題
- 抽 head 和 tail 的時候會遇到down sampleng 的說明
-
- 因為希望
$h +\ell \approx t$ ,所以$d(h+\ell, t)$ 要越小越好,反之$d(h^\prime+\ell, t^\prime)$ 要越大越好- 距離的計算方式可以是 L1 也可以是 L2
- 最終會取正值作為得分,如小於 0 則取 0
- 參數設定
- learning rate: {0.001, 0.01, 0.1}
-
$\gamma$ 邊際值: {1,2,10}- 差距要大一些才會當成有差距
- dimenson小的時候,$\gamma$ 會大一些
- k 維度數: {20, 50}
- Input
- Training Set S,包含
$(h, \ell, t)$
- Training Set S,包含
- Initialize
- 初始化 entity 和 relation 的參數
- loop
- 從訓練資料中抽正確的資料並製造錯誤的資料
- Gradient descent 的方式逐步優化 embedding 的結果
- mean rank
- 透過測試資料中的
$(h, \ell)$ 來預測 t ,計算出知識圖譜中所有實體的分數後,比較實際的答案在預測分數的排名,最終取平均值
- 透過測試資料中的
- hit@10
- 同樣通過
$(h, \ell)$ 來預測$t$ ,檢視實際的答案是否在預測出分數的前10 名
- 同樣通過
-
Category
- 1-1
- 1-M
- M-1
- M-M
-
在一對一和多對多的表現較好,但一對多和多對多的表現較差,因此後續有一系列的Trans 家族演算法
- TransE
- TransH
- TransR
- TransD
- 怎麼做推薦
- H+R ~=t
知识表示学习Trans系列梳理(论文+代码) - 知乎 (zhihu.com)
- 只適合處理一對一的關係,無法處理一對多,多對一或多對多的關係
- 有两个知识,(skytree, location, tokyo)和(gundam, location, tokyo)。经过训练,“sky tree”实体向量将非常接近“gundam”实体向量。但实际上它们没有这样的相似性。
- TransH的目标是处理一对多/多对一/多对多关系,并且不增加模式的复杂性和训练难度。
- 其基本思想是将关系解释为超平面上的转换操作。每个关系都有两个向量,超平面的范数向量Wr和超平面上的平移向量(dr)。
-
Learning Entity and Relation Embeddings for Knowledge Graph Completion(2015)
-
TransE和TransH模型都假设实体和关系是语义空间中的向量,因此相似的实体在同一实体空间中会非常接近。
然而,每个实体可以有许多方面,不同的关系关注实体的不同方面。例如,
(location, contains, location)的关系是'contains',(person, born, date)的关系是'born'。这两种关系非常不同。为了解决这个问题,我们让TransR在两个不同的空间,即实体空间和多个关系空间(关系特定的实体空间)中建模实体和关系,并在对应的关系空间中进行转换,因此命名为TrandR。
- Knowledge Graph Embedding via Dynamic Mapping Matrix(2015)
- TransR也有其不足之处。
- 首先,head和tail使用相同的转换矩阵将自己投射到超平面上,但是head和tail通常是一个不同的实体,例如,
(Bill Gates, founder, Microsoft)。'Bill Gate'是一个人,'Microsoft'是一个公司,这是两个不同的类别。所以他们应该以不同的方式进行转换。 - 第二,这个投影与实体和关系有关,但投影矩阵仅由关系决定。
- 最后,TransR的参数数大于TransE和TransH。由于其复杂性,TransR/CTransR难以应用于大规模知识图谱。
- 首先,head和tail使用相同的转换矩阵将自己投射到超平面上,但是head和tail通常是一个不同的实体,例如,
- 方式說明
- knowledge-graph-embedding/kge_intro.rst at main · melissakou/knowledge-graph-embedding (github.com)
-
Translating Based
- Unstructured Model (UM)
- Structured Embedding (SE)
- TransE
- TransH
- TransR
- TransD
- RotatE
-
Semantic Based
- RESCAL
- DistMult
-
- thunlp/OpenKE: An Open-Source Package for Knowledge Embedding (KE) (github.com)
- RESCAL
- DistMult, ComplEx, Analogy
- TransE, TransH, TransR, TransD
- SimplE
- RotatE
- Sujit-O/pykg2vec: Python library for knowledge graph embedding and representation learning. (github.com)
- 樣本不平衡,負樣本的少數類別不好抽
- 冷啟動的問題
- 新客戶的冷啟動
- 新產品的冷啟動
- 怎麼持續更新,月>日>即時
- 資料表很大張
- 怎麼樣讓查詢有效率
- Training的時間如何加速
- Online traing 的方法
-
看底層的程式,檢視如何實踐
-
繼續研究 Trans 家族的方法與比較
-
補充數學的知識
-
專案面
- 後續上線至數據中台的是 Model API 還是 Data API
-
論文
-
為什麼是 translations 模型?
他是把 relation 當做翻譯
-
什麼是 energy-based model?
-
抽出關係之後怎麼放入模型?
-
在基金模型中
-
如何挑選負樣本?
-
看不太懂的地方
- 1-1;1-M;M-1;M-M
-
-
论文解读:(TransE)Translating Embeddings for Modeling Multi-relational Data_夏栀的博客-CSDN博客
-
[文献知识图谱可视化[论文解读]知识图谱向量化表示Trans系列EHRD四篇文献_小莫笔记的博客-CSDN博客](https://blog.csdn.net/weixin_42377742/article/details/112655707)
-
FaceNet: A Unified Embedding for Face Recognition and Clustering
-
Knowledge Graph Embedding: A Survey of Approaches and Applications
-
【译】理解 Ranking Loss,Contrastive Loss,Margin Loss,Triplet Loss,Hinge Loss 等易混淆的概念 - 知乎 (zhihu.com)




