1 總體設(shè)計(jì)
根據(jù)學(xué)校人工智能實(shí)驗(yàn)室理念架構(gòu),按照模塊化的設(shè)計(jì)思想,整個(gè)實(shí)訓(xùn)實(shí)驗(yàn)室結(jié)構(gòu)規(guī)劃如下:
在120人規(guī)模的實(shí)驗(yàn)室室建設(shè)中,使用先進(jìn)的多租戶技術(shù)將實(shí)驗(yàn)室分為30個(gè)實(shí)驗(yàn)組(每組4人),并為授課教師提供獨(dú)立實(shí)驗(yàn)環(huán)境,除管理學(xué)生實(shí)驗(yàn)內(nèi)容外,可同時(shí)進(jìn)行科研項(xiàng)目開(kāi)發(fā)。
實(shí)驗(yàn)室依據(jù)業(yè)務(wù)屬性,共分為3個(gè)功能區(qū):
1)實(shí)驗(yàn)區(qū):學(xué)生學(xué)習(xí)人工智能實(shí)驗(yàn)室課程內(nèi)容和實(shí)際操作實(shí)驗(yàn)課程的區(qū)域,根據(jù)每組學(xué)生數(shù)量配置終端(PC);
2)實(shí)驗(yàn)設(shè)備區(qū):放置實(shí)驗(yàn)室實(shí)驗(yàn)設(shè)備的區(qū)域,包括服務(wù)器、網(wǎng)絡(luò)設(shè)備和軟件,所有的實(shí)驗(yàn)內(nèi)容均運(yùn)行在該實(shí)驗(yàn)設(shè)備區(qū)內(nèi);
3)實(shí)驗(yàn)管理區(qū):老師管理區(qū)和演示區(qū),負(fù)責(zé)演示實(shí)驗(yàn)課程內(nèi)容并對(duì)所有實(shí)驗(yàn)組的實(shí)驗(yàn)設(shè)備做監(jiān)控和管理。
學(xué)生可分為不同實(shí)驗(yàn)小組進(jìn)行實(shí)戰(zhàn)練習(xí),每個(gè)小組內(nèi)不超過(guò)5人,集群可將計(jì)算、存儲(chǔ)資源隔離,使實(shí)驗(yàn)小組間底層隔離,互不影響;教師區(qū)實(shí)驗(yàn)設(shè)備性能較高,除帶領(lǐng)學(xué)生外,還可承接校內(nèi)大數(shù)據(jù)集中、應(yīng)用開(kāi)發(fā)等項(xiàng)目。
2 人工智能一體機(jī)方案
服務(wù)器將按照學(xué)校要求提供對(duì)應(yīng)配置的人工智能一體機(jī),提供企業(yè)級(jí)機(jī)架式(非刀片式)服務(wù)器,模塊化架構(gòu),可堆疊,優(yōu)先考慮高密度服務(wù)器。通過(guò)軟硬件一體化裝置實(shí)現(xiàn)計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)、虛擬化和應(yīng)用融合的緊密集成的平臺(tái)。
每個(gè)獨(dú)立物理計(jì)算節(jié)點(diǎn)的技術(shù)要求如下:
1、系統(tǒng)擴(kuò)展性和擴(kuò)容性:采用橫向擴(kuò)展的架構(gòu),可隨著節(jié)點(diǎn)的增加而使得CPU、內(nèi)存、存儲(chǔ)、網(wǎng)絡(luò)等均在一種平衡模式上增加,確保擴(kuò)展沒(méi)有瓶頸。支持在線升級(jí),保證隨數(shù)據(jù)存儲(chǔ)和計(jì)算需求的增長(zhǎng)而平滑升級(jí)。平臺(tái)由多個(gè)單機(jī)組成的大數(shù)據(jù)集群架構(gòu),所有組件可選配萬(wàn)兆以太網(wǎng)或者Infiniband網(wǎng)絡(luò)或者千兆以太網(wǎng)互聯(lián)。為保證平臺(tái)7×24小時(shí)連續(xù)可用性,系統(tǒng)必須支持在線擴(kuò)展,系統(tǒng)擴(kuò)展時(shí)不需要停機(jī),系統(tǒng)擴(kuò)展時(shí),平臺(tái)整體性能保持基本同比增長(zhǎng)
2、關(guān)鍵應(yīng)用的高可用性:采用工程化設(shè)計(jì),可提供高級(jí)別的高可用性。所有故障類型均可得到防護(hù),包括磁盤(pán)、服務(wù)器、網(wǎng)絡(luò)等簡(jiǎn)單故障,以及站點(diǎn)故障和人為失誤等復(fù)雜故障。擁有完整的冗余的硬件保護(hù),包括冗余的供電電源、冗余的風(fēng)扇等。
3、支持PCIE-SSD閃存加速:允許用戶將頻繁訪問(wèn)的表數(shù)據(jù)保存在SSD中緩存中,同時(shí)不常訪問(wèn)的數(shù)據(jù)仍保存在磁盤(pán)中。這種方式兼具SSD的高性能與磁盤(pán)的大容量和低成本。允許用戶任意指定數(shù)據(jù)庫(kù)表、分區(qū)和段的數(shù)據(jù)駐留在SSD上。在SSD閃存中實(shí)現(xiàn)列式存儲(chǔ),更進(jìn)一步提高SSD閃存加速效果,在TPC-DS基準(zhǔn)測(cè)試中性能提升10倍以上。
4、通過(guò)中斷優(yōu)化、內(nèi)核優(yōu)化、BIOS優(yōu)化、NUMA優(yōu)化實(shí)現(xiàn)分布式處理能力提升。
3 人工智能教學(xué)平臺(tái)方案
教學(xué)平臺(tái)為整個(gè)系統(tǒng)提供教學(xué)、教務(wù)管理功能,提供班級(jí)、教師、學(xué)生的管理權(quán)限、課程計(jì)劃、學(xué)習(xí)記錄、學(xué)習(xí)成績(jī)、實(shí)驗(yàn)報(bào)告等管理功能,系統(tǒng)采用B/S架構(gòu),兼容主流瀏覽器,如谷歌、火狐等。教學(xué)平臺(tái)主要功能如下:
3.1 教學(xué)管理功能
支持管理員、班主任、教師、學(xué)生等多種角色。
支持學(xué)籍管理,包括:班級(jí)的增刪、編輯;教師的增刪、編輯;學(xué)生的增刪、編輯。
3.1.1 班級(jí)管理
提供對(duì)專業(yè)下屬班級(jí)的增加、刪除、修改、查詢功能。
3.1.2 學(xué)生管理
提供對(duì)班級(jí)內(nèi)學(xué)生的管理,學(xué)生內(nèi)容包含姓名、學(xué)號(hào)、所屬班級(jí)、所屬專業(yè)、聯(lián)系手機(jī)、登錄次數(shù)等內(nèi)容。
3.1.3 交流日志查詢
對(duì)實(shí)訓(xùn)機(jī)分享交流的內(nèi)容進(jìn)行查詢,包含交流IP、相關(guān)學(xué)員、相關(guān)老師、實(shí)訓(xùn)機(jī)編號(hào)、交流內(nèi)容等內(nèi)容。
3.1.4 成績(jī)管理
對(duì)于學(xué)習(xí)中心在線學(xué)習(xí)的學(xué)習(xí)考核成績(jī)進(jìn)行管理,包含查詢及刪除等功能。
3.1.5 考試管理
支持考試管理,包括:增刪、編輯試題;發(fā)布班級(jí)考試通告;在線考試,并自動(dòng)完成批閱(客觀題);查詢考試成績(jī)及正確答案;生成考試報(bào)表,并可查看及下載。
3.2 在線學(xué)習(xí)功能
3.2.1 開(kāi)通課程計(jì)劃
對(duì)于學(xué)習(xí)開(kāi)課計(jì)劃的字段內(nèi)容包含計(jì)劃名稱、授課講師、授課時(shí)間段、開(kāi)通狀態(tài)、允許申請(qǐng)周期,允許申請(qǐng)人數(shù)等,功能提供綁定課程計(jì)劃相關(guān)實(shí)訓(xùn)平臺(tái)課程、授課助教、云試驗(yàn)機(jī)綁定、實(shí)驗(yàn)任務(wù)綁定等功能。
3.2.2 學(xué)習(xí)記錄功能
提供每個(gè)學(xué)生在學(xué)習(xí)中心平臺(tái)內(nèi)學(xué)習(xí)課程的學(xué)習(xí)記錄,包含日期、計(jì)劃、課程、章節(jié)、學(xué)習(xí)IP等。
3.2.3 學(xué)習(xí)行為報(bào)表
對(duì)所有學(xué)生的課程學(xué)習(xí)記錄進(jìn)行統(tǒng)計(jì),包含個(gè)體統(tǒng)計(jì)、班級(jí)統(tǒng)計(jì)、全體統(tǒng)計(jì)等。
3.3 在線實(shí)訓(xùn)功能
3.3.1 學(xué)生實(shí)訓(xùn)操作
提供學(xué)生根據(jù)姓名、學(xué)號(hào)、密碼登錄系統(tǒng)進(jìn)行實(shí)訓(xùn)操作,學(xué)生只需安裝瀏覽即可進(jìn)行試驗(yàn)任務(wù)操作;提供實(shí)訓(xùn)課程在線學(xué)習(xí)功能、試驗(yàn)機(jī)在線操作、試驗(yàn)報(bào)告提交、試驗(yàn)機(jī)界面截圖、記錄課程學(xué)習(xí)時(shí)長(zhǎng)等。
3.3.2 測(cè)驗(yàn)習(xí)題管理
提供對(duì)課程相關(guān)的習(xí)題管理,題型包含單選、多選、判斷題等類型,對(duì)習(xí)題進(jìn)行增、刪、改、查操作。
3.4 后臺(tái)管理功能
3.4.1 分級(jí)權(quán)限功能
系統(tǒng)分為總管理員、助教等二級(jí)管理角色,總管理員進(jìn)行管理所有的功能點(diǎn),助教可以進(jìn)行班級(jí)管理、學(xué)生管理、開(kāi)課計(jì)劃制作、試驗(yàn)機(jī)遠(yuǎn)程協(xié)助等。
3.4.2 試驗(yàn)機(jī)桌面分享
提供試驗(yàn)機(jī)桌面分享功能,如學(xué)生在學(xué)習(xí)、操作云試驗(yàn)機(jī)的過(guò)程中,有問(wèn)題可以向老師發(fā)起協(xié)助請(qǐng)求,助教在收到請(qǐng)求時(shí),可以遠(yuǎn)程訪問(wèn)學(xué)生的試驗(yàn)機(jī),并指導(dǎo)如何操作。
3.4.3 平臺(tái)集群架構(gòu)支撐
平臺(tái)基于x86服務(wù)器本地的計(jì)算與存儲(chǔ)資源,分布式存儲(chǔ),計(jì)算集群可以動(dòng)態(tài)調(diào)整,從數(shù)臺(tái)到數(shù)千臺(tái)之間彈性擴(kuò)展,按需構(gòu)建應(yīng)用。支持VMWare、HyperV等虛擬化軟件。
集成MapReduce、Spark、Storm、Tez、Sparkstreaming、Flink 等多種計(jì)算框架,利用yarn資源管理做統(tǒng)一管理,可在同一份數(shù)據(jù)集上運(yùn)行多種計(jì)算,支持離線計(jì)算、實(shí)時(shí)計(jì)算、流式計(jì)算、全文檢索、數(shù)據(jù)挖掘等數(shù)據(jù)應(yīng)用能力。
3.4.4 平臺(tái)集群管理功能
平臺(tái)采用B/S架構(gòu)提供實(shí)訓(xùn)機(jī)集群管理,對(duì)實(shí)訓(xùn)室所屬服務(wù)器進(jìn)行新增、刪除、備份、恢復(fù)及遷移功能。
集群基于分布式管理,提供大數(shù)據(jù)集群管理系統(tǒng),功能包含Hadoop、Hive、HBase、Sqoop、Flume、kafka、Spark、Scala等節(jié)點(diǎn)部署及管理,提供實(shí)時(shí)監(jiān)控集群的CPU、內(nèi)存、硬盤(pán)等使用率及相關(guān)信息,可以對(duì)管理節(jié)點(diǎn)、計(jì)算節(jié)點(diǎn)進(jìn)行啟動(dòng)、停止等操作管理。
平臺(tái)具有靈活性和可管理性。管理員可以對(duì)試驗(yàn)平臺(tái)內(nèi)的虛擬資源創(chuàng)建、監(jiān)控、資源調(diào)整、快照和遷移等進(jìn)行靈活的調(diào)整,方便用戶得到足夠的計(jì)算和存儲(chǔ)資源。
4 人工智能實(shí)驗(yàn)系統(tǒng)方案
4.1 系統(tǒng)方案
4.1.2 容器化部署
為了方便系統(tǒng)后期擴(kuò)容升級(jí)。本次系統(tǒng)采用基于docker swarm的容器化本地部署方式。
容器化部署介紹
開(kāi)發(fā)過(guò)程中一個(gè)常見(jiàn)的問(wèn)題是環(huán)境一致性問(wèn)題。由于開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境、生產(chǎn)環(huán)境不一致,導(dǎo)致有些bug并未在開(kāi)發(fā)過(guò)程中被發(fā)現(xiàn)。而Docker的鏡像提供了除內(nèi)核外完整的運(yùn)行時(shí)環(huán)境,確保了應(yīng)用運(yùn)行環(huán)境一致性。
由于Docker確保了執(zhí)行環(huán)境的一致性,使得應(yīng)用的遷移更加容易。Docker可以在很多平臺(tái)上運(yùn)行,無(wú)論是物理機(jī)、虛擬機(jī)、公有云、私有云,甚至是筆記本,其運(yùn)行結(jié)果是一致的。因此用戶可以很輕易的將在一個(gè)平臺(tái)上運(yùn)行的應(yīng)用,遷移到另一個(gè)平臺(tái)上,而不用擔(dān)心運(yùn)行環(huán)境的變化導(dǎo)致應(yīng)用無(wú)法正常運(yùn)行的情況。
Docker使用的分層存儲(chǔ)以及鏡像的技術(shù),使得應(yīng)用重復(fù)部分的復(fù)用更為容易,也使得應(yīng)用的維護(hù)更新更加簡(jiǎn)單,基于基礎(chǔ)鏡像進(jìn)一步擴(kuò)展鏡像也變得非常簡(jiǎn)單。
Docker容器化部署具有以下優(yōu)勢(shì):
(1)標(biāo)準(zhǔn)化應(yīng)用發(fā)布,docker容器包含了運(yùn)行環(huán)境和可執(zhí)行程序,可以跨平臺(tái)和主機(jī)使用;
(2)節(jié)約時(shí)間,快速部署和啟動(dòng),VM啟動(dòng)一般是分鐘級(jí),docker容器啟動(dòng)是秒級(jí);
(3)方便構(gòu)建基于SOA架構(gòu)或微服務(wù)架構(gòu)的系統(tǒng),通過(guò)服務(wù)編排,更好的松耦合;
(4)節(jié)約成本,以前一個(gè)虛擬機(jī)至少需要幾個(gè)G的磁盤(pán)空間,docker容器可以減少到MB級(jí);
(5)方便持續(xù)集成,通過(guò)與代碼進(jìn)行關(guān)聯(lián)使持續(xù)集成非常方便;
(6)可以作為集群系統(tǒng)的輕量主機(jī)或節(jié)點(diǎn),在IaaS平臺(tái)上,已經(jīng)出現(xiàn)了CaaS,通過(guò)容器替代原來(lái)的主機(jī)。
4.1.3 平臺(tái)功能
提供圖形化拖拽工具構(gòu)建相關(guān)業(yè)務(wù)模型,支持 用戶進(jìn)行數(shù)據(jù)集成、數(shù)據(jù)預(yù)處理、特征工程、模型訓(xùn)練、模型發(fā)布等整套模型開(kāi)發(fā)流程,降低數(shù)據(jù)挖掘開(kāi)發(fā)門(mén)檻。
支持多種數(shù)據(jù)源接入,支持傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)、MPP數(shù)據(jù)庫(kù)、HDFS(txt、ORC、Parquet等數(shù)據(jù)格式)、Hive、HBase、Elastic Search、本地文件(CSV、JSON等數(shù)據(jù)格式)等多種數(shù)據(jù)存儲(chǔ)方式接入。
提供豐富的分布式統(tǒng)計(jì)算法、機(jī)器學(xué)習(xí)及深度 學(xué)習(xí)基礎(chǔ)算法庫(kù),包括數(shù)據(jù)預(yù)處理,數(shù)值分析,特 征工程、分類、聚類、回歸、深度學(xué)習(xí)、驗(yàn)證評(píng)估、 NLP 等通用算法,并提供自定義算法支持,方便數(shù)據(jù) 分析人員進(jìn)行數(shù)據(jù)分析與挖掘的相關(guān)工作。
整合主流深度學(xué)習(xí)框架,包括 Tensorflow、MXNet,通過(guò)將深度學(xué)習(xí)框架與Hadoop體系融合,幫助數(shù)據(jù)科學(xué)家以及分析人員敏捷構(gòu)建DNN,CNN等模型,使用全量數(shù)據(jù)樣本進(jìn)行模型訓(xùn)練,提高算法 的精準(zhǔn)度。
支持挖掘標(biāo)準(zhǔn)PMML模型導(dǎo)入導(dǎo)出,方便模型管理與使用。支持模型協(xié)作,多人協(xié)作模型開(kāi)發(fā)模式。支持基于模型訓(xùn)練結(jié)果,通過(guò)圖形界面構(gòu)建相應(yīng)的應(yīng)用服務(wù),并通過(guò)容器化的方式打包與運(yùn)行。
4.2 數(shù)據(jù)抽取
數(shù)據(jù)抽取系統(tǒng)是本項(xiàng)目建設(shè)的基礎(chǔ)設(shè)施,也體現(xiàn)了數(shù)據(jù)集成的一種模式,它的優(yōu)點(diǎn)是簡(jiǎn)化數(shù)據(jù)集成拓?fù)浣Y(jié)構(gòu),提供共享基礎(chǔ)服務(wù),對(duì)于跨部門(mén)大范圍的數(shù)據(jù)整合與服務(wù),是一種集約化的技術(shù)解決方案。
4.2.1 技術(shù)框架
數(shù)據(jù)交換平臺(tái)框架如下圖所示,主要包括批量數(shù)據(jù)交換和實(shí)時(shí)數(shù)據(jù)服務(wù)。
1、批量數(shù)據(jù)交換
批量數(shù)據(jù)交換服務(wù)用于源系統(tǒng)數(shù)據(jù)獲取、主數(shù)據(jù)管理、數(shù)據(jù)容災(zāi)等數(shù)據(jù)物理落地的應(yīng)用場(chǎng)景。
(1)數(shù)據(jù)交換服務(wù)
批量數(shù)據(jù)交換方式包括基于日志變化的數(shù)據(jù)捕獲模式和前置機(jī)、中間庫(kù)的模式。
前置機(jī)、中間庫(kù)的模式(傳統(tǒng)的數(shù)據(jù)交換模式):先由源系統(tǒng)開(kāi)發(fā)單位開(kāi)發(fā)接口,推送數(shù)據(jù)至中間庫(kù),再通過(guò)交換平臺(tái)將中間庫(kù)的數(shù)據(jù)抽取至數(shù)據(jù)中心。此種方式適合更新頻次不高的行業(yè)基礎(chǔ)數(shù)據(jù),可以通過(guò)制定定期交換的計(jì)劃,使生產(chǎn)庫(kù)數(shù)據(jù)推送的頻率與準(zhǔn)確性得到保證。
(2)數(shù)據(jù)轉(zhuǎn)換服務(wù)
數(shù)據(jù)轉(zhuǎn)換服務(wù)是對(duì)采集后的數(shù)據(jù)按數(shù)據(jù)中心的數(shù)據(jù)標(biāo)準(zhǔn)執(zhí)行數(shù)據(jù)的清洗、轉(zhuǎn)換與加載。
2、實(shí)時(shí)數(shù)據(jù)服務(wù)
實(shí)時(shí)數(shù)據(jù)交換服務(wù)是基于ESB等SOA基礎(chǔ)設(shè)施,將數(shù)據(jù)中心的數(shù)據(jù)以服務(wù)接口的形式供各類業(yè)務(wù)系統(tǒng)實(shí)時(shí)調(diào)用。
4.2.2 平臺(tái)功能
數(shù)據(jù)交換平臺(tái)主要功能是定義數(shù)據(jù)交換存儲(chǔ)策略、基礎(chǔ)數(shù)據(jù)交換標(biāo)準(zhǔn);對(duì)授權(quán)用戶開(kāi)放業(yè)務(wù)數(shù)據(jù)訪問(wèn)的定制服務(wù);業(yè)務(wù)管理信息系統(tǒng)的信息流轉(zhuǎn),根據(jù)需要提供業(yè)務(wù)之間的數(shù)據(jù)共享與交換,包括以下幾個(gè)部分:
1、數(shù)據(jù)導(dǎo)入管理
數(shù)據(jù)導(dǎo)入管理需實(shí)現(xiàn)數(shù)據(jù)抽取、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)裝載功能。數(shù)據(jù)抽取實(shí)現(xiàn)從不同的數(shù)據(jù)源中抽取出系統(tǒng)所需數(shù)據(jù),包括全量抽取、增量抽取、主從抽取、條件抽取、聯(lián)合抽取、文件析取、Web Service抽取等多種方式。數(shù)據(jù)轉(zhuǎn)換需要將所抽取的數(shù)據(jù)轉(zhuǎn)換為符合數(shù)據(jù)中心標(biāo)準(zhǔn)的數(shù)據(jù),包括映射變換、行列互換、自定義轉(zhuǎn)換等多種靈活的轉(zhuǎn)換形式。數(shù)據(jù)裝載,在數(shù)據(jù)轉(zhuǎn)換成所需格式后需要將抽取過(guò)來(lái)的數(shù)據(jù)裝載到資源庫(kù)。
2、數(shù)據(jù)導(dǎo)出管理
實(shí)現(xiàn)數(shù)據(jù)中心的各種形式的數(shù)據(jù)導(dǎo)出,包括EXCEL、XML等中間格式。
3、數(shù)據(jù)共享
針對(duì)各種應(yīng)用場(chǎng)景對(duì)數(shù)據(jù)需求的不同,提供相應(yīng)的數(shù)據(jù)共享實(shí)現(xiàn)方式。對(duì)于一些數(shù)據(jù)服務(wù)內(nèi)容涉及與其他行業(yè)數(shù)據(jù)共享,要求采用遠(yuǎn)程訪問(wèn)的方法,保證平臺(tái)無(wú)關(guān)性,實(shí)現(xiàn)跨平臺(tái)的互操作,比如Web Service訪問(wèn)接口等;對(duì)于行業(yè)內(nèi)的數(shù)據(jù)共享,要求采用數(shù)據(jù)交換的方式,實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)間的數(shù)據(jù)交換。
4、數(shù)據(jù)服務(wù)
在數(shù)據(jù)資源庫(kù)之上建立數(shù)據(jù)封裝層,將數(shù)據(jù)封裝為Rest風(fēng)格的Web Service規(guī)范的接口,數(shù)據(jù)中心的庫(kù)表通常情況下不暴露給數(shù)據(jù)需求方直接調(diào)用。
4.3 數(shù)據(jù)預(yù)處理
系統(tǒng)按照數(shù)據(jù)中心統(tǒng)一標(biāo)準(zhǔn)規(guī)范對(duì)各部門(mén)共享數(shù)據(jù)進(jìn)行處理,實(shí)現(xiàn)中心前置庫(kù)至融合庫(kù)整個(gè)過(guò)程多個(gè)環(huán)節(jié)的數(shù)據(jù)抽取、清洗、轉(zhuǎn)換、比對(duì)和加載的管理。
4.3.1 系統(tǒng)架構(gòu)
數(shù)據(jù)融合系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)抽取、轉(zhuǎn)換和加載的數(shù)據(jù)加工處理核心功能,并利用二次開(kāi)發(fā)接口開(kāi)發(fā)數(shù)據(jù)處理任務(wù)管理,實(shí)現(xiàn)數(shù)據(jù)處理的任務(wù)定義、任務(wù)監(jiān)控;開(kāi)發(fā)數(shù)據(jù)處理的規(guī)則管理,實(shí)現(xiàn)數(shù)據(jù)處理的規(guī)則定義、規(guī)則查詢,可以調(diào)用這些規(guī)則進(jìn)行數(shù)據(jù)處理;開(kāi)發(fā)數(shù)據(jù)目錄,實(shí)現(xiàn)匯集庫(kù)、基礎(chǔ)庫(kù)、融合庫(kù)的數(shù)據(jù)資源目錄的維護(hù)和查詢。
下圖為數(shù)據(jù)融合系統(tǒng)功能架構(gòu)圖,構(gòu)建的數(shù)據(jù)加工處理子系統(tǒng),實(shí)現(xiàn)了中心前置庫(kù)和應(yīng)用系統(tǒng)歷史庫(kù)到匯集庫(kù)的數(shù)據(jù)標(biāo)準(zhǔn)化處理、匯集庫(kù)到基礎(chǔ)庫(kù)的數(shù)據(jù)比對(duì)、抽取處理、基礎(chǔ)庫(kù)到融合庫(kù)的數(shù)據(jù)加載,以及匯集庫(kù)到融合庫(kù)的數(shù)據(jù)關(guān)聯(lián)、加載處理。
4.3.2 系統(tǒng)功能
數(shù)據(jù)融合系統(tǒng)主要由數(shù)據(jù)融合方法和過(guò)程、任務(wù)管理、規(guī)則管理和數(shù)據(jù)目錄管理4個(gè)子系統(tǒng)組成。
本系統(tǒng)能夠?qū)崿F(xiàn)以下功能:
1、對(duì)數(shù)據(jù)中心除決策支持各種主題或?qū)n}信息資源以外的信息進(jìn)行編目,顆粒度到表一級(jí),數(shù)據(jù)目錄能夠按數(shù)據(jù)類型、部門(mén)、業(yè)務(wù)主題等多個(gè)維度進(jìn)行分類。
2、目錄管理與安全管理功能相結(jié)合,提供權(quán)限控制功能,只有擁有相應(yīng)權(quán)限的用戶才能夠?qū)Ω黝惸夸浶畔⑦M(jìn)行維護(hù)或查詢。
3、使用主流數(shù)據(jù)模型設(shè)計(jì)。如星形結(jié)構(gòu)、雪花型結(jié)構(gòu)等。
4、提供數(shù)據(jù)抽取、轉(zhuǎn)換和加載的數(shù)據(jù)加工處理核心功能。
5、提供數(shù)據(jù)處理規(guī)則管理,實(shí)現(xiàn)數(shù)據(jù)處理的規(guī)則定義、規(guī)則查詢。
6、提供數(shù)據(jù)處理任務(wù)管理,實(shí)現(xiàn)數(shù)據(jù)處理的任務(wù)定義、任務(wù)配置、任務(wù)監(jiān)控。
4.4 數(shù)據(jù)探索
數(shù)據(jù)探索平臺(tái)主要提供針對(duì)數(shù)據(jù)和服務(wù)的管理,并對(duì)所提供的數(shù)據(jù)和服務(wù)的獲取接口和資源目錄進(jìn)行管理,方便與各類專題數(shù)據(jù)進(jìn)行有效整合。數(shù)據(jù)管理平臺(tái)包含且不僅包含如下功能:元數(shù)據(jù)管理和數(shù)據(jù)質(zhì)量管理、數(shù)據(jù)規(guī)范符合性審查服務(wù)管理。
4.4.1 元數(shù)據(jù)管理
元數(shù)據(jù)管理是保證數(shù)據(jù)準(zhǔn)確性的重要技術(shù)手段,大數(shù)據(jù)平臺(tái)因?yàn)槠脚_(tái)混合搭配會(huì)造成數(shù)據(jù)分開(kāi)存儲(chǔ)和使用,需要采取集中式管理模式進(jìn)行統(tǒng)一元數(shù)據(jù)管理,滿足業(yè)務(wù)人員和技術(shù)人員的元數(shù)據(jù)查詢、分析、維護(hù)的需求。元數(shù)據(jù)管理系統(tǒng)貫穿數(shù)據(jù)中心的整個(gè)生命周期,為用戶提供高質(zhì)量、準(zhǔn)確和易于管理的數(shù)據(jù)。
元數(shù)據(jù)涵蓋了數(shù)據(jù)中心建設(shè)過(guò)程中源系統(tǒng)、數(shù)據(jù)交換、數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)應(yīng)用的全過(guò)程,如下圖所示,在不同階段所產(chǎn)生的各類元數(shù)據(jù),均需要統(tǒng)一的規(guī)劃與管理。
數(shù)據(jù)管理系統(tǒng)的功能主要包括:
1、指標(biāo)庫(kù)管理
指標(biāo)是業(yè)務(wù)應(yīng)用系統(tǒng)中重要的數(shù)據(jù)資源之一,對(duì)業(yè)務(wù)運(yùn)行分析和管理決策支持起到重要的支撐作用。指標(biāo)庫(kù)管理應(yīng)用的目標(biāo)是提高指標(biāo)的規(guī)范性以及指標(biāo)管理的規(guī)范性,保障系統(tǒng)用戶對(duì)指標(biāo)理解一致,同時(shí)保障系統(tǒng)與外部系統(tǒng)有效互動(dòng)。
2、業(yè)務(wù)術(shù)語(yǔ)自助學(xué)習(xí)
業(yè)務(wù)術(shù)語(yǔ)自助學(xué)習(xí)應(yīng)用是面向業(yè)務(wù)操作人員的業(yè)務(wù)術(shù)語(yǔ)查詢和幫助應(yīng)用,提供符合業(yè)務(wù)人員操作習(xí)慣的功能界面,以靈活、便捷的自助學(xué)習(xí)方式,增進(jìn)業(yè)務(wù)用戶對(duì)系統(tǒng)中相關(guān)報(bào)表、指標(biāo)、維度和應(yīng)用服務(wù)等術(shù)語(yǔ)的理解,幫助用戶更好地使用系統(tǒng)。
3、維表庫(kù)管理
維表庫(kù)管理是指基于元數(shù)據(jù),實(shí)現(xiàn)對(duì)數(shù)據(jù)源系統(tǒng)維表庫(kù)、數(shù)據(jù)中心標(biāo)準(zhǔn)維表庫(kù)分別管理,從而建立一套標(biāo)準(zhǔn)的維表庫(kù)體系,實(shí)現(xiàn)標(biāo)準(zhǔn)維表庫(kù)與源系統(tǒng)維表庫(kù)之間的關(guān)聯(lián)管理,其目的是有效處理源系統(tǒng)維表庫(kù)與標(biāo)準(zhǔn)維表庫(kù)之間的維度數(shù)據(jù)統(tǒng)一,支撐本期業(yè)務(wù)應(yīng)用系統(tǒng)與源系統(tǒng)的數(shù)據(jù)質(zhì)量協(xié)同和兩級(jí)數(shù)據(jù)中心元數(shù)據(jù)互通。
4、接口管理
本期業(yè)務(wù)系統(tǒng)數(shù)據(jù)交換中存在大量數(shù)據(jù)接口,基于元數(shù)據(jù)進(jìn)行接口管理并建立接口元數(shù)據(jù)維護(hù)機(jī)制,能夠提高接口元數(shù)據(jù)質(zhì)量,為源系統(tǒng)變更協(xié)同管理奠定基礎(chǔ)。
5、輔助應(yīng)用優(yōu)化
元數(shù)據(jù)對(duì)數(shù)據(jù)中心的數(shù)據(jù)、數(shù)據(jù)加工過(guò)程以及數(shù)據(jù)間的關(guān)系提供準(zhǔn)確的描述,利用血緣分析、影響分析和實(shí)體關(guān)聯(lián)分析等元數(shù)據(jù)分析功能,可識(shí)別與系統(tǒng)應(yīng)用相關(guān)的技術(shù)資源,結(jié)合應(yīng)用生命周期管理過(guò)程,輔助進(jìn)行系統(tǒng)應(yīng)用優(yōu)化。
6、輔助安全管理
數(shù)據(jù)中心建立完成后,所存儲(chǔ)的數(shù)據(jù)和提供的各類分析應(yīng)用,涉及到各類敏感或涉密信息。因此在數(shù)據(jù)中心建設(shè)過(guò)程中,須采用全面的安全管理機(jī)制和措施來(lái)保障系統(tǒng)的數(shù)據(jù)安全。
元數(shù)據(jù)管理系統(tǒng)安全管理模塊負(fù)責(zé)數(shù)據(jù)中心的數(shù)據(jù)敏感度、涉密性和各環(huán)節(jié)審計(jì)日志記錄管理,對(duì)數(shù)據(jù)中心的數(shù)據(jù)訪問(wèn)和功能使用進(jìn)行有效監(jiān)控。為實(shí)現(xiàn)數(shù)據(jù)中心對(duì)敏感數(shù)據(jù)和涉密信息的訪問(wèn)控制,安全管理模塊應(yīng)以元數(shù)據(jù)為依據(jù),由元數(shù)據(jù)管理模塊提供敏感數(shù)據(jù)定義和涉密信息定義,輔助安全管理模塊完成相關(guān)安全管控操作。
7、數(shù)據(jù)目錄管理
數(shù)據(jù)目錄管理基于元數(shù)據(jù)模型的建立,通過(guò)檢索與樹(shù)狀目錄的形式,快速查找不同類型的數(shù)據(jù)資源,并查看該項(xiàng)數(shù)據(jù)的各項(xiàng)指標(biāo)狀況。
4.4.2 數(shù)據(jù)質(zhì)量管理
數(shù)據(jù)質(zhì)量管理包括對(duì)數(shù)據(jù)源、數(shù)據(jù)源接口、數(shù)據(jù)實(shí)體、處理過(guò)程、數(shù)據(jù)應(yīng)用和業(yè)務(wù)指標(biāo)等相關(guān)內(nèi)容的管控機(jī)制和處理流程,也包括對(duì)數(shù)據(jù)質(zhì)量管控和處理的信息總結(jié)和知識(shí)應(yīng)用等輔助內(nèi)容。
對(duì)于新數(shù)據(jù)的流程為:“錄入——檢查——反饋問(wèn)題——修改”;
對(duì)于已有系統(tǒng)的數(shù)據(jù),流程為“評(píng)估——核查(反饋)——轉(zhuǎn)換——入庫(kù)”。
數(shù)據(jù)質(zhì)量管理主要功能包括:源系統(tǒng)變更協(xié)同管理、數(shù)據(jù)質(zhì)量監(jiān)控、數(shù)據(jù)質(zhì)量問(wèn)題處理、數(shù)據(jù)質(zhì)量評(píng)估、數(shù)據(jù)質(zhì)量報(bào)告、數(shù)據(jù)質(zhì)量知識(shí)庫(kù)和數(shù)據(jù)質(zhì)量對(duì)外服務(wù)等:
1、源系統(tǒng)變更協(xié)同管理
源系統(tǒng)的業(yè)務(wù)流程變更或庫(kù)表、維度和接口等內(nèi)容變更,將對(duì)數(shù)據(jù)資源中心各類應(yīng)用系統(tǒng)產(chǎn)生影響。源系統(tǒng)變更協(xié)同管理調(diào)用元數(shù)據(jù)管理模塊分析功能對(duì)源系統(tǒng)變更信息進(jìn)行影響評(píng)估,并將變更信息及時(shí)告知數(shù)據(jù)質(zhì)量管理人員,避免數(shù)據(jù)源變更引起各類應(yīng)用系統(tǒng)數(shù)據(jù)質(zhì)量問(wèn)題。
2、數(shù)據(jù)質(zhì)量監(jiān)控
數(shù)據(jù)質(zhì)量監(jiān)控是根據(jù)預(yù)先配置的規(guī)則或算法,監(jiān)控?cái)?shù)據(jù)采集和規(guī)則校驗(yàn),并依據(jù)稽核和檢查過(guò)程中發(fā)現(xiàn)的數(shù)據(jù)質(zhì)量異常情況進(jìn)行告警和拓?fù)涑尸F(xiàn)的過(guò)程。數(shù)據(jù)質(zhì)量監(jiān)控由9個(gè)主要功能環(huán)節(jié)構(gòu)成,包括數(shù)據(jù)采集、源系統(tǒng)關(guān)鍵數(shù)據(jù)稽核、源系統(tǒng)維表稽核、數(shù)據(jù)實(shí)體檢查、處理過(guò)程檢查、關(guān)鍵指標(biāo)檢查、告警管理、拓?fù)涑尸F(xiàn)和規(guī)則配置。
3、數(shù)據(jù)質(zhì)量問(wèn)題處理
數(shù)據(jù)質(zhì)量問(wèn)題處理模塊提供一個(gè)統(tǒng)一的數(shù)據(jù)質(zhì)量問(wèn)題入口,系統(tǒng)自動(dòng)監(jiān)控所發(fā)現(xiàn)的問(wèn)題以及技術(shù)人員和業(yè)務(wù)人員手工提交的問(wèn)題,統(tǒng)一通過(guò)該入口進(jìn)行問(wèn)題單的填寫(xiě)和提交,并觸發(fā)問(wèn)題處理流程
4、數(shù)據(jù)質(zhì)量評(píng)估
數(shù)據(jù)質(zhì)量評(píng)估包括源接口基礎(chǔ)數(shù)據(jù)質(zhì)量評(píng)估和數(shù)據(jù)資源中心各業(yè)務(wù)系統(tǒng)指標(biāo)關(guān)聯(lián)性分析兩部分。其中,源接口基礎(chǔ)數(shù)據(jù)質(zhì)量評(píng)估由數(shù)據(jù)質(zhì)量管理人員根據(jù)需要發(fā)起,根據(jù)評(píng)估指標(biāo)和評(píng)估方法,對(duì)基礎(chǔ)數(shù)據(jù)的數(shù)據(jù)質(zhì)量進(jìn)行評(píng)價(jià),得到評(píng)估結(jié)果以作為系統(tǒng)質(zhì)量改進(jìn)的參考和依據(jù)。數(shù)據(jù)資源中心系統(tǒng)指標(biāo)關(guān)聯(lián)性分析是通過(guò)對(duì)指標(biāo)進(jìn)行關(guān)聯(lián)性檢查發(fā)現(xiàn)潛在的數(shù)據(jù)質(zhì)量問(wèn)題。
5、數(shù)據(jù)質(zhì)量報(bào)告
數(shù)據(jù)質(zhì)量報(bào)告是對(duì)源系統(tǒng)變更協(xié)同管理、源系統(tǒng)核心數(shù)據(jù)及維表稽核、數(shù)據(jù)資源中心系統(tǒng)日常監(jiān)控以及數(shù)據(jù)質(zhì)量評(píng)估等過(guò)程累積的各種信息進(jìn)行匯總、梳理、統(tǒng)計(jì)和分析,形成統(tǒng)計(jì)報(bào)告的過(guò)程。數(shù)據(jù)質(zhì)量報(bào)告提供了一個(gè)集中展示數(shù)據(jù)中心數(shù)據(jù)質(zhì)量狀況的窗口,供相關(guān)人員總結(jié)經(jīng)驗(yàn)、沉淀知識(shí)和改進(jìn)方法,不斷提高數(shù)據(jù)質(zhì)量管理系統(tǒng)的數(shù)據(jù)質(zhì)量問(wèn)題的處理能力。
6、數(shù)據(jù)質(zhì)量知識(shí)庫(kù)
數(shù)據(jù)質(zhì)量知識(shí)是在數(shù)據(jù)資源中心系統(tǒng)使用及運(yùn)維過(guò)程中,由數(shù)據(jù)質(zhì)量管理子系統(tǒng)收集的有關(guān)數(shù)據(jù)及過(guò)程問(wèn)題的處理經(jīng)驗(yàn)總結(jié)。該類知識(shí)可作為未來(lái)數(shù)據(jù)質(zhì)量問(wèn)題解決方法的參考,并可以按關(guān)鍵字的形式進(jìn)行索引和分類管理。
4.5 特征工程
支持常見(jiàn)特征工程流程,包括特征變換、特征重要性評(píng)估、特征選擇、特征生成等,包括且不限于歸一化、標(biāo)準(zhǔn)化、離散化、one-hot編碼等
支持特征工程自動(dòng)化,包括自動(dòng)特征變換、自動(dòng)特征生成以及自動(dòng)特征選擇等。
4.5.1 數(shù)據(jù)挖掘模塊
Mahout是Apache Software Foundation(ASF)旗下的一個(gè)開(kāi)源項(xiàng)目,提供一些可擴(kuò)展的機(jī)器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實(shí)現(xiàn),旨在幫助開(kāi)發(fā)人員更加方便快捷地創(chuàng)建智能應(yīng)用程序。Mahout包含許多實(shí)現(xiàn),包括聚類、分類、推薦過(guò)濾、頻繁子項(xiàng)挖掘。此外,通過(guò)使用Apache Hadoop庫(kù),Mahout可以有效地?cái)U(kuò)展到分布式計(jì)算中。
MLLib是Spark項(xiàng)目的一個(gè)子模塊,MLlib也提供了一套基于Spark處理引擎的機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘的算法庫(kù)。
4.5.2 數(shù)據(jù)挖掘引擎
主要的機(jī)器學(xué)習(xí)的算法目前在MLlib中都已經(jīng)提供了,分類回歸、聚類、關(guān)聯(lián)規(guī)則、推薦、降維、優(yōu)化、特征抽取篩選、用于特征預(yù)處理的數(shù)理統(tǒng)計(jì)方法、以及算法的評(píng)測(cè)。
目前支持:支持分布式apiori/fp-growth算法;支持分布式k-means/層次聚類算法;支持分布式svm算法;支持分布式神經(jīng)網(wǎng)絡(luò)算法;支持回歸算法;支持分布式隨機(jī)森林算法;支持分布式協(xié)同過(guò)濾算法,支持時(shí)間序列算法;支持分布式?jīng)Q策樹(shù)C5.0算法;支持分布式樸素貝葉斯算法;支持分布式梯度提升樹(shù)。
SparkR是AMPLab發(fā)布的一個(gè)R開(kāi)發(fā)包,為Apache Spark提供了輕量的前端。SparkR提供了Spark中彈性分布式數(shù)據(jù)集(RDD)的API,用戶可以在集群上通過(guò)R shell交互性的運(yùn)行job。處R接口外,也支持Python接口的調(diào)用。
4.6 建模算法
4.6.1 功能概述
本次前沿技術(shù)輔助發(fā)現(xiàn)系統(tǒng)采用了業(yè)界領(lǐng)先的大數(shù)據(jù),人工智能,自然語(yǔ)言處理技術(shù),確保整個(gè)系統(tǒng)能夠更好的輔助前沿技術(shù)發(fā)現(xiàn)。具體算法包括但不限于BERT、序列標(biāo)注、條件隨機(jī)場(chǎng)、LSTM、支持向量機(jī)、邏輯回歸、隨機(jī)森林、線性回歸、決策樹(shù)回歸、K均值聚類、協(xié)同過(guò)濾、關(guān)聯(lián)分析、TF-IDF、Word2Vec、受限玻爾茲曼機(jī)、KMP算法、LCS算法等。
4.6.2 BERT算法
BERT是谷歌公司AI團(tuán)隊(duì)今年十月最新發(fā)布的模型,在機(jī)器閱讀理解頂級(jí)水平測(cè)試SQuAD1.1中表現(xiàn)出驚人成績(jī):全部?jī)蓚€(gè)衡量指標(biāo)上超越人類,并且還在11種不同NLP(自然語(yǔ)言處理)測(cè)試中創(chuàng)出最佳成績(jī)。谷歌團(tuán)隊(duì)成員Thang Luong表示BERT開(kāi)啟了NLP的新時(shí)代。
BERT有以下優(yōu)勢(shì):
1.BERT擁有一個(gè)深而窄的神經(jīng)網(wǎng)絡(luò)。
2.BERT模型能夠聯(lián)合神經(jīng)網(wǎng)絡(luò)所有層中的上下文來(lái)進(jìn)行訓(xùn)練。
3.BERT只需要微調(diào)就可以適應(yīng)很多類型的NLP任務(wù),這使其應(yīng)用場(chǎng)景擴(kuò)大,并且降低了訓(xùn)練成本
BERT算法證明了通過(guò)大規(guī)模語(yǔ)料集預(yù)訓(xùn)練的技術(shù),能夠大幅度提升各類文本閱讀理解的效果;證明了使用Transformer來(lái)作為特征提取方法,以及雙向?qū)W習(xí)機(jī)制,能達(dá)到超過(guò)已有算法優(yōu)異效果;證明通過(guò)遮蔽語(yǔ)言模型進(jìn)行無(wú)監(jiān)督學(xué)習(xí)的機(jī)制,可以優(yōu)雅的引入領(lǐng)域知識(shí);未來(lái)在學(xué)術(shù)界傳統(tǒng)認(rèn)為很難處理的一些文字閱讀理解任務(wù)上,計(jì)算機(jī)有望能夠全面超越人類。
4.6.3 序列標(biāo)注算法
序列標(biāo)注模型的訓(xùn)練廣泛應(yīng)用于NLP的若干基礎(chǔ)組件之中,例如分詞,詞性標(biāo)注,實(shí)體識(shí)別,信息抽取等任務(wù)的基礎(chǔ)模型都屬于序列標(biāo)注模型。常用的序列標(biāo)注模型有隱馬爾科夫模型(HMM),條件隨機(jī)場(chǎng)(CRF)或適用于序列標(biāo)注的深度學(xué)習(xí)模型(Bi-LSTM+CRF)等。傳統(tǒng)序列標(biāo)注模型在小數(shù)據(jù)的訓(xùn)練樣本中效果相對(duì)較好,而深度學(xué)習(xí)在應(yīng)對(duì)大數(shù)據(jù)量時(shí)具有更加明顯的優(yōu)勢(shì)。
首先將標(biāo)注樣本針對(duì)具體的任務(wù)和算法進(jìn)行轉(zhuǎn)化,將文本序列根據(jù)標(biāo)注結(jié)果轉(zhuǎn)換為BMES或其他的標(biāo)簽體系。對(duì)于機(jī)器學(xué)習(xí)模型,根據(jù)不同任務(wù),可以選擇不同的特征,例如char級(jí)別,word級(jí)別,詞性特征,甚至是否包含關(guān)鍵詞等等。而深度學(xué)習(xí)模型一般使用下文會(huì)提到的字詞向量特征作為輸入。
除了特征以外,還需要對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行一定的預(yù)處理,例如數(shù)據(jù)平衡,對(duì)于關(guān)鍵信息抽取任務(wù),可以采取把標(biāo)注信息周圍內(nèi)容進(jìn)行裁剪的方式,既可以避免數(shù)據(jù)不平衡的問(wèn)題,也可以縮短訓(xùn)練時(shí)間,減小模型的大小。
對(duì)于多字段的信息抽取任務(wù)或者多任務(wù)(分詞、詞性標(biāo)注、句法分析)的文本分析任務(wù)。既可以訓(xùn)練若干個(gè)單獨(dú)模型,也可以使用單一的聯(lián)合模型進(jìn)行訓(xùn)練。
4.6.4 條件隨機(jī)場(chǎng)算法
CRF即條件隨機(jī)場(chǎng)(Conditional Random Field)是一種判別式無(wú)向圖模型。與HMM不同的是CRF的當(dāng)前狀態(tài)可以與整個(gè)觀測(cè)序列x相關(guān)。如下圖所示:
CRF 模型結(jié)構(gòu)
CRF條件概率公式
其中是定義在兩個(gè)相鄰狀態(tài)之間的狀態(tài)轉(zhuǎn)移特征函數(shù),用來(lái)刻畫(huà)前一個(gè)狀態(tài)和當(dāng)前狀態(tài)的轉(zhuǎn)移概率,為狀態(tài)轉(zhuǎn)移特征函數(shù)對(duì)應(yīng)的貢獻(xiàn)權(quán)重值。是定義在觀測(cè)序列時(shí)刻i的狀態(tài)特征函數(shù),用來(lái)刻畫(huà)觀測(cè)序列x對(duì)于i時(shí)刻狀態(tài)變量的影響,類似的為狀態(tài)特征函數(shù)對(duì)應(yīng)的權(quán)重。
以詞性標(biāo)注任務(wù)為例:
公式 CRF特征公式
上式的狀態(tài)轉(zhuǎn)移特征刻畫(huà)當(dāng)前時(shí)刻的觀測(cè)值為“knock”,當(dāng)前時(shí)刻狀態(tài)值為V,下個(gè)時(shí)刻狀態(tài)值為P時(shí)的特征。一般工程中實(shí)際上使用的多為線型鏈CRF,即狀態(tài)轉(zhuǎn)移函數(shù)的輸入不考慮x,只考慮當(dāng)前時(shí)刻的狀態(tài)和下個(gè)時(shí)刻的狀態(tài)。
公式 CRF特征值得分
上式的狀態(tài)特征刻畫(huà)當(dāng)前時(shí)刻觀測(cè)值為“knock”時(shí),當(dāng)前時(shí)刻狀態(tài)值為V的特征。
4.6.5 雙向LSTM算法
隨著深度學(xué)習(xí)的發(fā)展,深度學(xué)習(xí)的序列標(biāo)注模型得到了廣泛的應(yīng)用。深度學(xué)習(xí)序列標(biāo)注模型的輸入一般為詞向量,相比于CRF的one-hot表示會(huì)有更強(qiáng)的泛化能力。網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示,雙向LSTM網(wǎng)絡(luò)替代了CRF中狀態(tài)特征函數(shù)的作用,LSTM可以學(xué)到更加復(fù)雜的特征以及更長(zhǎng)的上下文特征。雙向LSTM由一個(gè)接受順序詞向量輸入的LSTM層和一個(gè)接受逆序詞向量輸入的LSTM層組成,一個(gè)包含前文特征,一個(gè)包含后文特征,將兩者的輸出拼接則包含了上下文特征。LSTM后的CRF層則建模狀態(tài)變量的轉(zhuǎn)移特征。最后的CRF層已經(jīng)成為深度學(xué)習(xí)序列標(biāo)注模型的標(biāo)配,因?yàn)樯疃葘W(xué)習(xí)序列模型建模輸出標(biāo)簽轉(zhuǎn)移概率較為困難。
Bi-LSTM+CRF模型結(jié)構(gòu)
4.6.6 支持向量機(jī)算法
SVM(Support Vector Machine)指的是支持向量機(jī),是常見(jiàn)的一種判別方法,是一個(gè)有監(jiān)督的學(xué)習(xí)模型。SVM的主要思想可以概括為兩點(diǎn):1.它是對(duì)線性可分的情況進(jìn)行分析,對(duì)于線性不可分的情況,通過(guò)使用非線性映射算法將低維輸入空間線性不可分的樣本轉(zhuǎn)化為高維特征空間使其線性可分。2.它基于結(jié)構(gòu)風(fēng)險(xiǎn)最小化理論之上在特征空間中構(gòu)建最優(yōu)超平面,使得學(xué)習(xí)得到全局最優(yōu)化。
SVM原理是幾何間隔最小化:
對(duì)于線性不可分問(wèn)題,通過(guò)核函數(shù)實(shí)現(xiàn)特征空間的隱式映射。
如圖,是從二維空間到三維空間的變換:
SVM使用核函數(shù)解決低維空間現(xiàn)行不可分問(wèn)題
4.6.7 邏輯回歸算法
邏輯回歸(Logistics Regression,LR)模型其實(shí)是在線性回歸的基礎(chǔ)上,套用了一個(gè)邏輯函數(shù)。邏輯回歸是一種廣義回歸,y=wx+b,其中w和b是待求參數(shù)。Logistic回歸通過(guò)函數(shù)L將wx+b對(duì)應(yīng)一個(gè)隱狀態(tài)p,p=L(wx+b),然后p與1-p的大小決定因變量的值。
Logistic回歸可以使二分類,也可以是多分類,但二分類更為常用。
Logistic Regression將線性函數(shù)的結(jié)果映射到了sigmoid函數(shù)中的(0,1)區(qū)間中。
sigmoid函數(shù)圖形如下:
Sigmoid函數(shù)圖
h(x)<0.5說(shuō)明當(dāng)前數(shù)據(jù)屬于A類;h(x)>0.5說(shuō)明當(dāng)前數(shù)據(jù)屬于B類。
4.6.8 隨機(jī)森林算法
隨機(jī)森林是一個(gè)包含多個(gè)決策樹(shù)的分類器,并且其輸出的類別是由個(gè)別樹(shù)輸出的類別的眾數(shù)決定的。決策樹(shù)相當(dāng)于一個(gè)大師,通過(guò)自己在數(shù)據(jù)集中學(xué)到的知識(shí)對(duì)于新的數(shù)據(jù)進(jìn)行分類。隨機(jī)森林就是希望構(gòu)建多個(gè)臭皮匠,希望最終的分類效果能夠超過(guò)單個(gè)大師的一種算法。
隨機(jī)森林生成方法:
1.從樣本中通過(guò)重采樣的方式產(chǎn)生n個(gè)樣本
2.假設(shè)樣本特征數(shù)目為a,對(duì)n個(gè)樣本選擇a中的k個(gè)特征,用建立決策樹(shù)的方式建立最佳分割點(diǎn)
3.重復(fù)m次,生成m棵決策樹(shù)
4.多數(shù)投票機(jī)制來(lái)進(jìn)行預(yù)測(cè)。
4.6.9 線性回歸算法
線性回歸(Linear Regression),數(shù)理統(tǒng)計(jì)中回歸分析,用來(lái)確定兩種或兩種以上變量間相互依賴的定量關(guān)系的一種統(tǒng)計(jì)分析方法,其表達(dá)形式為y=w'x+e,e為誤差服從均值為0的正態(tài)分布,其中只有一個(gè)自變量的情況稱為簡(jiǎn)單回歸,多個(gè)自變量的情況叫多元回歸。注意,統(tǒng)計(jì)學(xué)中的回歸并如線性回歸非與嚴(yán)格直線函數(shù)完全能擬合,所以我們統(tǒng)計(jì)中稱之為回歸用以與其直線函數(shù)區(qū)別。舉個(gè)Andrew Ng機(jī)器學(xué)習(xí)講義中美國(guó)俄亥俄州Portland Oregon城市房屋價(jià)格為例:
這個(gè)例子中近簡(jiǎn)化使用房屋面積一個(gè)因子作為自變量,y軸對(duì)應(yīng)其因變量房屋價(jià)格。所以我們機(jī)器學(xué)習(xí)的線性回歸就變?yōu)閷?duì)于給定有限的數(shù)據(jù)集,進(jìn)行一元線性回歸,即找到一個(gè)一次函數(shù)y=y(x)+e,使得y滿足當(dāng)x={2104,1600,2400,1416,3000,...},y={400,330,369,232,540,...} 如下圖所示:
對(duì)于線性方程的求解,是屬于線性代數(shù)的范疇。首先要判斷是否有解及是否有唯一解;其次具體求解方法則有矩陣消元法,克萊姆法則,逆矩陣及增廣矩陣法等等。
對(duì)于大多數(shù)給定數(shù)據(jù)集,線性方程有唯一解的概率比較小,多數(shù)都是解不存在的超定方程組。對(duì)于這種問(wèn)題,在計(jì)算數(shù)學(xué)中通常將參數(shù)求解問(wèn)題退化為求最小誤差問(wèn)題,找到一個(gè)最接近的解,即術(shù)語(yǔ)松弛求解。
4.6.10 決策樹(shù)回歸算法
決策樹(shù)是一種基本的分類與回歸方法,本文敘述的是回歸部分?;貧w決策樹(shù)主要指CART(classification and regression tree)算法,內(nèi)部結(jié)點(diǎn)特征的取值為“是”和“否”,為二叉樹(shù)結(jié)構(gòu)。
所謂回歸,就是根據(jù)特征向量來(lái)決定對(duì)應(yīng)的輸出值?;貧w樹(shù)就是將特征空間劃分成若干單元,每一個(gè)劃分單元有一個(gè)特定的輸出。因?yàn)槊總€(gè)結(jié)點(diǎn)都是“是”和“否”的判斷,所以劃分的邊界是平行于坐標(biāo)軸的。對(duì)于測(cè)試數(shù)據(jù),我們只要按照特征將其歸到某個(gè)單元,便得到對(duì)應(yīng)的輸出值。
4.6.11 K均值聚類算法
K均值聚類算法是先隨機(jī)選取K個(gè)對(duì)象作為初始的聚類中心。然后計(jì)算每個(gè)對(duì)象與各個(gè)種子聚類中心之間的距離,把每個(gè)對(duì)象分配給距離它最近的聚類中心。聚類中心以及分配給它們的對(duì)象就代表一個(gè)聚類。一旦全部對(duì)象都被分配了,每個(gè)聚類的聚類中心會(huì)根據(jù)聚類中現(xiàn)有的對(duì)象被重新計(jì)算。這個(gè)過(guò)程將不斷重復(fù)直到滿足某個(gè)終止條件。終止條件可以是沒(méi)有(或最小數(shù)目)對(duì)象被重新分配給不同的聚類,沒(méi)有(或最小數(shù)目)聚類中心再發(fā)生變化,誤差平方和局部最小。
具體做法為:先隨機(jī)選取K個(gè)對(duì)象作為初始的聚類中心。然后計(jì)算每個(gè)對(duì)象與各個(gè)種子聚類中心之間的距離,把每個(gè)對(duì)象分配給距離它最近的聚類中心。聚類中心以及分配給它們的對(duì)象就代表一個(gè)聚類。一旦全部對(duì)象都被分配了,每個(gè)聚類的聚類中心會(huì)根據(jù)聚類中現(xiàn)有的對(duì)象被重新計(jì)算。這個(gè)過(guò)程將不斷重復(fù)直到滿足某個(gè)終止條件。終止條件可以是以下任何一個(gè):
1)沒(méi)有(或最小數(shù)目)對(duì)象被重新分配給不同的聚類。
2)沒(méi)有(或最小數(shù)目)聚類中心再發(fā)生變化。
3)誤差平方和局部最小。
4.6.12 協(xié)調(diào)過(guò)滅算法
主要思想是基于群體智慧,利用已有大量用戶群過(guò)去行為數(shù)據(jù)來(lái)預(yù)測(cè)當(dāng)前用戶最可能感興趣的東西。這種方法克服了基于內(nèi)容方法的一些弊端,最重要的是可以推薦一些內(nèi)容上差異較大但是又是用戶感興趣的文檔。構(gòu)成CF(Collaborative Filtering)的兩種主要技術(shù):基于領(lǐng)域的方法和隱語(yǔ)義模型。
1)基于領(lǐng)域的方法
該方法重點(diǎn)關(guān)注文檔之間的關(guān)系或者用戶之間的關(guān)系,基于文檔的方法是根據(jù)用戶對(duì)和他感興趣的文檔相似的文檔評(píng)分,來(lái)對(duì)該用戶的偏好文檔建立模型。
基于文檔的協(xié)同過(guò)濾核心思想:給用戶推薦那些和他們之前喜歡的文檔相似的文檔。主要分為兩步:計(jì)算文檔之間的相似度和根據(jù)文檔的相似度和用戶的歷史行為給用戶生成推薦列表。
第一步:使用下面的余弦相似度公式定義文檔的相似度
從上面的定義看出,在協(xié)同過(guò)濾中兩個(gè)文檔產(chǎn)生相似度是因?yàn)樗鼈児餐缓芏嘤脩粝矚g,兩個(gè)文檔相似度越高,說(shuō)明這兩個(gè)文檔共同被很多人喜歡。這里面蘊(yùn)含著一個(gè)假設(shè):就是假設(shè)每個(gè)用戶的興趣都局限在某幾個(gè)方面,因此如果兩個(gè)文檔屬于一個(gè)用戶的興趣列表,那么這兩個(gè)文檔可能就屬于有限的幾個(gè)領(lǐng)域,而如果兩個(gè)文檔屬于很多用戶的興趣列表,那么它們就可能屬于同一個(gè)領(lǐng)域,因而有很大的相似度。
第二步:根據(jù)文檔的相似度和用戶的歷史行為給用戶生成推薦列表,通過(guò)如下公式計(jì)算用戶u對(duì)一個(gè)文檔j的興趣
其中,Puj表示用戶u對(duì)文檔j的興趣,N(u)表示用戶喜歡的文檔集合(i是該用戶喜歡的某一個(gè)文檔),S(i,k)表示和文檔i最相似的K個(gè)文檔集合(j是這個(gè)集合中的某一個(gè)文檔),Wji表示文檔j和文檔i的相似度,Rui表示用戶u對(duì)文檔i的興趣(這里簡(jiǎn)化Rui都等于1)。
基于用戶的協(xié)同過(guò)濾算法最重要一點(diǎn)是相似用戶的計(jì)算。包括找到與目標(biāo)用戶興趣相似的用戶集合、找到這個(gè)集合中用戶喜歡的、并且目標(biāo)用戶沒(méi)有聽(tīng)說(shuō)過(guò)的文檔推薦給目標(biāo)用戶。可以使用上述的余弦相似度方法計(jì)算相似度。在推薦的時(shí)候,需要從矩陣中找出與目標(biāo)用戶u最相似的K個(gè)用戶,用集合S(u,K)表示,將S中用戶喜歡的文檔全部提取出來(lái),并去除u已經(jīng)喜歡的文檔。
在實(shí)際應(yīng)用中,相似度的計(jì)算很多種方法,如余弦相似度、皮爾遜相關(guān)度等。其實(shí)不同的相似度計(jì)算方法有各自的優(yōu)缺點(diǎn),適用不同的應(yīng)用場(chǎng)景,可以通過(guò)對(duì)比測(cè)試進(jìn)行選取。一般來(lái)說(shuō),基于用戶的推薦系統(tǒng)中,皮爾遜相關(guān)系數(shù)效果要好一些。基于文檔的推薦中,余弦相似度方法比皮爾遜的表現(xiàn)更好。在實(shí)際業(yè)務(wù)中,相似度的計(jì)算方法都有很多變種,過(guò)于冷門(mén)和過(guò)于熱門(mén)的文檔對(duì)衡量用戶間的相似度時(shí)區(qū)分度不好,這時(shí)就需要進(jìn)行剪枝。下面的相似度計(jì)算方法將降低熱門(mén)文檔對(duì)用戶相似度的影響。
這種基于K近鄰的選取相似用戶的方法,相似度的閾值設(shè)置對(duì)結(jié)果影響很大,太大的話召回文檔過(guò)多,準(zhǔn)確度會(huì)有下降。
2)隱語(yǔ)義模型
該方法把文檔和用戶映射到相同的隱語(yǔ)義空間。這個(gè)空間試圖通過(guò)描述文檔和用戶兩種實(shí)體在因子上的特征來(lái)解釋評(píng)分,而這些因子是根據(jù)用戶的反饋?zhàn)詣?dòng)判斷出來(lái)的。
用隱語(yǔ)義模型來(lái)進(jìn)行協(xié)同過(guò)濾的目標(biāo)是揭示隱藏的特征,這些特征能解釋觀測(cè)到的評(píng)分。該模型包括pLSA(Probability Latent Semantic Analysis)模型、神經(jīng)網(wǎng)絡(luò)模型、LDA(Latent Dirichlet Allocation)模型,以及由用戶-文檔評(píng)分矩陣的因子分解推導(dǎo)出的模型(也叫基于SVD的模型,Singular Value Decomposition)。由于矩陣因子分解技術(shù)在線上業(yè)務(wù)的準(zhǔn)確性和穩(wěn)定性的突出表現(xiàn),已經(jīng)成為協(xié)同過(guò)濾算法的首選。達(dá)觀數(shù)據(jù)的推薦系統(tǒng)也大量使用了這種技術(shù),并做了諸多性能和效果優(yōu)化。
CF模型視圖捕捉用戶和文檔之間的交互作用,正式這些交互作用產(chǎn)生了不同的評(píng)分值。設(shè)為總體評(píng)分值,未知評(píng)分的基準(zhǔn)預(yù)測(cè)綜合考慮了用戶和文檔兩個(gè)因子
參數(shù)和表示用戶和文檔的與評(píng)分平均值的偏差。我們可以通過(guò)解決最小二乘法的問(wèn)題來(lái)估計(jì)和的值
在上述這個(gè)公式中,第一項(xiàng)用來(lái)尋找與已知評(píng)分?jǐn)?shù)據(jù)擬合得最好和的。正則化項(xiàng)通過(guò)對(duì)參數(shù)的復(fù)雜性增加懲罰因子來(lái)避免過(guò)擬合問(wèn)題。這個(gè)最小二乘法問(wèn)題可以通過(guò)隨機(jī)梯度下降(SGD,Stochastic gradient descent)算法有效地解決。
矩陣因子分解模型把用戶和文檔兩方面的信息映射到一個(gè)維度為的聯(lián)合隱語(yǔ)義空間中,因此用戶-文檔之間的交互作用被建模為該空間的內(nèi)積。相應(yīng)地,每一個(gè)文檔都有一個(gè)維向量相關(guān),每一個(gè)用戶都與一個(gè)維向量相關(guān)。給定一個(gè)文檔,向量的維度值代表了該文檔擁有這些因子的程度。取值大小反應(yīng)了文檔擁有這些因子的積極或者消極程度。給定一個(gè)用戶,的維度值代表了用戶對(duì)這些因子的偏好程度。同樣地,這些值的大小反映了用戶對(duì)這些因子的消極或者積極的評(píng)價(jià)。
為了學(xué)習(xí)模型中的參數(shù),也就是、、和,我們可以最小化以下正則化的平方誤差
常量控制了正則化程度,一般通過(guò)交叉驗(yàn)證來(lái)獲得。
考慮隱式反饋信息可以增加預(yù)測(cè)準(zhǔn)確度,這些隱式反饋信息提供了用戶愛(ài)好的額外信息。這對(duì)于那些提供了大量隱式反饋但是僅僅提供少量顯式反饋的用戶尤為重要。這就出現(xiàn)了一些根據(jù)用戶評(píng)分的文檔來(lái)對(duì)用戶的某個(gè)因子建模的方法,這里談一下SVD++,這種方法能夠提供比SVD更好的準(zhǔn)確度。
為了達(dá)到上述目的,我們?cè)黾恿说诙€(gè)文檔因子集合,即為每一個(gè)文檔關(guān)聯(lián)一個(gè)因子變量。這些新的文檔因子向量根據(jù)用戶評(píng)分的文檔集合來(lái)描述用戶的特征。模型如下:
例如,如果一個(gè)用戶對(duì)中的一些文檔有某種類型的隱式偏好(如他買過(guò)它們),對(duì)中的文檔又另一種類型的偏好(如他贊過(guò)它們),就可以使用下面的模型:
在處理用戶行為數(shù)據(jù)的過(guò)程中,需要考慮時(shí)間因素的影響,畢竟用戶的偏好是隨著時(shí)間變化的。比如,用戶會(huì)改變對(duì)特定導(dǎo)演或者演員的看法。矩陣分解的方法也能很好地對(duì)時(shí)間效應(yīng)進(jìn)行建模。得到擴(kuò)展模型time SVD++如下:
每一次迭代的時(shí)間復(fù)雜度仍然與輸入大小呈線性關(guān)系,而運(yùn)行時(shí)間大概是SVD++算法的兩倍,原因是更新時(shí)序參數(shù)需要額外的花費(fèi)。重要的是,收斂速度并沒(méi)有受時(shí)序參數(shù)化的影響。
4.6.13 關(guān)聯(lián)分析算法
關(guān)聯(lián)分析又稱關(guān)聯(lián)挖掘,就是在交易數(shù)據(jù)、關(guān)系數(shù)據(jù)或其他信息載體中,查找存在于項(xiàng)目集合或?qū)ο蠹现g的頻繁模式、關(guān)聯(lián)、相關(guān)性或因果結(jié)構(gòu)。
關(guān)聯(lián)分析是一種簡(jiǎn)單、實(shí)用的分析技術(shù),就是發(fā)現(xiàn)存在于大量數(shù)據(jù)集中的關(guān)聯(lián)性或相關(guān)性,從而描述了一個(gè)事物中某些屬性同時(shí)出現(xiàn)的規(guī)律和模式。
關(guān)聯(lián)分析是從大量數(shù)據(jù)中發(fā)現(xiàn)項(xiàng)集之間有趣的關(guān)聯(lián)和相關(guān)聯(lián)系。關(guān)聯(lián)分析的一個(gè)典型例子是購(gòu)物籃分析。該過(guò)程通過(guò)發(fā)現(xiàn)顧客放入其購(gòu)物籃中的不同商品之間的聯(lián)系,分析顧客的購(gòu)買習(xí)慣。通過(guò)了解哪些商品頻繁地被顧客同時(shí)購(gòu)買,這種關(guān)聯(lián)的發(fā)現(xiàn)可以幫助零售商制定營(yíng)銷策略。其他的應(yīng)用還包括價(jià)目表設(shè)計(jì)、商品促銷、商品的排放和基于購(gòu)買模式的顧客劃分。
4.6.14 TF-IDF算法
Tf-idf是一種用于信息檢索與文本挖掘的常用加權(quán)技術(shù)。tf-idf是一種統(tǒng)計(jì)方法,用以評(píng)估一字詞對(duì)于一個(gè)文件集或一個(gè)語(yǔ)料庫(kù)中的其中一份文件的重要程度。在一份給定的文件里,詞頻(term frequency,tf)指的是某一個(gè)給定的詞語(yǔ)在該文件中出現(xiàn)的頻率。這個(gè)數(shù)字是對(duì)詞數(shù)(term count)的歸一化,以防止它偏向長(zhǎng)的文件。對(duì)于在某一特定文件里的詞語(yǔ) ti來(lái)說(shuō),它的重要性可表示為:
以上式子中ni,j是該詞在文件 dj中的出現(xiàn)次數(shù),而分母則是在文件 dj中所有字詞的出現(xiàn)次數(shù)之和。
逆向文件頻率(inverse document frequency,idf)是一個(gè)詞語(yǔ)普遍重要性的度量。某一特定詞語(yǔ)的idf,可以由總文件數(shù)目除以包含該詞語(yǔ)之文件的數(shù)目,再將得到的商取以10為底的對(duì)數(shù)得到:
其中
|D|:語(yǔ)料庫(kù)中的文件總數(shù)
:包含詞語(yǔ)ti的文件數(shù)目(即 ni,j != 0的文件數(shù)目)如果詞語(yǔ)不在數(shù)據(jù)中,就導(dǎo)致分母為零,因此一般情況下使用
然后tfidf i,j = tfi, j * idfi
某一特定文件內(nèi)的高詞語(yǔ)頻率,以及該詞語(yǔ)在整個(gè)文件集合中的低文件頻率,可以產(chǎn)生出高權(quán)重的tf-idf。因此,tf-idf傾向于過(guò)濾掉常見(jiàn)的詞語(yǔ),保留重要的詞語(yǔ)。
4.6.15 Word2vec算法
Word2vec主要用于挖掘詞的向量表示,向量中的數(shù)值能夠建模一個(gè)詞在句子中,和上下文信息之間的關(guān)系,主要包括2個(gè)模型:CBOW(continuous bag-of-word)和SG(skip-gram),從一個(gè)簡(jiǎn)單版本的CBOW模型介紹,上下文只考慮一個(gè)詞的情形,如圖所示,
Word2vec圖
假設(shè)只有一個(gè)隱層的神經(jīng)網(wǎng)絡(luò),輸入層以及輸出層均為詞的one-hot編碼表示,詞表大小假設(shè)為V,隱層神經(jīng)元個(gè)數(shù)為N,相鄰層的神經(jīng)元為全連接,層間的權(quán)重用V*N的矩陣W表示,隱層到輸出層的activation function采用softmax函數(shù),
其中wI,wj為詞表中不同的詞,yj為輸出層第j個(gè)神經(jīng)元的輸出,uj為輸入層經(jīng)過(guò)權(quán)重矩陣W到隱層的score,uj’為隱層經(jīng)過(guò)權(quán)重矩陣W’到輸出層的score。訓(xùn)練這個(gè)神經(jīng)網(wǎng)絡(luò),用反向傳播算法,先計(jì)算網(wǎng)絡(luò)輸出和真實(shí)值的差,然后用梯度下降反向更新層間的權(quán)重矩陣,得到更新公式:
其中,η為更新的步長(zhǎng),ej為模型預(yù)測(cè)以及真實(shí)值之間的誤差,h為隱層向量。
圖2為上下文為多個(gè)詞時(shí)的情況,中間的隱層h計(jì)算由
改為
即輸入向量為多個(gè)上下文向量相加求平均,后續(xù)的參數(shù)學(xué)習(xí)與上文的單個(gè)詞的上下文情況類似。遍歷整個(gè)訓(xùn)練集context-target詞對(duì),經(jīng)過(guò)多次迭代更新模型參數(shù),對(duì)模型中的向量的影響將會(huì)累積,最終學(xué)到對(duì)詞的向量表示。
Skip-gram跟CBOW的輸入層和輸出層正好對(duì)調(diào),區(qū)別就是CBOW是上下文,經(jīng)過(guò)模型預(yù)測(cè)當(dāng)前詞,而skip-gram是通過(guò)當(dāng)前詞來(lái)預(yù)測(cè)上下文。
Skip-gram
目前為止,對(duì)詞表中的每個(gè)詞,有兩種向量表示:input vector和output vector,對(duì)應(yīng)輸入層到隱層權(quán)重矩陣W的行向量和隱層到輸出層權(quán)重矩陣W'的列向量,從等式4、5可以看出,對(duì)每一個(gè)訓(xùn)練樣本,都需要遍歷詞表中的每一個(gè)詞,因此,學(xué)習(xí)output vector的計(jì)算量是非常大的,如果訓(xùn)練集或者詞表的規(guī)模大的話,在實(shí)際應(yīng)用中訓(xùn)練不具可操作性。為解決這個(gè)問(wèn)題,直覺(jué)的做法是限制每個(gè)訓(xùn)練樣本需要更新的output vectors,google提出了兩個(gè)方法:hierarchical softmax和negative sampling,加快了模型訓(xùn)練的速度,再次不做展開(kāi)討論。由于wordvec在NLP領(lǐng)域的巨大成功,Oren Barkan and Noam Koenigstein受此啟發(fā),利用item-based CF學(xué)習(xí)item在低維latent space的embedding representation,優(yōu)化item的相關(guān)推薦。
詞的上下文即為鄰近詞的序列,很容易想到,詞的序列其實(shí)等價(jià)于一系列連續(xù)操作的item序列,因此,訓(xùn)練語(yǔ)料只需將句子改為連續(xù)操作的item序列即可,item間的共現(xiàn)為正樣本,并按照item的頻率分布進(jìn)行負(fù)樣本采樣。
4.6.16 受限玻爾裝曼機(jī)算法
本質(zhì)上來(lái)說(shuō),RBM是一個(gè)編碼解碼器:將原始輸入數(shù)據(jù)從可見(jiàn)層映射到隱藏層,并且得到原始輸入數(shù)據(jù)的隱含因子,對(duì)應(yīng)的是編碼過(guò)程;然后利用得到的隱藏層向量在映射回可見(jiàn)層,得到新的可見(jiàn)層數(shù)據(jù),對(duì)應(yīng)的是解碼過(guò)程。而優(yōu)化目標(biāo)是希望讓解碼后的數(shù)據(jù)和原始輸入數(shù)據(jù)盡可能的接近。在推薦場(chǎng)景中,可以獲取到用戶對(duì)文檔的評(píng)分矩陣,進(jìn)過(guò)RBM的編碼-解碼過(guò)程處理后,不僅得到了已有評(píng)分對(duì)應(yīng)的新評(píng)分,同時(shí)對(duì)未評(píng)分的文檔進(jìn)行預(yù)測(cè),并將預(yù)測(cè)分?jǐn)?shù)從高到低排序就可以生成推薦列表。換句話說(shuō),就是將RBM應(yīng)用到協(xié)同過(guò)濾中。
對(duì)傳統(tǒng)的RBM進(jìn)行改進(jìn):可見(jiàn)層使用Softmax神經(jīng)元;用戶只對(duì)部分文檔評(píng)分,而對(duì)于沒(méi)有評(píng)分的文檔使用一種特殊的神經(jīng)元表示,這種神經(jīng)元不與任何隱藏層神經(jīng)元連接。具體結(jié)構(gòu)如圖所示。
受限玻爾茲曼機(jī)
圖中可以看到,Softmax神經(jīng)元是一個(gè)長(zhǎng)度為K的向量(圖中K為5),并且這個(gè)向量每次只有一個(gè)分量為1,而且第i個(gè)單元為1僅當(dāng)用戶對(duì)該文檔打分為i是才會(huì)置為1,其余為0。從而可以得到可見(jiàn)層單元和隱藏層單元被激活的概率:
使用前面提到的CD算法,各個(gè)參數(shù)的學(xué)習(xí)過(guò)程如下:
RBM經(jīng)過(guò)學(xué)習(xí)以后,可以得到整個(gè)網(wǎng)絡(luò)的全部參數(shù)。給定一個(gè)用戶u和一個(gè)文檔i,預(yù)測(cè)評(píng)分R(u, i)過(guò)程如下:
1)將用戶u的所有評(píng)分作為RBM的softmax單元的輸入
2)對(duì)于所有的隱藏單元j計(jì)算激活概率
3)對(duì)于所有的k=1,2,…,K,計(jì)算
4)取期望值作為預(yù)測(cè)結(jié)果,比如
以上RBM只用到用戶對(duì)文檔的評(píng)分,忽略了很重要的信息:用戶瀏覽過(guò)哪些文檔,但是并沒(méi)有評(píng)的情況。條件RBM (Conditional Restricted Boltzmann Machine)對(duì)這種信息可以進(jìn)行建模。
RBM
其中r是m維的向量,為1的話,表示用戶對(duì)瀏覽過(guò)第i個(gè)電影,加入r之后的條件概率:
權(quán)重D的學(xué)習(xí)過(guò)程:
4.6.17 KMP算法
Knuth-Morris-Pratt字符串查找算法(簡(jiǎn)稱為KMP算法)可在一個(gè)主文本字符串S內(nèi)查找一個(gè)詞W的出現(xiàn)位置。此算法通過(guò)運(yùn)用對(duì)這個(gè)詞在不匹配時(shí)本身就包含足夠的信息來(lái)確定下一個(gè)匹配將在哪里開(kāi)始的發(fā)現(xiàn),從而避免重新檢查先前匹配的字符。
4.6.18 LCS算法
最長(zhǎng)公共子序列(LCS)是一個(gè)在一個(gè)序列集合中(通常為兩個(gè)序列)用來(lái)查找所有序列中最長(zhǎng)子序列的問(wèn)題。這與查找最長(zhǎng)公共子串的問(wèn)題不同的地方是:子序列不需要在原序列中占用連續(xù)的位置。最長(zhǎng)公共子序列問(wèn)題是一個(gè)經(jīng)典的計(jì)算機(jī)科學(xué)問(wèn)題,也是數(shù)據(jù)比較程序,比如Diff工具,和生物信息學(xué)應(yīng)用的基礎(chǔ)。它也被廣泛地應(yīng)用在版本控制,比如Git用來(lái)調(diào)和文件之間的改變。
一個(gè)數(shù)列S,如果分別是兩個(gè)或多個(gè)已知數(shù)列的子序列,且是所有匹配此條件序列中最長(zhǎng)的,則S稱為已知序列的最長(zhǎng)公共子序列。對(duì)于一般性的LCS問(wèn)題(即任意數(shù)量的序列)是屬于NP-hard。但當(dāng)序列的數(shù)量確定時(shí),問(wèn)題可以使用動(dòng)態(tài)規(guī)劃在多項(xiàng)式時(shí)間內(nèi)解決。