從產品經理角度解說知識圖譜
編輯導語:知識圖譜是什么呢?又是怎么構建的?本文作者從知識圖譜的應用、構建過程、數據要求等方面進行了分析,希望能給同是非技術出生的產品經理帶來幫助。
因為工作中參與了一項智能問答相關的項目,所以我需要了解“知識圖譜”的相關知識。作為非技術出身的B端產品經理,初涉AI領域多少有點陌生和不適應。
于是翻閱了很多文獻資料及技術科普,也請教了身邊做AI的技術同學,從中大致了解了“知識圖譜”的一些原理,并整理了以下文章。
希望我的文章能讓同是非技術出生的產品經理,或者其他崗位的同學,能更簡單、快速地了解什么是“知識圖譜”。
一、 知識圖譜的應用
在介紹知識圖譜前,先說下知識圖譜在日常中的應用。
1. 智能搜索
舉個例子,你在使用百度搜索“楊冪”時,搜索結果除了包楊冪的個人信息及相關新聞以外,還給你展示了她的關系圈及合作過的藝人,這些人際關系信息都與“楊冪”這個關鍵字沒有重合,但因為和“楊冪”這個實體有實際關系,所以都在“楊冪”的搜索結果中。
2. 智能問答
在智能問答方面,會通過知識圖譜為你推理出答案。例如,你搜索“楊冪的前夫”,會直接給你返回“劉愷威”的信息。
再舉個例子,在線上醫療行業,當患者想掛號卻不清楚該掛哪個科室時,可以通過診前助手獲取科室信息。診前助手是基于專業醫療知識圖譜,采用多種算法模型與多輪智能交去互理解病人的病情,根據病人的病情精準匹配就診科室。
3. 個性化推薦
在個性化推薦方面,以搜索張國榮的“胭脂扣”為例,會基于《胭脂扣》的電影信息,如演員、導演、上映年份、作品類型等,推薦出更多關聯作品。例如會推薦張國榮的其他電影、推薦同一時期(80-90年代)的香港電影、與張國榮合作過的其他演員的電影等等。
4. 風險防范
以支付寶為例,在支付場景中,用知識圖譜將刷單詐騙及信用卡套現等行為扼殺在搖籃中:通過知識圖譜的圖數據庫,對不同的個體、團體做關聯分析,從人物在指定時間內的行為,例如去過地方的IP地址、曾經使用過的MAC地址(包括手機端、PC端、WIFI等)、社交網絡的關聯度分析,銀行賬號之間是否有歷史交易信息等,判斷用戶是否存在風險行為。
二、知識圖譜定義
在描述定義之前,我們先看看知識圖譜的表現形式——【E-R圖】:
(圖片源自百度搜索)
從上圖我們可以發現,無論E-R圖變換成什么形狀,外觀如何不同,他都是由多個點和多條線互相連接形成的關系型網絡。
點我們稱為【實體】,線我們稱為【關系】,每個實體可能和一個或多個實體存在關系?;诖?,要組成最簡單的關系型網絡,只需三個要素:兩個實體和一個關系。這樣的結構,我們稱之為“三元組”,多個三元組構成知識圖譜。
(三元組)
舉個例子:“小芳和小明是同事,因為工作需要,兩人都在選購筆記本。小明覺得用蘋果筆記本會更有逼格,所以入手了,而小芳覺得Lenovo的筆記本比較便宜,所以選擇了Lenovo。后來小芳發現,一直被同事安利的sketch這個軟件只在蘋果電腦有,它比Axure更智能好用?!睆倪@句話中,我們可以拆解多個三元組:
- 實體:小明、小芳、蘋果筆記本、Lenovo筆記本、Sketch。實體一般是名詞,表示的是人、事、物的抽象化對象。
- 關系:購買、擁有、同事。關系是指兩個實體之間的聯系,這種聯系多種多樣,可以是類屬關系、并列關系等。
知識圖譜的三元組除了可以表達實體間的關系以外,還能表示實體的某種屬性。比如“小明”是實體,他的“性別、出生日期、籍貫”等可劃為屬性。
事物被定義為實體的“屬性”,有兩條基本準則:
- 作為屬性,不能再具有需要描述的性質。屬性必須是不可分的數據項,不能包含其他屬性
- 屬性不能與其他實體具有聯系
同時值得注意的是,根據實際情況,實體有時可以是屬性,屬性也可以是實體。
以下圖為例:“職工”是一個實體,“職工號、姓名、年齡”是職工的屬性,“職稱”如果沒有與“工資、文位津貼、福利”掛鉤,換句話說,沒有需要進一步描述的特性,則根據準則 1 可以作為職工實體的屬性。
但如果不同的職稱有不同的工資、崗位津貼和不同的附加福利,則職稱作為一個實體看待就更恰當。
(圖片源自網絡,如侵權請聯系刪除)
說到這里,大家應該能更好理解【知識圖譜】的定義:知識圖譜是結構化語義知識庫,用于以符號形式描述物理世界中的概念及其相互關系,其基本組成單位是『實體-關系-實體』三元組,以及實體及其相關屬性-值對,實體之間通過關系相互聯結,構成網狀的知識結構。
知識圖譜能能夠打破不同場景下的數據隔離,為搜索、推薦、問答、解釋與決策等應用提供基礎支撐。
三、知識圖譜的構建過程
了解知識圖譜的構建,能幫助我們更好理解知識圖譜的應用原理。
知識圖譜的構建流程,總結有三:
- 信息獲取
- 知識融合
- 知識加工
對每個步驟的介紹及其意義,我整理了如下表格:
非商業轉載請注明出處
下圖是知識圖譜的技術架構,可以幫助大家更好理解知識圖譜的構建流程。其中虛線框內的部分為知識圖譜的構建過程,同時也是知識圖譜更新的過程。
(圖片源自網絡,已作中文化處理,如侵權請聯系刪除)
四、數據要求及數據庫類型
1)要構建知識圖譜,需要怎樣的數據呢?
答案是:結構化的數據。
知識圖譜的原始數據類型一般來說有三類:結構化數據、非結構化數據、半結構化數據。而最終的知識圖譜需要結構化數據作為支撐。
所謂結構化數據,是指高度組織和整齊格式化的數據,它是可以放入電子表格中的數據類型。典型的結構化數據包括:信用卡號碼、日期、財務金額、電話號碼、地址、產品名稱等。
與之相對的非結構化數據是指不容易組織或格式化的數據,它沒有預定義的數據模型,不方便用數據庫二維邏輯表來表現的數據。它可能是文本的或非文本的,也可能是人為的或機器生成的。
簡單來說,非結構化數據就是字段可變的的數據,主要是一些文檔、文件等,比如一些合同文件、文章、PDF文檔等。
而半結構化數據,是非關系模型的,有基本固定結構模式的數據,例如日志文件、XML 文檔、JSON 文檔等。
對于非結構化數據及半結構化數據,需要我們確認從中提取哪些可用信息,并制定信息錄入規則,借助NLP等技術,將有效信息生成為結構化數據,再計入知識圖譜中。
2)圖數據庫及關系型數據庫的差別
知識圖譜是用圖數據庫存儲數據的。所謂圖數據庫,不是指存儲圖片、圖像的數據庫,而是指存儲圖這種數據結構的數據庫。之前我們說的E-R圖,就是圖數據的可視化展示。
不同于傳統的使用二維表格存儲數據的關系型數據庫,圖數據庫在傳統意義上被歸類為NoSQL(Not Only SQL)數據庫的一種,也就是說圖數據庫屬于非關系型數據庫。為了避免內容太過技術性,這里不會對圖數據進行深入的介紹,只簡單說下圖數據庫及關系型數據庫的差別。
關系型數據庫不擅長處理數據之間的關系,而圖數據庫在處理數據之間關系方面靈活且高性能。
傳統的關系型數據庫在處理復雜關系的數據上表現很差,這是因為關系型數據庫是通過外鍵的約束來實現多表之間的關系引用的。查詢實體之間的關系需要JOIN操作,而JOIN操作通常非常耗時。
而圖數據庫的原始設計動機,就是更好地描述實體之間的關系。圖數據庫與關系型數據庫最大的不同就是免索引鄰接,圖數據模型中的每個節點都會維護與它相鄰的節點關系,這就意味著查詢時間與圖的整體規模無關,只與每個節點的鄰點數量有關,這使得圖數據庫在處理大量復雜關系時也能保持良好的性能。
另外,圖的結構決定了其易于擴展的特性。我們不必在模型設計之初就把所有的細節都考慮到,因為在后續增加新的節點、新的關系、新的屬性甚至新的標簽都很容易,也不會破壞已有的查詢和應用功能。
而關系型數據庫,如果一開始就設計好數據字段并跑了一段時間數據,想再增加字段就會非常麻煩,需要開發人員或產品經理在開發初期就設想好未來可能會新增的字段,并提前加入到數據表中。
參考資料:
neo4j-圖數據庫
E-R圖:實體與屬性的劃分原則
通俗易懂解釋知識圖譜(Knowledge Graph)
圖數據庫是什么?
作者:楊桃,游戲行業B端產品經理,愛用文字記錄觀察及想法。
本文由 @楊桃 原創發布于人人都是產品經理,未經許可,禁止轉載。
題圖來自 Unsplash,基于CC0協議。
根據實際情況,實體有時可以是屬性,屬性也可以是實體。
聽說過知識圖譜,但是看完還是不知道怎么制作出清晰的知識圖譜
參與過一個失敗的專業知識圖譜項目,感覺這個東西現階段比較玄