李 鋒,賈茂想,涂如男
(江蘇科技大學 經濟管理學院,鎮江 212003)
大數據時代的到來,大規模生產、分析和應用數據成為了新的發展趨勢.在企業長期的生產和運營過程中,產生了大量的有價值的數據,對于這些數據的收集和分析,可以提升企業管理并獲得競爭優勢[1].隨著企業產生的半結構化和非結構化數據逐年增加,如何存儲和分析數據、如何挖掘和共享知識,成為了面臨的主要問題.通過提升內部知識管理能力,知識管理系統有助于建立開放和協作的生態系統、利用內外部知識流,從而提高創新能力[2].因此,許多企業也開始建設知識管理系統,以管理組織學習和業務知識[3].然而,對于PB級別的非結構化數據而言,現有的知識管理系統僅靠傳統的數據庫技術已不能滿足用戶多樣化的需求,還需要結合分布式計算和存儲技術.解決大數據環境下的知識存儲、知識共享、知識挖掘、知識檢索與推薦的問題,企業需要構建一種基于大數據技術的知識管理系統,從而支持知識創新和知識應用.
知識管理系統(Knowledge Management System,KMS)指的是一系列應用于管理組織知識的信息系統.它是一種建立在IT系統之上,用來支持和強化組織中知識創造、存儲、傳播和應用過程的信息系統[4].而企業知識管理系統(Enterprise Knowledge Management System,EKMS )有狹義和廣義之分,廣義的EKMS將企業整體看作一個知識處理系統,它是企業模型的抽象和企業在知識管理方面的視圖;狹義的EKMS是指支持企業知識管理過程的信息系統[5].簡而言之,知識管理系統是為了實現知識創新和知識共享并對知識進行管理的一種工具.近年來,關于知識管理系統的研究取得了豐厚的理論成果和實踐經驗,其中文獻[6]從快速應對復雜變化的應用環境、支持知識管理生命周期過程、滿足用戶個性化需求的角度,提出了一種敏捷知識管理系統.文獻[7]從用戶行為動機的角度出發,將用戶創新的理念融入到知識管理系統中,探討了基于用戶創新模式知識管理系統.文獻[8]構建了基于本體的知識管理系統框架并實現了部分檢索模塊.文獻[9]結合云計算的戰略理念,研究了基于云計算的企業KMS再造的體系.文獻[10]結合Web 2.0的特點,構建了面向服務的知識管理系統四層模型.
目前大多數的研究主要是從知識管理的理念出發,進行相關理論以及模型的研究.而對于大數據技術在知識管理系統中的應用研究較少且不夠深入,論文從大數據時代處理數據的思維入手,突出用戶行為模式和人機交互的因素,著眼于海量知識的檢索(知識需求為導向)、個性化知識推薦(知識瀏覽為導向)、虛擬社區知識共享(知識交流為導向)、知識挖掘(知識創新為導向)以及情報服務(知識應用為導向)等功能,利用大數據相關技術,構建基于Hadoop的企業知識管理系統(Hadoop-based Enterprise Knowledge Management System,H_EKMS).從而滿足用戶個性化和智能化的需求,達到知識轉移、應用、共享與創新的目的.
Hadoop的核心是HDFS和MapReduce.HDFS(Hadoop Distributed File System)是一個分布式文件系統,HDFS以流式數據訪問模式來存儲超大文件,運行于商用硬件集群上[11].通過實現冗余來保障數據的安全存儲,具有高容錯性的特點.MapReduce是一種建立在HDFS上的分布式計算框架,可用于數據處理的編程模型,具有良好的擴展性和高容錯性[12].MapReduce任務過程分為Map階段和Reduce階段,每個階段都是以鍵值對(key/value)作為輸入和輸出(見圖1),其一般形式為:


