蔡鑫,阮宜龍,石屹嶸
(1.中國電信股份有限公司上海研究院,上海200122;2.中國電信股份有限公司安徽分公司,安徽 合肥230001)
基于圖數(shù)據(jù)庫的IPTV內(nèi)容知識庫設計和實現(xiàn)
蔡鑫1,阮宜龍2,石屹嶸1
(1.中國電信股份有限公司上海研究院,上海200122;2.中國電信股份有限公司安徽分公司,安徽 合肥230001)
電信運營商IPTV業(yè)務平臺擁有大量的節(jié)目內(nèi)容信息,可以建立IPTV內(nèi)容知識庫。傳統(tǒng)方式下使用關(guān)系數(shù)據(jù)庫對知識進行格式轉(zhuǎn)換和存儲,在模型結(jié)構(gòu)復雜性、查詢直觀性以及效率方面存在局限。利用圖數(shù)據(jù)庫技術(shù),可以基于全新的圖模型構(gòu)建IPTV內(nèi)容知識庫。通過研究比較,提出了基于圖數(shù)據(jù)庫的IPTV內(nèi)容知識庫存儲和查詢的思路和實現(xiàn)方法,并利用某電信公司實際數(shù)據(jù)進行了場景驗證。
圖數(shù)據(jù)庫;IPTV;知識庫
IPTV業(yè)務是運營商轉(zhuǎn)型的重點業(yè)務,在未來1~2年將迎來產(chǎn)品生命周期的快速大規(guī)模發(fā)展階段。而內(nèi)容是IPTV業(yè)務的靈魂,運營商IPTV業(yè)務平臺中已經(jīng)沉淀并將繼續(xù)積累更多的內(nèi)容。IPTV平臺已經(jīng)含有一些節(jié)目內(nèi)容標簽元數(shù)據(jù)。利用互聯(lián)網(wǎng)爬蟲技術(shù),可以在互聯(lián)網(wǎng)上爬取更多的內(nèi)容屬性,與平臺本身信息進行融合,形成更豐富的IPTV內(nèi)容知識庫。該知識庫能夠為IPTV產(chǎn)品包設計者以及IPTV最終用戶提供完備的節(jié)目內(nèi)容信息查詢服務,提升其決策行為的有效性。IPTV內(nèi)容知識庫,需要具備支持靈活的元數(shù)據(jù)擴展性,滿足海量結(jié)構(gòu)化數(shù)據(jù)的存儲和復雜關(guān)聯(lián)查詢響應時間的要求。本文嘗試采用與傳統(tǒng)關(guān)系型數(shù)據(jù)庫不同的全新的圖數(shù)據(jù)庫技術(shù),對IPTV內(nèi)容知識庫進行創(chuàng)新設計和實現(xiàn),并驗證其可行性。
圖數(shù)據(jù)庫是一種特殊的NoSQL數(shù)據(jù)庫,是將數(shù)據(jù)存儲在圖(graph)模型中。圖模型可看作是從key-value模型發(fā)展出來的一個分支,不同的是,它的數(shù)據(jù)之間有著廣泛的關(guān)聯(lián),形成一種圖結(jié)構(gòu),并且支持一些圖結(jié)構(gòu)的算法,適合社交網(wǎng)絡、推薦系統(tǒng)等[1]。
2.1 圖模型的存儲格式
語義網(wǎng)(semantic Web)是知識管理領域的重要分支,旨在建立一個數(shù)據(jù)標準,使全球的Web數(shù)據(jù)以及數(shù)據(jù)與數(shù)據(jù)間的語義關(guān)聯(lián)關(guān)系能夠被計算機所理解,由W3C管理和維護?,F(xiàn)已發(fā)布了數(shù)個語義萬維網(wǎng)格式標準,其中重要的一項是基本資源描述框架 (resource description framework,RDF)。
RDF為描述圖像、文檔和二者之間的相互關(guān)系定義了一個簡單數(shù)據(jù)模型[2]。RDF的基本單元是由〈主語(subject),謂語(predicate),賓語(object)〉構(gòu)成的三元組(triple)。主謂賓的取值稱為資源(resource)。一組RDF數(shù)據(jù)可構(gòu)成一個RDF有向圖,其中每一個三元組對應為圖結(jié)構(gòu)上的一個“頂點—邊—頂點”的子圖,陳述了由謂語表示的在主語和賓語所指的事物之間的關(guān)系。
基于RDF的基本思想,開源圖數(shù)據(jù)產(chǎn)品Neo4j采用一種進化的屬性圖(property graph)模型實現(xiàn)圖模型的存儲。屬性圖建模使用3種構(gòu)造單元:節(jié)點 (node)、關(guān)系(relationship)、屬性(property),節(jié)點即圖的頂點,關(guān)系即圖的邊(具有方向和類型),屬性可以在節(jié)點和關(guān)系上面任意多地進行定義。屬性圖模型如圖1所示。
圖1 屬性圖模型
對比屬性圖和RDF,可以看出:
·屬性圖的節(jié)點融合了RDF的主語和賓語;
·屬性圖的關(guān)系對應RDF的謂語;
·屬性圖的節(jié)點和關(guān)系可擴展任意多的屬性,具備NoSQL弱模型約束特征。
2.2 圖數(shù)據(jù)庫的檢索方法
圖數(shù)據(jù)庫提供強大的圖搜索能力。例如Neo4j通過專門為操作圖數(shù)據(jù)庫設計的Cypher語言高效地操作圖數(shù)據(jù)庫。圖數(shù)據(jù)庫的檢索方法包括遍歷檢索和索引檢索。
(1)圖的遍歷檢索
通過遍歷算法完成,根據(jù)算法從開始節(jié)點到與之相連的節(jié)點開始查詢。圖的遍歷算法包括以下兩種。
·深度優(yōu)先(depth first)搜索:就是找到第一個節(jié)點,遞歸地一直往下找,直到找不到合適的節(jié)點后,才進行回溯。
·廣度優(yōu)先(breadth first)搜索:是最簡便的圖搜索算法之一,這一算法也是很多重要的圖算法的原型,屬于一種盲目搜尋法,它不考慮結(jié)果的可能位置,徹底地搜索整張圖,直到找到結(jié)果為止。
(2)圖的索引檢索
通過建立索引,可以更快、更高效地查找某個節(jié)點或關(guān)系。索引可以分為兩類,基于節(jié)點的索引和基于關(guān)系的索引[3]。
3.1 傳統(tǒng)關(guān)系模型設計方式
IPTV平臺與互聯(lián)網(wǎng)爬蟲融合后的內(nèi)容(content)信息包括:title(內(nèi)容標題),year(年份),label(電影/電視劇標簽),star(主演),area(地區(qū)),director(導演),type(節(jié)目類型),writer(編?。?/p>
一個典型的內(nèi)容數(shù)據(jù)樣例見表1。
表1 IPTV內(nèi)容數(shù)據(jù)格式
每行代表一個節(jié)目內(nèi)容,其中互聯(lián)網(wǎng)爬取的屬性帶有非結(jié)構(gòu)化信息特征,例如:star、director、type、writer等。
在使用傳統(tǒng)關(guān)系建模時,需要對這些非結(jié)構(gòu)化信息內(nèi)可以進一步原子化的數(shù)據(jù)元素進行解析和概念抽象,形成更具一般性的數(shù)據(jù)實體。本例中star、director、writer中“/”分割的數(shù)據(jù),可以抽象為人(person)實體。
接下來內(nèi)容與人的多對多關(guān)系,需要建立內(nèi)容與人關(guān)聯(lián)關(guān)系(content person relation)實體進行抽象描述??梢愿鶕?jù)人對于內(nèi)容的工種(type of work)差別,建立不同類型的聯(lián)系,即:飾演(act)、導演(direct)、編?。╳rite),這里還要考慮其他工種(美工、制片人等)信息的可擴展性,需要建立單獨的工種實體。
另外,對于節(jié)目類型也需要抽象出專門的實體表達,而內(nèi)容與節(jié)目類型之間,也是多對多的關(guān)聯(lián)關(guān)系,需要抽象出一個節(jié)目內(nèi)容與類型關(guān)聯(lián)關(guān)系 (content type relation)實體進行表達。
整個關(guān)系模型的E-R如圖2所示。
圖2 IPTV內(nèi)容知識庫關(guān)系模型
3.2 圖模型設計方式
關(guān)系模型設計中,會使用一個實體(entity)(例如:節(jié)目內(nèi)容)來對一類事物進行抽象,模型描述的是經(jīng)過抽象的實體以及實體和實體之間的關(guān)系,而并非具體的事物實例。
圖模型采用一種更為自然的方式來描述事物以及事物和事物之間的關(guān)系。在圖模型中,屬性圖的構(gòu)成要素——節(jié)點,則恰恰是用來描述具體的事物實例(例如:電影《集結(jié)號》),而對于同一類事物的抽象則并非必須。盡管在圖數(shù)據(jù)庫中,也定義了用以表示一類節(jié)點集的概念——標簽,但標簽并不會像關(guān)系模型中的實體那樣,對節(jié)點的結(jié)構(gòu)模式(屬性構(gòu)成)進行強制約束。被標為同一標簽的各節(jié)點所包含的數(shù)據(jù)屬性有可能不同。
本例中的人可能會有不同的職責分工,并由此通過不同的關(guān)系和其他節(jié)點關(guān)聯(lián)。例如一個人既可能是演員,可能是導演,也可能是演員兼導演。
在傳統(tǒng)關(guān)系模型中,可能需要為建立單獨的工種實體,并據(jù)此在內(nèi)容與人關(guān)聯(lián)關(guān)系實體中區(qū)分各類不同的職責分工。而在圖模型中,由于關(guān)系可以被無限靈活地定義,因此可以通過定義不同的關(guān)系對內(nèi)容和人進行連接,表達所需要的不同業(yè)務概念。本例中一個局部的屬性圖模型如圖3所示。
圖3 IPTV內(nèi)容知識庫圖模型局部示例
3.3 圖模型的比較優(yōu)勢
從比較可以看出,傳統(tǒng)關(guān)系模型在描述實體之間的關(guān)系時,需要創(chuàng)建一系列不同的關(guān)聯(lián)表,例如本例中的內(nèi)容與人關(guān)聯(lián)關(guān)系和節(jié)目內(nèi)容與類型關(guān)聯(lián)關(guān)系,以記錄這些數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系,而且這些關(guān)聯(lián)表常常不包含除用于連接的外鍵之外的其他任何有意義的數(shù)據(jù),它只是關(guān)系模型為滿足三范式要求下的策略性的實現(xiàn)方式。
這些關(guān)系模型中存在的大量關(guān)聯(lián)表,對于文件樹這樣的遞歸結(jié)構(gòu)和社交圖譜這樣的網(wǎng)絡結(jié)構(gòu)等復雜查詢帶來嚴重的性能問題[4]。圖形關(guān)系上的每次操作都會導致關(guān)系型數(shù)據(jù)庫的一次代價昂貴的聯(lián)接(join)操作,這種操作以兩個表的主鍵集合間的集合操作來實現(xiàn),性能影響會隨著表中的元組數(shù)量增加和查詢的連接深度增加而愈加顯現(xiàn)。
與之相對的,圖模型原生支持關(guān)系,且圖模型中的關(guān)系可以進行任意地定義,對所有不同的節(jié)點之間不同的連接含義有無限的包容性,甚至任何兩個關(guān)系都可以不一樣。因而,不再需要像關(guān)系模型那樣,為了連接不同類型實體而需要定義不同種類的關(guān)聯(lián),關(guān)系的維護變得異常簡單。
圖模型的設計原理,決定了圖遍歷執(zhí)行的速度是一個常數(shù),跟圖的規(guī)模大小無關(guān)。不像在關(guān)系數(shù)據(jù)庫的聯(lián)接操作那樣,不涉及降低性能的集合操作。對于大規(guī)模深度遍歷而言,極大地提高了性能。
4.1 IPTV內(nèi)容知識庫圖模型構(gòu)建
實際驗證中,以某電信公司IPTV節(jié)目內(nèi)容作為測試數(shù)據(jù)樣本,以本文提及的開源圖數(shù)據(jù)庫產(chǎn)品Neo4j作為測試系統(tǒng)平臺,開展相關(guān)測試。
由于圖模型的節(jié)點對應的就是具體事物實例,因此大規(guī)模圖模型的構(gòu)建過程,就是實例數(shù)據(jù)的導入過程。主要步驟如下。
(1)CSV文件準備
對表1格式的源數(shù)據(jù)中star、director、type、writer等非結(jié)構(gòu)化字段進行解析,轉(zhuǎn)換為多個分別描述節(jié)點和關(guān)系的CSV文本文件,包括:節(jié)點數(shù)據(jù)集(content.csv、person.csv、type.csv)、關(guān)系數(shù)據(jù)集(content_actor.csv、content_director. csv、content_writer.csv、content_type.csv)。
(2)節(jié)點數(shù)據(jù)導入
以內(nèi)容標簽的節(jié)點為例,需要執(zhí)行以下的語句完成數(shù)據(jù)導入。
(3)關(guān)系數(shù)據(jù)導入
以內(nèi)容和演員(actor)之間的關(guān)系為例,需要執(zhí)行以下的語句完成數(shù)據(jù)導入。
4.2 IPTV內(nèi)容知識庫圖檢索實際驗證
場景驗證將以電影《集結(jié)號》為起點,展開與之相關(guān)聯(lián)的信息的查詢。實驗將逐步增加連接深度,測試對檢索性能的影響。
第1個檢索將返回《集結(jié)號》的所有演職人員(演員、導演、編?。?。語句如下。
第2個檢索深入一層,將返回《集結(jié)號》的所有演職人員參與的所有其他電影。
第3個檢索再深入一層,將返回《集結(jié)號》的所有演職人員參與的所有其他電影的所有演職人員。
按照前面的邏輯繼續(xù),第4個檢索再深入一層。
第5個檢索更加深入一層。
圖檢索性能驗證見表2。
表2 圖檢索性能驗證
由實際驗證結(jié)果可知,體現(xiàn)圖檢索性能的執(zhí)行速度(訪問節(jié)點規(guī)模/檢索執(zhí)行時間),即單位時間訪問的節(jié)點數(shù),并未因為檢索連接深度以及所訪問節(jié)點數(shù)量的增加而出現(xiàn)顯著降低。與之相反,總體趨勢呈現(xiàn)不斷提升并逐漸收斂于一個穩(wěn)定值,符合(當圖模型規(guī)模足夠大時)圖遍歷執(zhí)行速度是一個常數(shù)的預期。
隨著知識管理領域相關(guān)理論研究的日益深入,基于圖模型的圖數(shù)據(jù)庫技術(shù)逐漸從實驗室走向生產(chǎn)應用。得益于設計理念上對于連接的原生支持能力,使得圖數(shù)據(jù)庫技術(shù)在欺詐檢測、基于圖的搜索、主數(shù)據(jù)管理、推薦引擎、社交網(wǎng)絡等具有復雜關(guān)系特征的場景中大有用武之地。但也應該看到,當前圖數(shù)據(jù)庫產(chǎn)品市場仍處于早期階段,有幾款相對成熟的商業(yè)型產(chǎn)品,如infinite graph、trinity等,但未得到大規(guī)模應用。而Neo4j作為當前比較成熟且較高性能的開源圖形數(shù)據(jù)庫,尚不支持分布式存儲,難以應對大數(shù)據(jù)環(huán)境下更加海量的圖模型存儲和檢索的需求。相信在未來的幾年,圖數(shù)據(jù)庫的產(chǎn)品成熟度將會進入快速通道,會成為在數(shù)據(jù)平臺方面的重要選項,有必要持續(xù)跟蹤和關(guān)注。
[1]項靈輝.基于圖數(shù)據(jù)庫的海量RDF數(shù)據(jù)分布式存儲 [D].武漢:武漢科技大學,2013. XIANG L H.Mass RDF data distributed storage based on graph database[D].Wuhan:Wuhan Science and Technology University, 2013.
[2]信息組織 [EB/OL].[2016-09-10].http://www.docin.com/p-440989969.html. Information organization [EB/OL].[2016-09-10].http://www. docin.com/p-440989969.html.
[3]康杰華,羅章璇.基于圖形數(shù)據(jù)庫Neo4j的RDF數(shù)據(jù)存儲研究[J].信息技術(shù),2015(6):115-117. KANG J H,LUO Z X.RDF data storage research based on graph database[J].Information Technology,2015(6):115-117.
[4]圖形數(shù)據(jù)庫、NoSQL和Neo4j[EB/OL].[2016-09-10].http:// www.infoq.com/cn/articles/graph-nosql-neo4j. Graph database,NoSQL&Neo4j[EB/OL].[2016-09-10].http:// www.infoq.com/cn/articles/graph-nosql-neo4j.
蔡鑫(1975-),男,中國電信股份有限公司上海研究院高級工程師,主要研究方向為數(shù)據(jù)規(guī)劃、信息管理、數(shù)據(jù)標準。
阮宜龍(1977-),男,中國電信股份有限公司安徽分公司高級工程師,主要研究方向為數(shù)據(jù)規(guī)劃、大數(shù)據(jù)平臺運營管理。
石屹嶸(1970-),男,中國電信股份有限公司企業(yè)信息化驗證實驗室主任、高級工程師;中國電信股份有限公司上海研究院大數(shù)據(jù)專業(yè)資深專家,負責完成了中國電信股份有限公司集團和省公司幾十項科研項目,包括企業(yè)信息化架構(gòu)設計和驗證、信息系統(tǒng)性能評測和優(yōu)化、云計算和大數(shù)據(jù)關(guān)鍵技術(shù)驗證等;中國電信股份有限公司集團級優(yōu)秀人才。目前的研究方向主要為大數(shù)據(jù)平臺技術(shù)、大數(shù)據(jù)分析和模型設計、信息系統(tǒng)架構(gòu)設計、企業(yè)架構(gòu)設計、安全架構(gòu)設計等。獲得國家多項專利授權(quán),發(fā)表論文10多篇,并獲得CISSP和CISA等多項國際認證。
Design and implement of IPTV content repository based on graph database
CAI Xin1,RUAN Yilong2,SHI Yirong1
1.Shanghai Research Institute of China Telecom Co.,Ltd.,Shanghai 200122,China 2.Anhui Brach of China Telecom Co.,Ltd.,Hefei 230001,China
Plenty of program content information in the telecom operators IPTV platform can be used to build knowledge base.The traditional way of using relational database to format conversion and storage of knowledge has limitation in the model structure complexity and query visualization and efficiency.Graph database can be used to construct IPTV content knowledge based on the basis of a new graph model.Through the research and comparison, the idea and method of storing and querying the IPTV content repository based on graph database were proposed, and the actual data of a telecom company was used for the scene verification.
graph database,IPTV,knowledge base
TP392
A
10.11959/j.issn.1000-0801.2016319
2016-11-10;
2016-12-14