夏 冉
(江蘇自動(dòng)化研究所,江蘇 連云港 222061)
人工智能已經(jīng)在不知不覺中影響著大眾,全面滲透到現(xiàn)實(shí)業(yè),自動(dòng)欺詐探測系統(tǒng)使用機(jī)器學(xué)習(xí)可以識(shí)別出預(yù)示著欺詐性付款行動(dòng)的行為模式;借助語音識(shí)別技術(shù)能夠自動(dòng)完成電話客服;聲音識(shí)別可以核實(shí)來電者的身份。在醫(yī)療健康領(lǐng)域,美國有一半的醫(yī)院采用自動(dòng)語音識(shí)別來幫助醫(yī)生自動(dòng)完成醫(yī)囑抄錄,而且使用率在迅速增長;機(jī)器視覺系統(tǒng)自動(dòng)完成乳房X光檢查和其他醫(yī)學(xué)影響的分析;IBM 的Watson借助自然語言處理技術(shù)來閱讀和理解大量醫(yī)學(xué)文獻(xiàn),通過假設(shè)自動(dòng)生成來完成自動(dòng)診斷,借助機(jī)器學(xué)習(xí)可以提高準(zhǔn)確率。在生命科學(xué)領(lǐng)域,機(jī)器學(xué)習(xí)系統(tǒng)被用來預(yù)測生物數(shù)據(jù)和化合物活動(dòng)的因果關(guān)系,從而幫助制藥公司識(shí)別出最有前景的藥物。在媒體與娛樂行業(yè),許多公司正在使用數(shù)據(jù)分析和自然語言生成技術(shù),自動(dòng)起草基于數(shù)據(jù)的的公文材料,比如公司營收狀況、體育賽事綜述等。在石油與天然氣行業(yè),廠商將機(jī)器學(xué)習(xí)廣泛運(yùn)用在礦藏資源定位、鉆井設(shè)備故障診斷等眾多方面。在零售業(yè),零售商利用機(jī)器學(xué)習(xí)來自動(dòng)發(fā)現(xiàn)有吸引力的交叉銷售定價(jià)和有效的促銷活動(dòng)??萍贾圃旃菊脵C(jī)器視覺、機(jī)器學(xué)習(xí)等認(rèn)知技術(shù)來改進(jìn)產(chǎn)品或者開發(fā)全新產(chǎn)品,比如機(jī)器人吸塵器、智能恒溫器。
作為前沿技術(shù),人工智能涉及認(rèn)知科學(xué)、數(shù)學(xué)、計(jì)算機(jī)科學(xué)、信息論、控制論、不定性論等學(xué)科,具有很高的技術(shù)門檻。在工程實(shí)現(xiàn)方面,人工智能的計(jì)算平臺(tái)需要大規(guī)模的計(jì)算、存儲(chǔ)等基礎(chǔ)硬件環(huán)境,硬件基礎(chǔ)設(shè)施的搭建、管理、運(yùn)維等,也在很大程度上影響人工智能的更廣泛應(yīng)用。
本文提出了一種基于Spark[1]的機(jī)器學(xué)習(xí)Web服務(wù)引擎,通過構(gòu)建通用化的計(jì)算、存儲(chǔ)等基礎(chǔ)設(shè)施,向業(yè)務(wù)端應(yīng)用提供Restful形式的預(yù)測查詢服務(wù),僅通過網(wǎng)絡(luò)即可隨時(shí)隨地、方便快捷地享受人工智能服務(wù),極大降低了應(yīng)用集成人工智能功能的成本。
基于Spark的機(jī)器學(xué)習(xí)服務(wù)引擎面向多種類型的機(jī)器學(xué)習(xí)應(yīng)用提供動(dòng)態(tài)、實(shí)時(shí)的預(yù)測查詢響應(yīng)。如圖1所示為機(jī)器學(xué)習(xí)服務(wù)引擎的系統(tǒng)架構(gòu)圖。
數(shù)據(jù)服務(wù)平臺(tái):用于存儲(chǔ)系統(tǒng)元數(shù)據(jù)、機(jī)器學(xué)習(xí)模型數(shù)據(jù)以及樣本數(shù)據(jù),并提供統(tǒng)一邏輯的數(shù)據(jù)訪問接口;樣本數(shù)據(jù)的來源主要包括兩種類型:一是業(yè)務(wù)服務(wù)器,另一種是其他的樣本數(shù)據(jù)源。
機(jī)器學(xué)習(xí)建??蚣?機(jī)器學(xué)習(xí)服務(wù)引擎的核心組件,提供構(gòu)建機(jī)器學(xué)習(xí)模型的框架,包括用于算法訓(xùn)練的可伸縮計(jì)算平臺(tái)、樣本數(shù)據(jù)準(zhǔn)備模塊、算法訓(xùn)練與評(píng)估模塊,以及機(jī)器學(xué)習(xí)算法庫;
機(jī)器學(xué)習(xí)服務(wù)器:基于算法訓(xùn)練得到的機(jī)器學(xué)習(xí)模型形成決策/預(yù)測服務(wù),響應(yīng)業(yè)務(wù)終端的決策/預(yù)測查詢請(qǐng)求。
業(yè)務(wù)終端是指PC終端應(yīng)用、移動(dòng)終端應(yīng)用等生產(chǎn)業(yè)務(wù)數(shù)據(jù)、發(fā)送預(yù)測查詢請(qǐng)求、接受決策/預(yù)測結(jié)果的業(yè)務(wù)客戶端應(yīng)用程序。業(yè)務(wù)服務(wù)器除了包括自身的業(yè)務(wù)服務(wù)邏輯,還包括機(jī)器學(xué)習(xí)邏輯,用于擴(kuò)展機(jī)器學(xué)習(xí)功能。機(jī)器學(xué)習(xí)邏輯功能實(shí)際在機(jī)器學(xué)習(xí)引擎端實(shí)現(xiàn),業(yè)務(wù)服務(wù)器端的機(jī)器學(xué)習(xí)邏輯僅僅是基于Restful接口的數(shù)據(jù)上傳以及反饋結(jié)果的接收,極大簡化了業(yè)務(wù)應(yīng)用添加機(jī)器學(xué)習(xí)功能的開發(fā)難度。
機(jī)器學(xué)習(xí)建??蚣芴峁臉颖緮?shù)據(jù)準(zhǔn)備到算法訓(xùn)練、模型評(píng)估等全棧式建模服務(wù),根據(jù)業(yè)務(wù)應(yīng)用模式,選擇機(jī)器學(xué)習(xí)算法,利用樣本數(shù)據(jù)訓(xùn)練并評(píng)估算法模型,最終向業(yè)務(wù)服務(wù)器輸出機(jī)器學(xué)習(xí)模型。機(jī)器學(xué)習(xí)服務(wù)器部署機(jī)器學(xué)習(xí)模型,形成決策/預(yù)測服務(wù),接收并響應(yīng)業(yè)務(wù)端的決策/預(yù)測查詢請(qǐng)求。機(jī)器學(xué)習(xí)服務(wù)器可同時(shí)部署多個(gè)機(jī)器學(xué)習(xí)模型,面向多個(gè)業(yè)務(wù)端應(yīng)用提供服務(wù)。
機(jī)器學(xué)習(xí)服務(wù)引擎以 Web服務(wù)形式部署,面向多種類型的機(jī)器學(xué)習(xí)應(yīng)用提供動(dòng)態(tài)、實(shí)時(shí)的預(yù)測查詢響應(yīng),其工作流程如圖2所示。
業(yè)務(wù)終端僅與業(yè)務(wù)服務(wù)器通信、交互,一方面上傳業(yè)務(wù)數(shù)據(jù),另一方發(fā)起機(jī)器學(xué)習(xí)服務(wù)請(qǐng)求。由業(yè)務(wù)服務(wù)器負(fù)責(zé)與機(jī)器學(xué)習(xí)服務(wù)引擎的交互,業(yè)務(wù)服務(wù)器通過Restful接口向機(jī)器學(xué)習(xí)服務(wù)引擎的數(shù)據(jù)服務(wù)平臺(tái)上傳樣本數(shù)據(jù),數(shù)據(jù)服務(wù)平臺(tái)存儲(chǔ)樣本數(shù)據(jù)。機(jī)器學(xué)習(xí)建??蚣芡ㄟ^統(tǒng)一存儲(chǔ)訪問接口提取樣本數(shù)據(jù),對(duì)機(jī)器學(xué)習(xí)算法進(jìn)行訓(xùn)練、評(píng)估,得到機(jī)器學(xué)習(xí)模型。機(jī)器學(xué)習(xí)服務(wù)器基于得到的機(jī)器學(xué)習(xí)模型構(gòu)建決策/預(yù)測服務(wù)。業(yè)務(wù)服務(wù)器在接收到業(yè)務(wù)終端的查詢請(qǐng)求時(shí),向機(jī)器學(xué)習(xí)服務(wù)器轉(zhuǎn)發(fā)該請(qǐng)求,機(jī)器學(xué)習(xí)服務(wù)器接收請(qǐng)求,調(diào)用相應(yīng)的決策/預(yù)測服務(wù),得到?jīng)Q策/預(yù)測結(jié)果,并反饋結(jié)果至業(yè)務(wù)服務(wù)器,業(yè)務(wù)服務(wù)器轉(zhuǎn)發(fā)反饋結(jié)果,響應(yīng)業(yè)務(wù)終端的請(qǐng)求。
以下對(duì)各個(gè)組件的原理及實(shí)現(xiàn)途徑進(jìn)行詳細(xì)描述。
數(shù)據(jù)服務(wù)平臺(tái)提供統(tǒng)一邏輯的數(shù)據(jù)訪問接口,包括系統(tǒng)元數(shù)據(jù)、模型數(shù)據(jù)、樣本數(shù)據(jù),其架構(gòu)如圖3所示。機(jī)器學(xué)習(xí)服務(wù)引擎涉及的三種類型數(shù)據(jù)分別采用不同的存儲(chǔ)單元:元數(shù)據(jù)存儲(chǔ)單元記錄系統(tǒng)中各實(shí)例化模塊的ID、版本、創(chuàng)建時(shí)間等結(jié)構(gòu)化信息,采用關(guān)系型數(shù)據(jù)庫,訪問接口為JDBC(Java DataBase Connectivity,java數(shù)據(jù)庫連接);模型數(shù)據(jù)存儲(chǔ)單元記錄機(jī)器學(xué)習(xí)模型數(shù)據(jù),以文件形式通過HDFS(Hadoop Distributed File System,hadoop分布式文件系統(tǒng))進(jìn)行存儲(chǔ);樣本數(shù)據(jù)存儲(chǔ)單元記錄大規(guī)模的樣本數(shù)據(jù),并涉及數(shù)據(jù)檢索、查詢等操作,通過HBase進(jìn)行存儲(chǔ)。統(tǒng)一存儲(chǔ)訪問接口通過存儲(chǔ)配置文件Storage.conf讀取各個(gè)存儲(chǔ)單元的后端存儲(chǔ)實(shí)體的URL、用戶名、密碼等信息,提供三種類型數(shù)據(jù)的訪問接口。機(jī)器學(xué)習(xí)建??蚣茉L問數(shù)據(jù)服務(wù)平臺(tái)的樣本數(shù)據(jù)單元,并存儲(chǔ)訓(xùn)練好的模型數(shù)據(jù);機(jī)器學(xué)習(xí)服務(wù)器通過獲取模型數(shù)據(jù)、模型元數(shù)據(jù)構(gòu)建機(jī)器學(xué)習(xí)Web服務(wù);樣本數(shù)據(jù)Web服務(wù)接收業(yè)務(wù)端數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)平臺(tái)。
數(shù)據(jù)服務(wù)平臺(tái)的Web服務(wù)向業(yè)務(wù)端提供Restful形式的訪問接口,在設(shè)計(jì)上采用Actor模型框架Akka[2],并使用Spray作為Restful框架。業(yè)務(wù)端上傳的數(shù)據(jù)被封裝成Message類的實(shí)例,Web服務(wù)的創(chuàng)建過程如圖4所示,MessageServer創(chuàng)建Actor系統(tǒng),向MessageServer Actor發(fā)送發(fā)送啟動(dòng)服務(wù)器消息,MessageServerActor響應(yīng)啟動(dòng)消息,創(chuàng)建Web服務(wù)MessageServiceActor,并綁定IP地址與端口。MessageServiceActor啟動(dòng)http監(jiān)聽,在其路由中針對(duì)“messages.json”路徑設(shè)計(jì)get、post、delete操作用于通過統(tǒng)一存儲(chǔ)接口獲取、上傳、刪除數(shù)據(jù)。
機(jī)器學(xué)習(xí)建??蚣躘3]是機(jī)器學(xué)習(xí)服務(wù)引擎的核心,采用通用大數(shù)據(jù)快速處理平臺(tái)Spark作為機(jī)器學(xué)習(xí)算法的訓(xùn)練計(jì)算平臺(tái),Spark的內(nèi)存計(jì)算特性能夠大幅提高機(jī)器學(xué)習(xí)算法迭代運(yùn)算的速度。算法由Spark的機(jī)器學(xué)習(xí)算法庫MLlib提供,機(jī)器學(xué)習(xí)建??蚣艿募軜?gòu)如圖5所示。該框架包括數(shù)據(jù)準(zhǔn)備、算法、預(yù)測綜合以及評(píng)估[5]等模塊。數(shù)據(jù)準(zhǔn)備模塊根據(jù)算法訓(xùn)練數(shù)據(jù)的內(nèi)容格式要求,從數(shù)據(jù)服務(wù)平臺(tái)提取樣本數(shù)據(jù),并轉(zhuǎn)換為訓(xùn)練數(shù)據(jù)。算法模塊封裝MLlib中的算法,提供算法訓(xùn)練及預(yù)測等接口。在某些情況下,應(yīng)用端需要綜合多種算法的預(yù)測結(jié)果,提供更準(zhǔn)確的預(yù)測結(jié)果,預(yù)測綜合模塊主要實(shí)現(xiàn)這部分功能。評(píng)估模塊主要實(shí)現(xiàn)算法超參數(shù)的自動(dòng)優(yōu)選。每個(gè)特定類型的機(jī)器學(xué)習(xí)應(yīng)用需要根據(jù)自身算法需求,實(shí)例化建??蚣艿母鱾€(gè)模塊。
機(jī)器學(xué)習(xí)建??蚣艿墓ぷ髁鞒?數(shù)據(jù)準(zhǔn)備模塊讀取樣本數(shù)據(jù)并轉(zhuǎn)換為訓(xùn)練樣本;算法模塊訓(xùn)練算法得到機(jī)器學(xué)習(xí)模型,多個(gè)模型的預(yù)測結(jié)果最后由預(yù)測綜合模塊實(shí)現(xiàn)按需綜合,輸出最終的預(yù)測結(jié)果。
機(jī)器學(xué)習(xí)算法的超參數(shù)的自動(dòng)優(yōu)選過程:
第一步:數(shù)據(jù)準(zhǔn)備模塊讀取評(píng)估用樣本數(shù)據(jù),并使用k-fold法劃分樣本數(shù)據(jù)為k個(gè){訓(xùn)練樣本、驗(yàn)證樣本}集合;
第二步:分別針對(duì)每一個(gè)超參數(shù)測試值,依次測試K個(gè){訓(xùn)練樣本、驗(yàn)證樣本}集合,并根據(jù)評(píng)估標(biāo)準(zhǔn)給出評(píng)估結(jié)果;
第三步:根據(jù)每個(gè)超參數(shù)的評(píng)估結(jié)果,選擇最優(yōu)超參數(shù)輸出。
機(jī)器學(xué)習(xí)服務(wù)器基于算法訓(xùn)練得到的機(jī)器學(xué)習(xí)模型構(gòu)建服務(wù)后端,提供機(jī)器學(xué)習(xí)Web服務(wù),其設(shè)計(jì)實(shí)現(xiàn)上仍采用Actor模型Akka以及Restful架構(gòu)Spray。機(jī)器學(xué)習(xí)服務(wù)器的創(chuàng)建過程如圖6所示,對(duì)象MLServer根據(jù)配置文件設(shè)置服務(wù)器網(wǎng)絡(luò)及機(jī)器學(xué)習(xí)模型的配置信息,從而獲取模型數(shù)據(jù)及相關(guān)的元數(shù)據(jù),創(chuàng)建MLServerActor作為服務(wù)器的控制Actor,并向它發(fā)送啟動(dòng)服務(wù)器消息StartServer。MLServerActor在處理服務(wù)器啟動(dòng)消息時(shí),創(chuàng)建機(jī)器學(xué)習(xí)Web服務(wù)Actor,并綁定相應(yīng)的網(wǎng)絡(luò)接口,啟動(dòng)HTTP監(jiān)聽。Web服務(wù)MLServiceAcor基于Restful架構(gòu)Spray,在其路由中針對(duì)“queries.json”路徑設(shè)計(jì)請(qǐng)求查詢的響應(yīng)過程。
實(shí)驗(yàn)選擇垃圾郵件分類[8]為應(yīng)用目標(biāo)構(gòu)建機(jī)器學(xué)習(xí)Web服務(wù)引擎,樣本數(shù)據(jù)選擇某郵件服務(wù)平臺(tái)提供的數(shù)據(jù),通過數(shù)據(jù)服務(wù)Restful接口上傳樣本數(shù)據(jù)。樣本數(shù)據(jù)以JSON文本形式表示,例如某封郵件的內(nèi)容樣例:
{"messageTime": "2015-06-08T16:45:52.285+0000", "entityId": 9781, "properties": {"text": "Subject: Re: programming for rdi model michelle,I ' ve just met with cecil and christin. We have divided the code into 3 parts,and cecil 's looking at the first part. Cecil, Helen and I will meet again tomorrow morning to go through the logic of the other two parts. Since cecil is devoted completely to this project, once he starts coding, it should not take too long.best, alex", "label": "not spam"}, "message": "e-mail", "entityType": "content"}。
機(jī)器學(xué)習(xí)建??蚣艿臄?shù)據(jù)準(zhǔn)備單元將樣本數(shù)據(jù)轉(zhuǎn)換為機(jī)器學(xué)習(xí)算法使用的格式。首先進(jìn)行text文本的矢量化,以及特征的縮減。text轉(zhuǎn)變成包含特征詞的向量,去除判定價(jià)值低的特征詞,這里使用MLLib中HashingTF類將text轉(zhuǎn)變成詞頻向量(特征詞出現(xiàn)的次數(shù)構(gòu)成向量)。計(jì)算詞頻向量對(duì)應(yīng)的t.f.-i.d.f.值[10],使那些普遍大量存在于所有文檔的詞以小的權(quán)值,從而獲得用于訓(xùn)練或者預(yù)測的向量集。
模型算法運(yùn)用多項(xiàng)式樸素貝葉斯算法,通過實(shí)現(xiàn)MLLib中Naive Bayes-RDD-based API,設(shè)置平滑參數(shù),得到如下形式預(yù)測結(jié)果:
{category: String, confidence: Double}。
其中,Category為預(yù)測的分類,confidence為該類型的概率。
通過在業(yè)務(wù)端運(yùn)行Restful形式的查詢命令:
curl-H "Content-Type: application/json"-d '{"text":"It’s very important for me,I am looking forward to your response."}' http:∥localhost:8000/queries.json,
得到預(yù)測結(jié)果:
{"category":"not spam","confidence":0.845823746259427}。
通過在業(yè)務(wù)端運(yùn)行Restful形式的查詢命令:
curl-H "Content-Type: application/json"-d '{"text":"Harry Up,Join us,Follow your heart.It will no longer be a dream"}' http:∥localhost:8000/queries.json,
得到預(yù)測結(jié)果:
{"category":"spam","confidence":0.663752971249385}
完成查詢預(yù)測服務(wù)。
并將輸入1000封郵件對(duì)比標(biāo)簽893封符合。準(zhǔn)確率89.3%。驗(yàn)證郵件分類系統(tǒng)準(zhǔn)確性。
第二個(gè)對(duì)比試驗(yàn)?zāi)寐嬐扑]作為參考。每個(gè)漫畫都有一些對(duì)應(yīng)的分類標(biāo)簽。漫畫推薦如同垃圾郵件分類,將標(biāo)簽最為相似的達(dá)到一定閾值后,標(biāo)記為喜歡。
漫畫推薦采用推薦常用的交替最小二乘法。輸入為兩類數(shù)。其一為數(shù)據(jù)庫csv文件。
如其中一個(gè)漫畫信息,分別為id、名字、分類標(biāo)簽、漫畫url信息。
89270 Bark Comedy,Romance,Drama http:∥tapastic.com/episode/89270
第二部分為不同用戶id喜歡的漫畫id。如:
2 89270
表示id為2的用戶喜歡id為8270的漫畫(Bark)。
向服務(wù)器輸入喜歡漫畫,推薦個(gè)數(shù)。模型會(huì)根據(jù)標(biāo)簽相似度和用戶喜歡此漫畫還喜歡其他相似漫畫的關(guān)聯(lián)度綜合出最為相似的漫畫,進(jìn)行輸出。
Curl-H "Content-Type:application/json"-d '{"Id":89270,"num":1}' http:∥localhost:8000/queries.json
curl-H "Content-Type: application/json"-d '{"Text":"Bark","num":1}' http:∥localhost:8000/queries.json
得出輸出結(jié)果
{"TapsterId":"89143", "TapsterName ": Epic QuestSlice"TapsterUrl":
http:∥tapastic.com/episode/89143}
兩個(gè)實(shí)驗(yàn)面對(duì)兩個(gè)不同方向(分類和推薦)都簡易實(shí)現(xiàn)機(jī)器學(xué)習(xí)應(yīng)用。表明框架能搭載不同機(jī)器學(xué)習(xí)模塊實(shí)現(xiàn)不同應(yīng)用,框架簡化參數(shù)選優(yōu)過程簡化機(jī)器學(xué)習(xí)運(yùn)用復(fù)雜度。
機(jī)器學(xué)習(xí)系統(tǒng)涵蓋基礎(chǔ)層、技術(shù)層和應(yīng)用層。其中基礎(chǔ)層包括計(jì)算、數(shù)據(jù)、存儲(chǔ)等基礎(chǔ)設(shè)施;技術(shù)層主要包括計(jì)算平臺(tái)、算法庫等基礎(chǔ)運(yùn)行環(huán)境;應(yīng)用層指具體的人工智能應(yīng)用。業(yè)務(wù)端通過Restful形式上傳樣本數(shù)據(jù)、發(fā)送預(yù)測查詢,實(shí)時(shí)得到預(yù)測結(jié)果。機(jī)器學(xué)習(xí)作為一種服務(wù)提供給業(yè)務(wù)應(yīng)用,使應(yīng)用方便地獲得了機(jī)器學(xué)習(xí)功能。實(shí)驗(yàn)通過封裝復(fù)雜的機(jī)器學(xué)習(xí)框架構(gòu)建和機(jī)器學(xué)習(xí)算法參數(shù)選取、調(diào)優(yōu)過程,來實(shí)現(xiàn)簡化機(jī)器學(xué)習(xí)應(yīng)用的目的。研究成果簡化了構(gòu)建機(jī)器學(xué)習(xí)系統(tǒng)的構(gòu)建過程,封裝復(fù)雜的技術(shù)層對(duì)外提供SaaS模式[11]服務(wù)。只需結(jié)構(gòu)化輸入訓(xùn)練樣本,就可得到想要的預(yù)測結(jié)果,完成簡化機(jī)器學(xué)習(xí)的功能,從而解決了機(jī)器學(xué)習(xí)易用性的問題。
[1] Spark, Lightning-fast cluster computing.[EB/OL]. http:∥www.spark.apache.org/,2011-07-01.
[2] J Hunt. Introduction to Akka Actors[M].Springer International Publishing,2014:383-398.
[3] 胡于響. 基于Spark的推薦系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].杭州:浙江大學(xué),2015.
[4] 岑凱倫,于紅巖,楊騰霄. 大數(shù)據(jù)下基于Spark的電商實(shí)時(shí)推薦系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 現(xiàn)代計(jì)算機(jī)(專業(yè)版),2016(24):61-69.
[5] 岑凱倫,于紅巖,楊騰霄. 大數(shù)據(jù)下基于Spark的電商實(shí)時(shí)推薦系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 現(xiàn)代計(jì)算機(jī)(專業(yè)版),2016(24):61-69.
[6] 劉建國,周濤,郭強(qiáng),等. 個(gè)性化推薦系統(tǒng)評(píng)價(jià)方法綜述[J]. 復(fù)雜系統(tǒng)與復(fù)雜性科學(xué),2009(3):1-10.
[7] A Gunawardana,G Shani.A Survey of Accuracy Evaluation Metrics of Recommendation Tasks[J]. Journal of Machine Learning Research, 2009, 10 (10):2935-2962.
[8] 黃國偉,許昱瑋. 基于用戶反饋的混合型垃圾郵件過濾方法[J]. 計(jì)算機(jī)應(yīng)用,2013,33(7):1861-1865.
[9] 馬小龍.一種改進(jìn)的貝葉斯算法在垃圾郵件過濾中的研究[J].計(jì)算機(jī)應(yīng)用研究, 2012, 29 (3):1091-1094
[10] J Beel, S Langer, B Gipp.TF-IDuF: A Novel Term-Weighting Sheme for User Modeling based on Users’ Personal Document Collections[C]∥Proceedings of the iConference 2017, Wuhan, China,2017: 452-459.
[11] 劉嘉,惠成峰,都興中,等. 基于SaaS模式的電子商務(wù)推薦平臺(tái)[J]. 計(jì)算機(jī)應(yīng)用,2012,32(9):2679-2682.