圖1 基于Hadoop的企業知識管理框架模型
隨著EKMS的訪問量與知識量的增加,傳統的EKMS已無法滿足用戶的需求.另外,對于EKMS而言,長期積累的數據與知識是企業非常寶貴的財富,如何應用這些數據和知識來提升企業管理是未來知識管理系統應當解決的問題.大數據與云計算技術的發展改變了企業的知識管理模式和用戶的行為觀念,對EKMS的功能和架構的設計提供了新的思路.而Hadoop以其開源、適合處理海量數據集的特點成為了研究大數據的重要平臺,滿足了面向企業的信息系統的擴展性和經濟性的需求.與傳統的EKMS相比,H_EKMS具有如下幾個優勢:
(1)滿足用戶個性化的需求
大數據背景下信息過載十分嚴重,而每個用戶的精力有限,如何在繁雜的信息中找到自己感興趣的內容是亟待的問題.然而傳統的KMS用戶交互性差,不能夠為用戶提供更加個性化的服務,造成了KMS使用率不高的現象,不能夠達到企業構建KMS的目的.H_EKMS利用推薦系統技術解決信息過載的問題,能夠為用戶提供個性化知識服務,進一步增加用戶粘性和增強用戶使用KMS活躍度,從而真正發揮KMS作用.
(2)提升知識存儲與分析的性能
伴隨著數據的爆炸式增長,除了數據規模的增大,數據的復雜度也在增加(半結構化和非結構化數據增多),其多樣性、價值密度低和超大規模的特點與傳統的數據庫和數據倉庫的數據存在著很大的差異,而傳統的EKMS實現的主要是在線事務處理(OLTP),已不能滿足大數據處理的需求.由于H_EKMS底層采用的是HDFS進行知識的存儲,知識文件被分割成不同的塊(block)存儲在不同的數據節點(datanode)之上,每個塊的副本數可以根據實際需求進行設定,從而實現冗余存儲,保證數據存儲的安全性.后臺采用的是大規模的部署Hadoop的服務器組成的集群,從而提供了海量的數據存儲空間和高性能的計算能力.Hadoop能夠在集群的各臺機器之間動態地移動數據,將作業分散到不同是節點執行,并保證各個節點的動態平衡,因此處理速度非常快.另外MapReduce具有數據本地化的特性,從而減少數據傳輸的時間開銷,實現高性能的計算.MapReduce編程模型支持多數統計分析和機器學習的算法,采用分布式并行處理的策略,加快了數據處理的速度和效率,而Mahout構建了一個快速創建可伸縮、高性能的機器學習應用程序的環境,對于大規模數據挖掘有著良好的支持.目前MapReduce應用的計算場景有很多,主要包括流量統計、用戶行為分析、推薦引擎、數據挖掘分類器等.
(3)實現面向管理決策的知識發現
知識發現是提取有用信息和隱藏信息的過程,從大規模數據中發現潛在的、有用的知識,旨在服務于管理決策.傳統的知識管理系統更多地考慮對顯性知識的管理,而這些顯性知識只是冰山一隅.在大數據時代,知識管理的范疇擴大了,基于Hadoop的EKMS不局限于現有知識的管理,而是更加關注商務智能的過程,將知識的采集的來源豐富化(企業內部大數據和企業外部大數據),通過知識發現解決企業數據充足而知識匱乏的窘境,把大量的原始數據轉換成有價值的、便于利用的知識,從而幫助企業在激烈的市場競爭中獲得戰略性優勢.
(4)提高系統的可擴展性
Hadoop提供了一個高度可擴展的共享存儲和分析平臺,它可以存儲和分發橫跨數百個并行操作的廉價的服務器數據集群.傳統的EKMS主要依賴于關系型數據庫系統,對于處理大數據而言,以縱向擴展來打造超級計算機顯然是不可取的,其擴展性不夠友好.Hadoop則實現橫向擴展,能夠在成百上千的數據節點上運行應用程序,具有良好的擴展性和彈性.企業可以根據自身的規模以及用戶訪問量等實際情況部署集群,可以靈活地增加和減少集群節點,且不會影響KMS的運轉.
本文以數據化運營為視角,依托Hadoop生態系統的相關大數據技術,構建了基于Hadoop的企業知識管理框架模型,該模型由人、技術、知識源和功能服務構成(見圖1),突出“數據驅動管理創新、管理與技術并重”的理念,整個模型框架建立在Hadoop生態系統之上,對于數據的存儲、分析有著良好的支持.以下主要從知識創造、知識存儲、知識集成和知識創新4個方面進行闡述.
(1)知識創造
在數據大爆炸時代,全球的數據量呈現不斷增長的趨勢.大數據背景下知識管理生命周期的各個環節變得復雜了,其中知識的采集不在局限在企業內部,而是延伸到了企業的外部.企業的外部大數據包括產業鏈數據、互聯網數據、競爭情報數據和UGC數據,這些數據不僅蘊含著巨大的商業價值,而且還是企業知識發現和知識積累的重要基礎.但是這些數據具有量大、多樣和價值密度低等特性,依靠傳統的數據庫技術實現存儲和在線事務處理(OLTP)并不能夠滿足企業需求,引入MapReduce編程模型和Hive數據倉庫分別實現大數據的分布式計算與在線分析處理(OLAP),可以輕松達到企業大數據挖掘的目的,進而為知識的儲備與應用奠定基礎.
(2)知識存儲
知識創造階段的輸出是經過分析處理之后形成的具有一定價值和規范的知識與數據,但是仍具有多樣和量大的特性.一方面隨著企業規模的增大和持續化運轉,這些數據和知識的積累量增大的速度會越來越快,另一方面對于存儲的安全性和操作的便捷性要求也越來越高.云計算為實現云存儲提供了技術支撐,通過HDFS實現分布式存儲,既滿足了知識量大的需求又滿足了存儲的安全性需求,而HBase是構建在HDFS之上的面向列的分布式數據庫,支持實時訪問超大規模數據集,為企業的大數據應用提供了較好的解決方案.
(3)知識集成
知識集成是通過H_EKMS實現的,是知識應用和知識創新的基礎.主要包括基礎功能和智能功能,其中基礎功能主要包括:知識門戶、知識地圖、權限管理、知識檢索、虛擬社區、學習培訓等.知識門戶是統一展示知識的平臺,是企業或組織內部具體用戶與知識管理系統軟件進行人機交互的接口,用于知識的發布與共享,并且集成了知識管理的各個功能模塊,使得企業各部門員工之間知識交流和信息共享更加的流暢.知識地圖是具有索引的功能,將顯性的知識以圖表、文字等形式表現出來,能夠很方便地按照知識地圖的指引找到所需要的知識.權限管理是為了系統的安全考慮,將系統的用戶劃分成不同的級別進行權限控制.知識檢索是知識管理系統的最基礎的功能之一,H_EKMS是建立在大數據技術基礎之上的,能夠快速精準地響應用戶的檢索操作,從而可以提升用戶體驗.虛擬社區是知識管理系統用戶進行知識交流和知識共享的重要平臺,用戶可以通過虛擬社區平臺回答、提問、推薦和貢獻知識,真正使隱性的經驗類知識得到挖掘與傳播,有利于促進形成知識共享、知識創新的文化氛圍.學習培訓是系統用戶進行知識補給和推動內部知識傳播的平臺,提供了學習的隨時隨地性,既能夠增強員工的基本技能,又能夠為企業節省大量的人力和財力.
智能功能是H_EKMS有別于其他傳統的EKMS的特色功能,主要包括知識推薦、日志分析、知識挖掘和情報服務.知識推薦是綜合運用機器學習相關的算法,通過分析基礎功能服務模塊的知識檢索、虛擬社區、學習培訓所產生的行為數據、用戶生成內容(User Genetated Content,UGC)以及知識元數據,挖掘用戶的需求、興趣以及行為模式,從而實現個性化知識推薦.伴隨著知識管理系統的運轉會產生大量的日志數據,這些數據既包括系統運行過程中的運行狀態,又包括用戶的一些訪問數據,日志分析功能模塊可以對這些數據進行分析處理,比如通過用戶搜索的關鍵字日志分析可以得出用戶的搜索偏好,通過分析系統的錯誤信息日志可以進行異常報警,從而可以了解系統的安全狀況以及用戶使用系統的行為模式,進而為知識推薦奠定基礎.競爭情報已成為企業在長期發展過程中的核心競爭力之一,尤其是在大數據時代,企業若能夠從海量繁雜的信息資源中挖掘出情報,便會率先掌握和預測商機,從而可以幫助企業進行科學決策和戰略制定.知識挖掘功能模塊可以從數據資源中提煉知識,促使隱性知識到顯示知識的轉換.知識挖掘是知識管理的重要環節,是知識創新的基礎,從海量的數據中提取結構化的知識,將其運用到企業的生產和管理的過程中,可以提升企業的管理效率.另外知識挖掘可以實現搜索引擎的智能化,通過知識挖掘構建知識圖譜,促使知識更加系統化、全面化以及知識之間的相互聯系,可以使用戶的搜索更加便利.最后,知識挖掘也可以為企業的情報服務提供參考信息,形成一個良性循環.
(4)知識創新
通過對用戶數據及其行為數據分析建立員工用戶畫像,并對知識價值、知識量及知識標簽進行有效地評估和展示,一方面有利于企業知識管理人員及時了解實施知識管理的成效,并對實施知識管理的績效評價提供參考;另一方面有利于企業管理人員根據用戶特征有的放矢地進行激勵,并充分利用WEB 2.0技術促進用戶生成內容,進而促進知識轉移與共享,進一步提升企業創新能力.
設計結合以上對知識管理框架模型的分析,設計了H_EKMS的邏輯架構,見圖2.整個系統的架構可分為應用層和技術支撐層兩大邏輯單元.具體分析如下:

