董林林 楊傳龍 黃學(xué)波
摘要:在大數(shù)據(jù)、云計(jì)算、數(shù)據(jù)挖掘、人工智能等現(xiàn)代網(wǎng)絡(luò)技術(shù)的飛速發(fā)展的科技背景之下,公共文化服務(wù)平臺的建設(shè)缺乏互聯(lián)網(wǎng)新技術(shù)的應(yīng)用,網(wǎng)站服務(wù)不夠便捷,不能更好的把握用戶需求,不能為公眾提供更優(yōu)質(zhì)的的公共文化服務(wù)。尤其是,當(dāng)前公共文化服務(wù)平臺的建設(shè)缺乏對個(gè)性化服務(wù)的集成,不能有效的滿足用戶的個(gè)性化需求。針對此問題,該文提出在公共文化服務(wù)集成平臺中集成協(xié)同過濾技術(shù)為用戶提供個(gè)性化活動(dòng)推薦,同時(shí)基于知識本體,利用本體在語義查詢擴(kuò)展方面的優(yōu)勢為用戶提供當(dāng)前瀏覽活動(dòng)相關(guān)的文化資料推薦。
關(guān)鍵詞:公共文化服務(wù);個(gè)性化推薦;協(xié)同過濾;本體
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)04-0247-03
Research And Implementation Of Personalized Recommendation System Based on Ontology
DONG Lin-lin, YANG Chuan-long, HUANG Xue-bo
(School of Computer Engineering, Qingdao Technological University, Qingdao 266033, China)
Abstract:In big data, cloud computing, data mining, artificial intelligence and modern network technology the rapid development of science and technology under the background of application, the construction of public cultural service platform for the lack of new technology of the Internet, web service is not convenient, can better grasp of user needs, can provide better public cultural services for the public. In particular, the current construction of public cultural service platform lacks the integration of personalized services, and can not effectively meet the user's personalized needs. Therefore, to solve this problem, this paper proposes integrated collaborative filtering recommendation to provide users with personalized activities in public cultural service integration platform Based on knowledge, ontology, semantic query expansion in the advantage of providing the information related to the current browsing activities for users to recommend the use of ontology.
Key words: Public cultural services; Personalized recommendation; Collaborative filtering; Ontology
1 概述
現(xiàn)如今,為滿足人們的個(gè)性化需求,個(gè)性化推薦技術(shù)已經(jīng)廣泛的應(yīng)用在電子商務(wù)、社交網(wǎng)絡(luò)、各種視頻音樂網(wǎng)站等領(lǐng)域,例如 Amazon,淘寶,豆瓣等,都在不同程度上采用了個(gè)性化推薦系統(tǒng)[1]。由于個(gè)性化推薦技術(shù)能夠很好的滿足用戶個(gè)性化需求,能夠發(fā)掘用戶潛在興趣,因此,將個(gè)性化推薦服務(wù)集成到公共文化服務(wù)平臺顯得尤為重要。
2 個(gè)性化推薦系統(tǒng)總體架構(gòu)
綜合分析公共文化服務(wù)集成平臺的用戶需求以及實(shí)際應(yīng)用場景,本文提出個(gè)性化推薦系統(tǒng)包含包含兩部分:一是針對文化活動(dòng)的推薦,二是針對當(dāng)前用戶瀏覽的文化活動(dòng)內(nèi)容而進(jìn)行的文化資料的推薦。
對于文化活動(dòng)的推薦著重突出個(gè)性化,強(qiáng)調(diào)用戶興趣偏好。因而需要利用用戶的歷史瀏覽行為數(shù)據(jù),然后利用協(xié)同過濾推薦技術(shù)給用戶進(jìn)行文化活動(dòng)推薦;對于文化資料的推薦著重突出文化活動(dòng)主題相關(guān)性,期望做到的是推薦與當(dāng)前活動(dòng)主題具有語義相關(guān)的文化資料。
綜合分析,本文提出的個(gè)性化推薦系統(tǒng)總體框架設(shè)計(jì)如圖1所示。
其中,個(gè)性化活動(dòng)的推薦采用協(xié)同過濾技術(shù)實(shí)現(xiàn),首先通過收集用戶的行為數(shù)據(jù),比如用戶的活動(dòng)點(diǎn)贊數(shù)據(jù)、收藏活動(dòng)的數(shù)據(jù)、參加活動(dòng)記錄數(shù)據(jù)等,形成用戶的偏好模型,也就是用戶-活動(dòng)評分矩陣,然后應(yīng)用協(xié)同過濾算法給用戶進(jìn)行活動(dòng)推薦。在用戶瀏覽文化活動(dòng)詳情時(shí),系統(tǒng)會(huì)根據(jù)用戶當(dāng)前瀏覽的活動(dòng)主題利用本體進(jìn)行語義擴(kuò)展,查詢檢索出與當(dāng)前瀏覽活動(dòng)相關(guān)的文化資料推薦給用戶。
3 基于協(xié)同過濾的文化活動(dòng)推薦
協(xié)同過濾推薦主要是利用群體的觀點(diǎn)為當(dāng)前活動(dòng)用戶來產(chǎn)生推薦項(xiàng)目,借助過去的用戶行為記錄,計(jì)算各個(gè)用戶之間興趣偏好的相似度,找出與當(dāng)前用戶興趣偏好接近的鄰居用戶,并通過這些鄰居用戶組成的相似用戶組的建議來產(chǎn)生對當(dāng)前用戶的推薦[2]。在文化活動(dòng)的推薦中,協(xié)同推薦可以為當(dāng)前用戶找到有著相似興趣背景或者相似文化需求的用戶群體,通過相似用戶群體推薦得到相關(guān)文化活動(dòng)。
基于協(xié)同過濾的個(gè)性化推薦系統(tǒng)一般由三個(gè)模塊組成:用戶建模模塊、推薦對象建模模塊、推薦算法模塊[3]。其中,用戶建模模塊也就是收集用戶偏好信息的過程,數(shù)據(jù)收集是個(gè)性化推薦系統(tǒng)的基礎(chǔ)[4]。
在本文的設(shè)計(jì)中,用戶偏好信息的收集主要來自于用戶的行為數(shù)據(jù),比如對文化活動(dòng)的點(diǎn)贊、收藏,參加某類文化活動(dòng)等。然后根據(jù)提前設(shè)置好的打分機(jī)制,例如用戶收藏了一個(gè)活動(dòng),則設(shè)置相應(yīng)的評分為二等,形成用戶-項(xiàng)目評分矩陣,也就是用戶偏好模型。
其中,具體推薦過程步驟如下:
1) 用戶進(jìn)入系統(tǒng)平臺中,系統(tǒng)平臺會(huì)收集用戶的行為歷史數(shù)據(jù),比如參加文化活動(dòng)記錄、活動(dòng)點(diǎn)贊記錄、活動(dòng)收藏記錄,這些數(shù)據(jù)記錄表明了用戶的喜好;
2) 系統(tǒng)根據(jù)預(yù)先設(shè)置的評分機(jī)制,生成用戶-活動(dòng)評分矩陣;
3) 開始推薦算法流程,利用公式計(jì)算用戶的相似度,找出相似度最高的N個(gè)用戶最為最近鄰居集,利用最近鄰居集進(jìn)行評分預(yù)測,按預(yù)測評分排序,得到推薦結(jié)果,將結(jié)果呈現(xiàn)給用戶。
4 基于本體的文化資料推薦
文化資料主要是針對用戶當(dāng)前瀏覽的文化活動(dòng)來進(jìn)行的文化資料的推薦,該模塊涉及到自然語言處理(NLP)、本體語義查詢擴(kuò)展以及信息檢索等相關(guān)技術(shù)?;诒倔w的文化資料推薦分為三大部分:活動(dòng)主題關(guān)鍵詞獲取、基于本體的查詢擴(kuò)展、資源檢索模塊,其推薦流程如圖2所示:
圖2 基于本體的文化資料推薦流程圖
4.1 活動(dòng)主題關(guān)鍵詞獲取
在基于本體的文化資料推薦中,首先需要利用自然語言處理技術(shù)進(jìn)行分詞處理。經(jīng)過分詞處理得到了一個(gè)詞組,但是并不是每一個(gè)詞都是關(guān)鍵詞,其中往往包含很多語氣詞、助詞等,而該類詞并不具有語義信息,因此并不能作為關(guān)鍵詞。同時(shí),在分詞之后下一步需要對關(guān)鍵詞進(jìn)行擴(kuò)展,如果對所有的詞都進(jìn)行關(guān)鍵詞擴(kuò)展的話,必然會(huì)影響效率,提升處理的復(fù)雜度,尤其是如果活動(dòng)標(biāo)題過長,進(jìn)行完全關(guān)鍵詞擴(kuò)展的話影響時(shí)間過長,影響用戶體驗(yàn)。
因此,需要以某種方式進(jìn)行關(guān)鍵詞過濾。一般來說,通常是按照詞性來進(jìn)行處理,詞性的分類有很多,有很多詞并沒有實(shí)際意義,比如“嘆詞”、“語氣詞”等,這部分詞不包含語義信息,因此本文采用根據(jù)詞性對關(guān)鍵詞進(jìn)行篩選的方法,在分詞的結(jié)果中,我們會(huì)對詞性進(jìn)行標(biāo)注,根據(jù)獲取到的詞性對所有關(guān)鍵詞進(jìn)行過濾,主要保留名詞、動(dòng)詞、形容詞,然后得到一個(gè)詞項(xiàng)集合。分析發(fā)現(xiàn),其中仍然會(huì)包含有一些無意義的詞項(xiàng),因此本文在上述處理的基礎(chǔ)上,再采用停用詞庫過濾的方法進(jìn)行二次關(guān)鍵詞過濾,該停用詞庫,可以由用戶自己維護(hù)。
4.2 基于本體的查詢擴(kuò)展
目前在信息檢索系統(tǒng)中,大部分都是基于關(guān)鍵詞進(jìn)行查詢的,首先獲取用戶需要查詢的關(guān)鍵詞,然后自動(dòng)進(jìn)行查詢擴(kuò)展,對擴(kuò)展后的結(jié)果進(jìn)行檢索,擴(kuò)展方式通常采用同義詞擴(kuò)展法,也就是利用同義詞詞典、近義詞詞典進(jìn)行擴(kuò)展。
雖然基于關(guān)鍵詞的查詢擴(kuò)展雖然在很大程度提高了資源檢索的效果,但因?yàn)閭鹘y(tǒng)的查詢擴(kuò)展是在符號匹配的層次上進(jìn)行擴(kuò)展,它是以查詢詞為中心,機(jī)械地進(jìn)行字符串?dāng)U展,從而忽略了查詢詞語義信息以及查詢詞與其它概念之間的語義關(guān)聯(lián),因此用戶查詢意圖得不到充分表達(dá)。
由于本體能全面的、精確地描述和定義概念及概念之間的關(guān)系,具有較強(qiáng)的語義表達(dá)能力,能較好的理解用戶的語義意圖[5]。因此,為解決上述問題,在獲取活動(dòng)的主題關(guān)鍵詞組之后,下一步需要利用本體處理相關(guān)技術(shù)對其進(jìn)行優(yōu)化處理,也就是所說的查詢擴(kuò)展。為了對本體概念相關(guān)內(nèi)容擴(kuò)展,本文首先考慮利用本體中的層次結(jié)構(gòu)關(guān)系來進(jìn)行處理。查詢中常用到的本體中出現(xiàn)的關(guān)系有:
同義詞關(guān)系:擴(kuò)展概念為查詢概念的同義詞;
父子關(guān)系:擴(kuò)展概念與查詢概念是本體層次結(jié)構(gòu)中的父子節(jié)點(diǎn);
子樹節(jié)點(diǎn):擴(kuò)展概念是查詢概念的子樹上的節(jié)點(diǎn);
兄弟節(jié)點(diǎn):擴(kuò)展概念是查詢概念的兄弟節(jié)點(diǎn),有相同的父節(jié)點(diǎn);
兄弟子樹節(jié)點(diǎn):擴(kuò)展概念是查詢概念的兄弟子樹上的節(jié)點(diǎn);
本文主要考慮的是對父子關(guān)系節(jié)點(diǎn)來對查詢概念進(jìn)行擴(kuò)展,因?yàn)樵诒倔w層次結(jié)構(gòu)中父子關(guān)系是最為普遍的,也是最為容易獲取的。其處理流程為:
1) 對獲取的活動(dòng)主題每個(gè)關(guān)鍵詞,判斷它是本體中的概念、實(shí)例還是屬性;
2) 若均為概念或者實(shí)例,則主要利用本體結(jié)構(gòu)中的父子關(guān)系進(jìn)行擴(kuò)展,也就說查找其上位詞以及下位詞;若存在屬性,則利用屬性和概念之間的關(guān)系,根據(jù)屬性查找相關(guān)的實(shí)例;
3) 將擴(kuò)展結(jié)果保存,以便后續(xù)進(jìn)行文化資源信息的檢索。
4.3 Lucene資源檢索模塊
文化資源的檢索模塊的實(shí)現(xiàn)采用了基于Java的Lucene全文檢索引擎工具包。Lucene作為一個(gè)優(yōu)秀的全文檢索引擎,其系統(tǒng)結(jié)構(gòu)具有強(qiáng)烈的面向?qū)ο筇卣?。首先定義了一個(gè)與平臺無關(guān)的索引文件格式,其次將系統(tǒng)的核心組成部分設(shè)計(jì)成抽象類,具體的平臺實(shí)現(xiàn)部分設(shè)計(jì)為抽象類的實(shí)現(xiàn),此外與具體平臺相關(guān)部分比如文件存儲也封裝為類[6]。因此,Lucene可以很方便的應(yīng)用到各類系統(tǒng)中。
利用Lucene進(jìn)行文化資源的檢索必然經(jīng)過兩個(gè)步驟:一是對平臺中的文化資源進(jìn)行創(chuàng)建索引,二是對上一步利用本體進(jìn)行語義擴(kuò)展的關(guān)鍵詞詞組進(jìn)行檢索。下面給出各個(gè)步驟的具體實(shí)現(xiàn)。
利用Lucene對文化資料建立索引需要經(jīng)過定義詞法分析器、確定索引文件位置、創(chuàng)建IndexWriter、進(jìn)行索引文件的寫入存儲等過程,相關(guān)核心代碼為:
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT);
Directory dire = FSDirectory.open(new File(Constants.INDEX_STORE_PATH));
IndexWriterConfig iwc=new IndexWriterConfig(Version.LUCENE_4_10_2,analyzer);
IndexWriter iw = new IndexWriter(dire, iwc);
LuceneIndex.addDoc(iw);
iw.close();
以上是索引的創(chuàng)建過程,利用關(guān)鍵詞進(jìn)行文化資料的查詢過程,包括打開文件存儲位置、創(chuàng)建搜索器、進(jìn)行關(guān)鍵詞查詢等步驟,核心代碼如下所示:
Directory dire = FSDirectory.open(new File(Constants.INDEX_STORE_PATH));
IndexReader ir = DirectoryReader.open(dire);
IndexSearcher is = new IndexSearcher(ir);
TopDocs td = is.search(query, 1000);
System.out.println("共為您查找到" + td.totalHits + "條結(jié)果");
ScoreDoc[] sds = td.scoreDocs;
for (ScoreDoc sd : sds) {
System.out.println();
Document d = is.doc(sd.doc);
System.out.println(d.get("path") + ":[" + d.get("path") + "]");
System.out.println(d.get("name"));
System.out.println(sd.score);
}
5 結(jié)論
本文分析了公共文化服務(wù)集成平臺集成個(gè)性化推薦服務(wù)的重要性,并給出了個(gè)性化推薦服務(wù)集成方案。基于現(xiàn)實(shí)用戶使用場景分析,提出的個(gè)性化推薦服務(wù)包含兩部分:文化活動(dòng)推薦以及與該文化活動(dòng)相關(guān)的文化資料的推薦。其中,對于文化活動(dòng)的推薦采用基于用戶行為偏好的協(xié)同過濾算法進(jìn)行推薦;對于文化資料推薦,通過引入基于本體的查詢擴(kuò)展,解決文化資料檢索過程中語義擴(kuò)展問題。
參考文獻(xiàn):
[1] 馮蓓蓓. 個(gè)性化推薦系統(tǒng)綜述[J]. 科技展望, 2017, 27(12).
[2] 程光華. 融合內(nèi)容過濾和協(xié)同過濾的智能推薦系統(tǒng)[D]. 東南大學(xué), 2010.
[3] 安維, 劉啟華, 張李義. 個(gè)性化推薦系統(tǒng)的多樣性研究進(jìn)展[J]. 圖書情報(bào)工作, 2013, 57(20):127-135.
[4] 沈西挺,董智佳.反映用戶興趣變化的協(xié)同過濾算法[J].計(jì)算機(jī)應(yīng)用與軟件,2013(6):295-297.
[5] 曾維明. 基于領(lǐng)域本體的語義檢索及個(gè)性化推薦算法研究[D]. 南京理工大學(xué), 2010.
[6] 潘志文, 鄧丹君. 基于Lucene的web信息檢索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 軟件, 2014(5):37-37.