摘 要: 面對龐大的微博用戶群,提升用戶體驗以吸引更多用戶成為關(guān)鍵因素,因此自動學習推理系統(tǒng)的研究成為熱點,對微博用戶的傾向進行推測,同時,使用圖形化的組件使得操作更加簡潔方便。系統(tǒng)中使用定量的不確定推理算法,也改變了定性推理造成結(jié)果不準確的情況,從而幫助用戶更高效、準確地推送網(wǎng)絡好友,通過運用人工智能和數(shù)據(jù)挖掘等領(lǐng)域中的理論和算法設計實現(xiàn)了自動學習推理系統(tǒng)。系統(tǒng)計劃在搜狐微博中上線,在測試過程中取得了一定的預期成果。
關(guān)鍵詞: 數(shù)據(jù)挖掘; 微博應用; 不確定推理; NHibernate和Spring.NET框架結(jié)構(gòu)
中圖分類號: TN915.1?34; TM417 文獻標識碼: A 文章編號: 1004?373X(2016)15?0099?04
Abstract: Facing the enormous microblog user group, the promotion of user experience is the key factor to attract more users. Therefore, the study on automatic learning and reasoning system (ALRS) becomes a research hotspot, which can speculate the tendency of microblog users, and make the operation with graphic components more concise and convenient. The quantitative uncertain reasoning algorithm used in ALRS can change the uncertain results caused by qualitative reasoning, and help the users to recommend the network friends efficiently and accurately. The ALRS was designed and implemented with the theories and algorithms in artificial intelligence, data mining and other fields. There is plan that the system will enter in Sohu microblog, and a certain expected result has been obtained in test process.
Keywords: data mining; microblog application; uncertain reasoning; NHibernate and Spring.NET framework
0 引 言
微博是當前最炙手可熱的互聯(lián)網(wǎng)應用,作為一種信息的交互平臺,微博正成為網(wǎng)民愈加重要的言論發(fā)表方式。除此之外,微博還可以通過用戶間的關(guān)注形成巨大的人際交互網(wǎng)絡。在微博中,人際間的交互體現(xiàn)為用戶間添加關(guān)注、轉(zhuǎn)發(fā)、收聽等。其中添加關(guān)注是最為基礎的用戶操作。然而,很多剛剛開始使用微博的用戶,可能只會添加一些名人微博進行關(guān)注,甚至連名人微博都不會添加,對于眾多其他的不錯的草根微博卻一無所知,微博就會失去使用價值和意義[1]。
為了推廣微博應用,提高微博的可用性、有趣性,搜狐微博推出了“猜你認識”的功能。搜狐微博設計了熱詞系統(tǒng)。通過這些用戶提及的熱詞,在系統(tǒng)中尋找相應的推理方法,進行歸納推理,得出推理結(jié)果。系統(tǒng)后臺對推理結(jié)果在前臺頁面體現(xiàn)。用戶不但可以刪改后臺推理得出的結(jié)果(即標簽),還可以自己添加標簽,豐富自己的形容。后臺程序?qū)⑨槍γ恳粋€用戶傾向,找到與用戶具有相同傾向的其他用戶,作為推薦好友推薦給用戶,這樣,就可以幫助用戶建立更大更廣的關(guān)注圈[2]。
基于人工智能的抽象建模(即推理規(guī)則的提取)、基于一系列第三方控件的操作界面、不確定推理運算等一系列思想與方法,實現(xiàn)自動學習推理系統(tǒng)。通過系統(tǒng)運行時做出的自動調(diào)整(包括增益與衰減),系統(tǒng)不但大大降低了后臺人員的維護成本,而且更提高了用戶體驗性,使得微博用戶能夠得到更好更準確的服務[3]。
1 系統(tǒng)需求分析
1.1 需求概述
自動學習推理系統(tǒng)主要面向兩方面用戶的使用,即后臺運維人員和普通微博用戶[4]。
系統(tǒng)應該滿足一次錄入推理數(shù)據(jù)、多次使用該數(shù)據(jù)的要求,也就是說,推理數(shù)據(jù)是系統(tǒng)的基礎。在運維人員需要在構(gòu)建好分類和事實等一系列知識體系之后,將建模的所有結(jié)果錄入系統(tǒng)。ALRS得到這些知識并將它們保存在數(shù)據(jù)庫。除了事實對普通的微博用戶公開外,分類應該保持對普通微博用戶的透明性。知識成功錄入后,運維人員將在構(gòu)建好的事實的基礎上,構(gòu)建出一系列的推理過程,即推理樹。
在滿足了后臺運維人員對本系統(tǒng)的一系列需求后,面對普通微博用戶的應用需求則完全在后臺控制臺中體現(xiàn)。推理系統(tǒng)為學習系統(tǒng)提供了接口,以滿足學習系統(tǒng)利用知識進行各種推理的需求。同時,為方便運維人員進行模型的驗算,檢查推理樹構(gòu)建的合理性,推理系統(tǒng)提供了圖形化的推理演算界面。
1.2 功能需求分析
Web用戶則通過添加推薦關(guān)注、增刪智能標簽反饋推理系統(tǒng)的處理結(jié)果;運維人員主要負責知識的錄入和推理樹的構(gòu)建;推理引擎實際上是推理程序的集合,主要負責利用構(gòu)建好的推理樹以及推理算法對用戶的輸入進行推理并得出用戶傾向;學習引擎負責微博的分詞,推理分配以及推理結(jié)果的整理。
1.3 性能需求分析
自動學習推理系統(tǒng)對硬件方面要求較高,必須不低于以下配置:處理器:Intel Pentium 166 MX (或以上);內(nèi)存:10 GB(或以上);硬盤:20 GB(或以上);顯卡:SVGA顯示適配器。
軟件方面的要求如下: 操作系統(tǒng):推理機Windows XP/7,學習機Linux,Windows不限;推理機需要安裝Microsoft .NET Framework 2.0或以上;推理機需要安裝Developer Express Inc .NET2005組件;推理機需要安裝Netron組件;推理機需要安裝Spring.NET 1.2.0框架包。
2 自動學習推理系統(tǒng)概要設計
2.1 系統(tǒng)概要設計
需求分析中的五個主要功能:推理準備、知識管理、推理樹管理、自動推理、推理結(jié)果整理與推送好友 [2]。
推理準備功能需要熱詞系統(tǒng)的幫助,通過熱詞系統(tǒng)對用戶近期提及熱詞的記錄獲取目標用戶的最新傾向詞。
知識管理功能是為了滿足后臺運維人員進行知識錄入而設計的。
推理樹管理功能是為使后臺運維人員以簡潔的操作方式,利用構(gòu)建好的事實,通過可視化界面便捷的圖形化操作來構(gòu)建推理樹。
推理功能中為方便后臺運維人員的驗算使用,系統(tǒng)應當為他們準備類似電子表格的簡單操作界面。
推理結(jié)果整理與推送好友功能對推理結(jié)果進行響應,并為用戶搜索目標結(jié)果集,作為推送好友。
2.2 系統(tǒng)層次設計
圖1描述了自動學習推理系統(tǒng)的主要組成部分。 首先,ALRS 可以分為學習子系統(tǒng)和推理子系統(tǒng)。其中,學習子系統(tǒng)分為推理準備和好友推送兩個部分。 推理子系統(tǒng)部分包括知識管理、推理樹管理和推理三部分。 知識管理部分分為分類管理和事實管理兩個子部分。推理樹管理部分分為新建和維護兩個子部分。
2.3 系統(tǒng)流程設計
圖2 描述了ALRS的整體流程。為了提高系統(tǒng)運行效率,使得ALRS為更廣泛的微博用戶服務,ALRS只針對用戶描述標簽少于3個的用戶進行推理服務,以豐富用戶的描述,并且能夠使沒用過這項功能的用戶注意到這項應用,從而促使用戶自己添加描述。對進入推理集的數(shù)據(jù),ALRS會定期進行推理。一方面為用戶添加描述標簽,另一方面也為用戶推送好友。具體的流程會在下文進行詳細討論。
3 自動學習推理系統(tǒng)詳細設計
3.1 系統(tǒng)詳細設計
系統(tǒng)采用流行的MVC架構(gòu)模式,即使用表示層、業(yè)務邏輯層、數(shù)據(jù)訪問層三層的流行架構(gòu)方式,然后介紹ALRS的數(shù)據(jù)訪問層架構(gòu),其中重點介紹數(shù)據(jù)訪問層中每一層(包括Service,DAO,Bean和數(shù)據(jù)庫等層)的具體設計方式。最后介紹業(yè)務邏輯層的工作流程和算法等設計方案。
在系統(tǒng)結(jié)構(gòu)設計中,一般將數(shù)據(jù)訪問層分成服務層和持久化層。實現(xiàn)時,需要盡可能地保持層次間的松散耦合。學習子系統(tǒng)中使用Spring與Hibernate架構(gòu),而推理子系統(tǒng)利用Spring.NET與NHibernate對.NET平臺開發(fā)的應用程序完成業(yè)務的架構(gòu)。這樣,可以利用Spring與Hibernate組合和Spring.NET與NHibernate組合來封裝和處理數(shù)據(jù)庫操作,使程序代碼中不需嵌入SQL操作語句和復雜的數(shù)據(jù)庫操作對象,從而簡化程序開發(fā)、測試過程。
由于系統(tǒng)需要進行JAVA與.NET跨平臺的交互,所以數(shù)據(jù)庫的選取非常重要??紤]到網(wǎng)絡應用中MySQL的應用非常廣泛,所以在數(shù)據(jù)庫的選擇上確定使用MySQL。
3.2 推理樹管理部分設計
推理樹管理部分在知識庫管理部分的基礎上,實現(xiàn)了后臺運維人員對推理樹的錄入與管理,是自動學習推理系統(tǒng)的推理基礎,此后的推理管理部分的規(guī)則來源就是在推理樹管理部分中錄入。為了方便后臺運維人員完成構(gòu)建推理樹、查詢推理樹、管理規(guī)則、刪除推理樹、修改推理樹五種操作,系統(tǒng)將推理樹管理部分具體劃分為新建推理樹、維護推理樹兩個部分。維護推理樹部分又劃分為查詢推理樹、規(guī)則管理、刪除推理樹、修改推理樹等四個具體的部分。推理樹管理部分結(jié)構(gòu)圖如圖3所示。
3.3 用戶推理部分設計
用戶推理部分是針對后臺運維人員驗算和普通的微博用戶自動推理而開發(fā)的。后臺運維人員在構(gòu)建推理樹后,可以利用推理部分的“推理”功能對推理樹進行計算與驗算,從而對推理樹進行一定的調(diào)整。而普通的微博用戶作為本系統(tǒng)的主要服務對象,主要由系統(tǒng)后臺自動調(diào)用。參與對象分別是自動學習推理系統(tǒng)和MySQL數(shù)據(jù)庫管理系統(tǒng)。
3.4 推理后整理部分設計
推理后整理部分旨在對推理后產(chǎn)生的結(jié)果以及用戶的反應進行整理。推理后,將產(chǎn)生用戶傾向表和用戶潛在傾向表。ALRS會將這兩個表中的推理結(jié)果與用戶自身情況進行匹配,并把各三個符合條件的其他用戶作為好友推薦給該用戶。
如果用戶接受推薦,則默認用戶接受該傾向或潛在傾向。ALRS可以根據(jù)證據(jù)找到推理樹進行推理樹增益。增益的實現(xiàn)通過對數(shù)據(jù)庫和緩存(如果緩存中存在的話)中的推理樹信息進行更新。每次增益的尺度可以調(diào)整,系統(tǒng)初始默認為每次增加5%,當可信度增加到大于等于1時,系統(tǒng)將對今后的增益請求進行忽略。
如果用戶拒絕推薦或刪除標簽,則默認用戶不接受該傾向或潛在傾向。ALRS可以根據(jù)證據(jù)找到推理樹進行推理樹衰減。衰減的實現(xiàn)通過對數(shù)據(jù)庫和緩存(如果緩存中存在的話)中的推理樹信息進行更新。每次衰減的尺度可以調(diào)整,系統(tǒng)初始默認為每次減少5%,當可信度增加到小于等于0時,系統(tǒng)將對今后的衰減請求進行忽略。
通過以上兩種方法可以完成推理樹的自維護與自適應。這樣,就可以實現(xiàn)ALRS系統(tǒng)的自維護效果。
4 自動學習推理系統(tǒng)實現(xiàn)
系統(tǒng)利用DevExpress,Netron提供的第三方用戶控件,實現(xiàn)了以下功能。
利用Netron提供的GraphControl類實現(xiàn)了畫板功能,使系統(tǒng)提出的圖形化建立推理樹變?yōu)榭赡?。利用Netron提供的Shape類實現(xiàn)了推理樹節(jié)點的功能。該控件可相互連接的特點也符合系統(tǒng)構(gòu)建推理樹時節(jié)點間連接的需求。利用DevExpress提供的SimpleButton,MemoEdit,ComboBoxEdit等類實現(xiàn)了一些界面的界面控制。這是三種經(jīng)常應用到的控件,其他控件由于重要性較小、出現(xiàn)次數(shù)較少的原因,在此不做贅述。
4.1 知識管理部分的實現(xiàn)
類別管理中,可以創(chuàng)建新的根類別或者子類別,也可以對這些類別進行刪改操作。根類別、子類別的包含關(guān)系擴展了單純的類別?事實的關(guān)系,從而形成了多層次類別、事實的從屬體系。事實管理中,可以創(chuàng)建新的事實,也可以對已存在的事實進行刪改操作。對事實的管理首先要選擇事實所屬的類別,然后再對事實的屬性進行錄入。事實管理功能界面與創(chuàng)建類別類似,每種事實都包含ID、類別ID、名稱、備注等信息。
4.2 推理樹管理部分的實現(xiàn)
結(jié)合圖4的新建推理樹部分用戶界面,介紹具體設計和使用方法。
(1) 輸入推理樹名稱。以方便后臺運維人員和普通的微博用戶感性地區(qū)分不同的推理樹。
(2) 添加推理節(jié)點。為方便后臺運維人員的查詢,根據(jù)選定的類別,系統(tǒng)會自動導入數(shù)據(jù)庫中所有屬于該類別的事實。
(3) 界面中可刪除已存在的節(jié)點,若需要刪除某個已有的節(jié)點,則單擊鼠標右鍵,選擇“delete”即可刪除。
(4) 添加事實節(jié)點后,可以添加事實節(jié)點間的關(guān)系。
(5) 在界面中可以刪除事實節(jié)點間的關(guān)系。
(6) 構(gòu)建推理樹完畢,確認推理樹無誤后,按下“保存數(shù)據(jù)”按鈕,即可將推理樹保存至數(shù)據(jù)庫,與此同時保存的還有知識庫、推理樹節(jié)點、節(jié)點間關(guān)系、節(jié)點位置等信息。
若存在此類問題或在數(shù)據(jù)庫操作中發(fā)生錯誤,系統(tǒng)將會返回錯誤信息。如果添加規(guī)則庫成功,則返回成功信息,如圖5所示。
4.3 用戶推理部分的實現(xiàn)
利用上文構(gòu)建推理樹的實例來說明ALRS的推理過程和使用方法,推理樹全圖如圖6所示。對推理演算部分的使用大致分為三個步驟:首先進入推理演算頁面選擇推理樹。然后,通過系統(tǒng)提供的下拉框選項,為每一個列表中的葉子節(jié)點賦予事實可信度。最后,點擊“開始推理”按鈕,系統(tǒng)將會開始自動推理,之后將結(jié)果呈現(xiàn)給用戶。
5 系統(tǒng)性能測試
5.1 測試環(huán)境
硬件方面配置:處理器:Intel Core i5;內(nèi)存:2 GB;硬盤:20 GB;顯卡:NVIDIA顯示適配器。軟件方面配置:操作系統(tǒng):Windows 7;Microsoft .NET Framework 2.0;MySQL5.0;JDK1.6;Developer Express Inc .NET2005組件;Netron組件;Spring.NET 1.2.0框架包。
5.2 測試結(jié)果
下面給出幾種不同設計方案下ALRS的工作性能。
方案一:不使用memcached,處理所有用戶的標簽猜測。這種情況下,系統(tǒng)負荷會達到最大,因為沒有memcached的緩存,每次數(shù)據(jù)的查詢、更新都要進行數(shù)據(jù)庫操作,測試結(jié)果如表1所示。
方案四:使用memcached,僅處理標簽小于三個用戶的標簽猜測。使用緩存后,不但實現(xiàn)了系統(tǒng)物理性能的提升,而且從精準度上也間接提升了服務效率。測試結(jié)果如表4所示。
使用memcached確實可以提高系統(tǒng)的運轉(zhuǎn)效率,究其原因,就在于memcached的查詢速度很快;另一方面,僅對標簽小于三個的用戶進行服務,雖然減小了服務覆蓋率,但也縮小了服務范圍,提高了服務精度,可以增強新用戶的忠誠度。所以系統(tǒng)選定了第四種方案,在搜狐微博每日用戶數(shù)目增長率大于每日微博發(fā)送增長率的初期階段,在每日產(chǎn)生千萬條微博記錄以下的情況下,系統(tǒng)運轉(zhuǎn)良好,達到了為新用戶推送好友的目的,符合設計時的工作設想。
6 結(jié) 論
目前,自動學習推理系統(tǒng)的所有需求功能已基本實現(xiàn)。ALRS實現(xiàn)了使用人工智能的手段和方法,對微博用戶的用戶傾向的挖掘;除此之外,還完成了前后相關(guān)的業(yè)務流程。 從總體使用和運行效果來看,ALRS不但為后臺工作帶來巨大的簡單和便利,也增強了用戶體驗,使更多的用戶發(fā)現(xiàn)微博的價值和樂趣。
在不久的將來,ALRS會進行版本升級,屆時,可以使用NoSQL的數(shù)據(jù)庫架構(gòu)方式對系統(tǒng)進行數(shù)據(jù)管理。使用NoSQL可以提高系統(tǒng)響應速度,消除系統(tǒng)因數(shù)據(jù)庫操作產(chǎn)生的消耗,使得ALRS可以運行得更加迅速。
參考文獻
[1] 王寅永,李降宇,李廣歌. C#深入詳解[M].北京:電子工業(yè)出版社,2008.
[2] 王守信,張莉,王帥,等.一種目標可滿足性定性、定量表示與推理方法[J].軟件學報,2011,22(4):593?608.
[3] TAN P N, STEINBACH M. Introduction to data mining [M]. New York: Addison?Wesley, 2008: 112?114.
[4] GIARRATANO J C, RILEY G D. Expert systems [M]. 4th ed. Beijing: China Machine Press, 2006: 23?25.
[5] 俞忻峰.社交網(wǎng)絡挖掘方案研究[J].現(xiàn)代電子技術(shù),2015,38(4):25?29.
[6] 李海生.一種熱點話題算法在微博輿情系統(tǒng)中的應用[J].現(xiàn)代電子技術(shù),2015,38(6):44?46.