圖2 H_EKMS邏輯架構
(1)技術支撐層
技術支撐層是H_EKMS的保障,主要由數據源層和大數據層組成.其中數據的來源主要分為企業外部大數據和企業內部大數據,外部大數據包括互聯網大數據和行為數據,企業內部大數據主要包括業務數據、用戶屬性數據和系統運轉過程中產生的日志數據.這些數據蘊含了大量的客戶信息、企業競爭性情報和產業鏈信息,對這些數據的深入挖掘,一方面可以為企業管理決策提供有用的知識儲備,幫助企業精準定位商務價值和市場空間,另一方面可以促進產業鏈的協同創新.大數據層為整個系統提供分布式存儲和分布式計算的技術支持,其中數據存儲是構建在分布式文件系統之上的,傳統的關系型數據庫能夠提供比較完整的ACID操作,對于查詢、連接以及索引有著很好的支持,功能非常強大.與關系型數據庫相比,HBase更適合海量數據的存儲和處理以及高并發訪問,并且具有很好的擴展性.資源管理器YARN可以支撐多種計算框架,為以后的系統擴展提供了很大的便捷.離線分析處理主要是通過MapReduce編程模型和Hive數據倉庫實現分布式計算.
(2)應用層
就管理層面而言,業務層主要分為三大板塊,主要分為面向企業人員的知識服務、面向管理者的決策服務及面向決策和科研機構的數據服務.H_EKMS秉承技術與管理并重的理念,有效解決目前企業知識管理形同虛設的窘境,更加強調知識應用的重要性,通過為不同的使用人員提供不同的服務,可以促進知識應用到實處,比如通過為科研機構提供數據服務,促進產學研協同創新,可以為企業的發展提供良好的思路,從而可以加快企業創新.就技術層面而言,業務層采用B/S架構模式,選用SSH框架進行開發,實現分層處理.從用戶的角度出發,根據不同的權限設定,系統共分了管理員和普通用戶兩種角色,管理員包括系統管理員、知識管理員和社區管理員,普通用戶包括部門領導和普通員工.其中系統管理員負責知識維護、公告以及問卷的發布與刪除以及知識統計等工作,知識管理員具有新建、修改和刪除的權限,社區管理員主要負責論壇板塊的管理.普通用戶是系統的主要受眾群體,根據不同的職能層級,劃分不同的權限.交互層提供了用戶使用系統的接口,用戶可以通過PC端或者移動終端的瀏覽器來訪問H_EKMS,真正實現隨時隨地的知識共享與應用.應用層是系統的功能模塊,也是系統的核心組件,具有靈活的擴展性.
(1)H_EKMS知識推薦模塊設計
EKMS不同于電商網站,由于電商網站的用戶群體非常龐大,所以推薦系統一般采用基于物品的協同過濾算法(ItemCF),這樣可以進一步提高計算的速度.考慮到企業員工人數相對固定而知識量逐漸增加的問題,本文選擇基于用戶的協同過濾(UserCF)方法作為系統的推薦算法,主要使用企業員工與系統交互時所產生的反饋數據完成整個推薦過程.基于用戶的協同過濾算法基本思想是通過計算用戶的相似度來找到其近鄰,然后根據近鄰對其未評分的物品的評分進行評分的預測,最后將預測評分較高的物品推薦給當前用戶.基本推薦流程見圖3.

