社交軟體上“你可能認識的人”到底是怎麼找到你的?

華為雲開發者社群發表於2021-07-05
摘要:你老死不相往來的EX,早已記不起相貌的初中同學、前同事、甚至你最不想見到的人——你的BOSS,這些人是怎麼出現在你社交軟體推薦使用者的名單裡的呢?這其中關鍵技術便是:知識庫的連結預測,又稱為知識圖譜補全。

社交軟體上“你可能認識的人”到底是怎麼找到你的?

眾裡尋他千百度,驀然回首,那人卻在推薦名單處。

社交軟體最牛的地方之一,一定是使用者關係的深度挖掘。明明你已經拉黑了某些人的電話、微信、以及所有社交賬號,但TA還是毫不例外地出現在頁面上“你可能認識的人”裡。這些人包括你老死不相往來的EX,早已記不起相貌的初中同學、前同事、甚至你最不想見到的人——你的BOSS。

社交軟體上“你可能認識的人”到底是怎麼找到你的?

▲抖音-發現朋友

那麼,這些人是怎麼出現在你的名單裡的呢?

這其中關鍵技術便是:知識庫的連結預測,又稱為知識圖譜補全。

一圖理解什麼是知識圖譜?

知識圖譜是一種將知識寫成結構化三元組的多關係圖,包含了實體、概念和關係。

實體指的是現實世界中的事物比如人名、地名、機構等。概念指的是具有同種特性的實體構成的集合,如下圖中的“運動員”、“金球獎”等。關係則用來表達不同實體之間的某種聯絡。

知識圖譜用實體和關係組成圖譜,為真實世界的各個場景直觀建模。構建知識圖譜的過程本質是建立認知、理解世界的過程。

社交軟體上“你可能認識的人”到底是怎麼找到你的?

如何進行知識圖譜補全

以小明為例,小明就職於位於五道口的新浪,系統可以推測出小明在北京工作。並將同樣在北京新浪工作的小王推薦給了他。在下圖中,藍色的箭頭表示表示已存在的關係,紅色箭頭為知識圖譜補全後的關係。

社交軟體上“你可能認識的人”到底是怎麼找到你的?

知識圖譜與知識表示學習的關係

知識圖譜是由實體和關係組成,通常採用三元組的形式表示——head(頭實體),relation(實體的關係),tail(尾實體),簡寫為(h,r,t)。知識表示學習任務就是學習h,r,t的分散式表示(也被叫做知識圖譜的嵌入表示(embedding))。可以這麼說,有了知識圖譜的Embedding,AI式的知識圖譜應用才成為可能。

如何理解嵌入表示Embedding?

簡單來說,embedding是對一個物件(詞、字、句子、文章…)在多個維度上的描述,相當於通過資料建模的方法來描述一個物件。

舉個例子,我們經常用到的Photoshop裡關於顏色的RGB表示法就屬於一種非典型的embedding。在這裡顏色被拆成三個特徵緯度,R(紅色強度,取值範圍0-255),G(綠色強度,取值範圍0-255),B(藍色強度,取值範圍0-255)。RGB(0,0,0)就是黑色。RGB(41,36,33)就是象牙黑。通過這樣的方法,我們可以通過數字來描述顏色。

社交軟體上“你可能認識的人”到底是怎麼找到你的?

知識表示學習都有哪些方法

知識表示學習的關鍵是設計合理的得分函式,在給定事實三元組為真的情況下我們希望最大化得分函式。它從實現形式上可分為以下兩類:

基於結構的方法

該類模型的基本思想是從三元組的結構出發學習知識圖譜的實體和聯絡的表示,其中最為經典的演算法是TransE模型。該方法的基本想法是頭向量表示h與關係向量表示r之和與尾向量表示t越接近越好,即h+r≈t。這裡的“接近”可以使用L1或L2範數進行衡量。原理圖如下:

社交軟體上“你可能認識的人”到底是怎麼找到你的?

該類知識表示學習模型還有:TransH, TransR, TransD,TransA等。

基於語義的方法

這類模型是從文字語義角度出發學習KG的實體和關係的表示。這類表示方法主要有LFM, DistMult, ComplEx, ANALOGY, ConvE等。

知識表示學習的應用

由於基於表示學習,可以將知識圖譜的實體和關係進行向量化表示,方便後續下游任務的計算,典型應用有以下幾種:

1)相似度計算:利用實體的分散式表示,我們可以快速計算實體間的語義相似度,這對於自然語言處理和資訊檢索的很多工具有重要意義。

如何進行相似度計算呢?舉個例子。

假設"李白"這個詞的embedding一共是5維,其值為[0.3, 0.5, 0.7, 0.03, 0.02],其中每個維度代表和某個事物的相關性,這五個數值分別代表[詩人,作家, 文學家,自由職業者,俠士]的含義。

而"王維"=[0.3, 0.55, 0.7, 0.03, 0.02],"牛頓"=[0.01, 0.02, 0.06, 0.4, 0.01],我們可以用餘弦距離(幾何中,夾角餘弦可用來衡量兩個向量方向的差異;機器學習中,借用這一概念來衡量樣本向量之間的差異。)來計算這幾個詞的距離,顯而易見李白和王維的距離更近,和牛頓的距離更遠。 由此可以判斷“李白” 和“王維”更為相似。

2)知識圖譜補全。構建大規模知識圖譜,需要不斷補充實體間的關係。利用知識表示學習模型,可以預測2個實體的關係,這一般稱為知識庫的連結預測,又稱為知識圖譜補全。上文中“五道口小明”的例子可以很好的解釋。

3)其他應用。知識表示學習已被廣泛用於關係抽取、自動問答、實體連結等任務,展現出巨大的應用潛力。

自動問答是與知識表示學習深度結合的一大應用。對於智慧問答產品來說,後臺設計時,一般分為3層,輸入層、表示層、輸出層。輸入層簡而言之就是問題庫,這裡集合了所有使用者可能會問到的問題。再經過表示層的知識抽取,最終返回結果。

社交軟體上“你可能認識的人”到底是怎麼找到你的?

典型的智慧問答產品有蘋果Siri、微軟小冰、百度、阿里小蜜等。這些問答產品的一大特色是,可以使搜尋結果更精準,而不是返回一堆相似的頁面讓你自己去篩選,達到“所答即所問”。比如,搜尋“王思聰的身價多少”,返回來的結果就是具體的數字。

社交軟體上“你可能認識的人”到底是怎麼找到你的?

總結

簡而言之,社交產品基於知識圖譜知識補全技術,通過實體和關係的表示對缺失三元組進行預測,在已知頭實體以及頭實體間的關係,預測其尾實體。也就是說,它們是根據使用者畫像來進行朋友推薦的,如果你不想那些“老熟人”出現在你的推薦名單裡,最好的方法是,關掉社交產品上的地理定位、儘可能少地透露個人資訊。

參考資料

1、劉知遠,孫茂松,林衍凱,謝若冰《知識表示學習研究進展》

 

點選關注,第一時間瞭解華為雲新鮮技術~

相關文章