圖3 基于Hadoop的EKMS知識推薦流程
首先,計算用戶的評分,得到User-Item評分矩陣,由于并不是所有用戶都會對所閱讀的文檔進行評分,所以得到的是一個稀疏度較高矩陣.
其次,根據得到User-Item評分矩陣,通過Useri和Userj對所有文檔的評分來計算用戶的相似度,獲得當前用戶的近鄰.常用的相似度計算方法主要包括Jaccard公式,余弦相似度,皮爾遜相關系數等[13].本文選擇余弦相似度來計算用戶的相似性,計算公式為:

其中,Ixy表示同時被用戶x和用戶y都評分的文檔集合,rxi表示用戶x對文檔i的評分,ryi表示用戶y對于文檔i的評分,Ix和Iy分別表示用戶x和用戶y的所評分文檔集合.
最后,計算推薦結果.由上一步可以得到當前用戶的近鄰,根據近鄰對當前用戶未評分的文檔的評分進行加權求和即可得到當前用戶對文檔的預測評分.計算公式為:

其中,predxi代表用戶x對未評分的文檔i的預測評分,rˉx代表用戶x對所評過分的文檔的平均評分,rˉx代表用戶y對所評過分的文檔的平均評分,Nu代表近鄰集合.
通過以上分析,編寫MapReduce程序實現基于用戶的協同過濾算法,可以有效地解決傳統的協同過濾算法擴展性的問題,對評分數據進行離線計算,即可得到推薦的文檔及相應的預測評分的推薦列表,將推薦列表存儲在HBase或者其他的數據庫中,提供前端在線的個性化服務,至此也就完成了整個推薦過程.
(2)實驗數據與開發環境
本文通過虛擬化平臺VMware Workstation 12 Pro搭建Hadoop集群環境,Linux操作系統選擇ubuntu-12.04.5,Hadoop版本為Hadoop-2.7.1,JDK版本為JDK1.8,開發工具為Eclipse,Hadoop集群由5臺虛擬主機組成,采用完全分布式模式,其中s0為NameNode,S1-S3為DataNode,S4為輔助NameNode對基于MapReduce的UserCF算法的測試采用Book-Crossing數據集,該數據集包括圖書社區的278 858個用戶對271 379本書的評分信息,本文共抽取82 690條記錄進行模擬實驗,包括7874個用戶的評分信息.
(3)結果分析
由(2)可知,S1-S3為DataNode,本文將數據集劃為4份,分別選取1968、3937、5905和7874個用戶的評分數據,在不同的集群規模上進行計算(選取的DataNode依次為S1,S1和S2,S1、S2和S3).采用加速比進行性能評價,其計算公式為:

其中,Ts表示固定規模數據集下在單個DataNode的運行時間,Tn表示固定規模數據集下在n個DataNode的運行時間.具體結果見圖4.

圖4 UserCF加速比
如圖4所示,隨著DataNode節點的增加,加速比大致呈現出線性增加的趨勢,能夠進一步說明對于相同數量的數據集而言,通過增加計算節點的數量,可以提升數據處理的效率.可以看出當數據量較小時,加速比的變化趨勢相對平緩,說明對于較小的數據集而言,通過增加計算節點的數量并不能夠顯著提升計算效率,這也進一步說明Hadoop更加適合處理規模較大的數據集.由于用戶的評分數據十分稀疏,所以在Hadoop平臺上實現基于用戶的協同過濾算法可以充分發揮分布式并行計算的優勢,從而有效解決算法的擴展性問題.
在大數據技術的背景下,通過對KMS架構再思考,結合開源的、有龐大社區支持的Hadoop云平臺以及Hadoop生態圈的其他大數據技術,以用戶行為模式和人機交互為出發點,以知識的共享、應用和創新為落腳點,構建了更加個性化和智能化的H_EKMS,可以有效解決企業人員使用KMS積極性不高的窘境,并提高企業海量數據的存儲于處理的能力.著重分析基于Hadoop的知識管理框架模型和系統的邏輯架構,考慮到知識大爆炸、信息過載的問題,提出了推薦系統在EKMS的應用.最后,詳細分析知識推薦功能模塊實現思路和關鍵技術,采用了分布式MapReduce程序實現基于用戶的協同過濾算法,有效地解決協同過濾算法帶來的擴展性問題.本文構建的EKMS是基于Hadoop 2.0的,主要采用Mapreduce實現數據的批處理,而Hadoop 2.0的資源管理系統YARN(Yet Another Resource Negotiator)可以支持多種計算框架,如Spark,Storm等,隨著企業知識管理的業務場景不斷豐富,對計算框架進行整合,實現低延遲大數據處理有待進一步研究.