黃九鳴,吳泉源,張圣棟,賈 焰,劉 東,周 斌
(國(guó)防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院,湖南長(zhǎng)沙 410073)
?
基于AC-Trie的在線社交網(wǎng)絡(luò)文本流熱點(diǎn)短語(yǔ)挖掘
黃九鳴,吳泉源,張圣棟,賈 焰,劉 東,周 斌
(國(guó)防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院,湖南長(zhǎng)沙 410073)
在線社交網(wǎng)絡(luò)文本流中的熱點(diǎn)短語(yǔ)能反映文本流中隱含的熱點(diǎn)話題和突發(fā)事件.本文提出了一種無(wú)需分詞并能支持多種熱度度量函數(shù)的熱點(diǎn)短語(yǔ)挖掘技術(shù).首先用文本流的某個(gè)典型時(shí)段采樣得到候選短語(yǔ),構(gòu)建AC-Trie前綴樹.然后,基于該前綴樹,單遍掃描后續(xù)的文本流,將候選短語(yǔ)的歷史出現(xiàn)頻率記錄在Trie相應(yīng)節(jié)點(diǎn)上,從而支持多種基于歷史頻率的熱度計(jì)算方法.此外,為及時(shí)發(fā)現(xiàn)新的熱點(diǎn)短語(yǔ)并減少AC-Trie的構(gòu)建次數(shù),本文通過分析Trie樹各節(jié)點(diǎn)上的遺漏短語(yǔ)頻率,動(dòng)態(tài)確定候選短語(yǔ)的更新時(shí)機(jī).新浪微博數(shù)據(jù)集上的實(shí)驗(yàn)驗(yàn)證了本文方法的有效性(準(zhǔn)確率達(dá)89%)和高效性(時(shí)空開銷僅為基準(zhǔn)算法的2%).
文本流;熱點(diǎn)短語(yǔ);AC-Trie;文本挖掘;在線社交網(wǎng)絡(luò)
微博、即時(shí)通信、BBS等在線社交網(wǎng)絡(luò)應(yīng)用的用戶通過文本消息來(lái)表達(dá)和傳遞自己的思想.這些帶有時(shí)間屬性的文本消息構(gòu)成了網(wǎng)絡(luò)文本流或網(wǎng)絡(luò)文本流.挖掘網(wǎng)絡(luò)文本流中被廣泛討論和關(guān)注的熱點(diǎn)短語(yǔ),可有效地應(yīng)用于輿情分析、股市預(yù)測(cè)以及商業(yè)智能等領(lǐng)域.
已有的熱點(diǎn)詞挖掘技術(shù)面臨以下挑戰(zhàn):①在高速到達(dá)的海量網(wǎng)絡(luò)文本流上進(jìn)行統(tǒng)計(jì)挖掘,計(jì)算和存儲(chǔ)開銷巨大;②熱點(diǎn)短語(yǔ)的鑒別與用戶需求相關(guān),單一的統(tǒng)計(jì)方法適應(yīng)性差.針對(duì)上述問題,本文提出一種網(wǎng)絡(luò)熱點(diǎn)短語(yǔ)挖掘技術(shù)AC-Hot.該技術(shù)與最大頻繁項(xiàng)挖掘技術(shù)[1]相比,具有以下顯著特點(diǎn):①只需單遍掃描文本流.②作為一種熱點(diǎn)短語(yǔ)挖掘框架,通過詳細(xì)記錄了候選短語(yǔ)的歷史狀態(tài),可支持各種自定義的熱度度量方法.③內(nèi)存空間占用量可控,通過從文本流中采樣構(gòu)建候選短語(yǔ)集合,有效控制內(nèi)存占用量.④無(wú)需預(yù)先分詞,可自動(dòng)發(fā)現(xiàn)熱點(diǎn)新詞和短語(yǔ).
有一些研究與本文方法間接相關(guān),它們致力于挖掘突發(fā)詞語(yǔ)或檢測(cè)給定詞語(yǔ)的爆發(fā)時(shí)間點(diǎn).例如,文獻(xiàn)[2]用一個(gè)突發(fā)屬性集合來(lái)表示一個(gè)突發(fā)事件.文獻(xiàn)[3]針對(duì)博客和論壇文本流的特點(diǎn)對(duì)Kleinberg的算法[4]進(jìn)行擴(kuò)展.這類方法只考察單個(gè)詞語(yǔ),沒有考慮詞語(yǔ)的組合,無(wú)法發(fā)現(xiàn)由多個(gè)詞語(yǔ)組成的熱點(diǎn)短語(yǔ).給定文檔集中的頻繁短語(yǔ)挖掘有較多研究成果,如文獻(xiàn)[5,6].但是,這類方法無(wú)法處理流數(shù)據(jù).數(shù)據(jù)流中挖掘最大頻繁項(xiàng)集方面有三類方法,分別是滑動(dòng)窗口模型[7],時(shí)間消逝模型[8]和界標(biāo)模型[9].但它們都是在特定前提下給出了頻繁項(xiàng)集的定義,不保存各個(gè)(項(xiàng)集)子串的所有歷史狀態(tài),因此無(wú)法支持多種熱度度量模型.
社會(huì)媒體熱點(diǎn)話題檢測(cè)與突發(fā)事件檢測(cè)方面的研究[10~12]與本文目的相似,旨在發(fā)現(xiàn)能代表熱點(diǎn)話題或突發(fā)事件的文檔集或關(guān)鍵詞.文檔集方面,主要采用基于文本聚類的方法,通過比較文檔的相似性并采用Single-Pass或K-Means等聚類方法實(shí)現(xiàn)聚類[11],進(jìn)而通過各類別的文檔數(shù)量和點(diǎn)擊率等指標(biāo)計(jì)算話題熱度.這類方法的計(jì)算量巨大,可理解性差.另一方面,基于關(guān)鍵詞的熱點(diǎn)話題或突發(fā)事件檢測(cè)方面,比較有代表性的是基于LDA模型的各種改良方法[12].這類方法的計(jì)算量同樣比較大,并且需事先對(duì)文檔進(jìn)行分詞,無(wú)法自動(dòng)發(fā)現(xiàn)網(wǎng)絡(luò)新詞.
本文將微博、BBS、即時(shí)通信等在線社交網(wǎng)絡(luò)應(yīng)用的文本消息數(shù)據(jù)抽象為文本流,簡(jiǎn)稱文本流.稱字母表中的一系列字符組成的字符串為一個(gè)短語(yǔ).如果短語(yǔ)q是消息m的子串,稱消息m包含短語(yǔ)q,又稱短語(yǔ)q在m中出現(xiàn),記為m?q.一個(gè)文本流截至?xí)r間t時(shí)包含短語(yǔ)q的消息條數(shù),稱為截至t時(shí)q在該文本流的出現(xiàn)次數(shù).短語(yǔ)的出現(xiàn)頻率指其在一定時(shí)間窗口內(nèi)該短語(yǔ)出現(xiàn)次數(shù)與消息條數(shù)的比值,用函數(shù)θ表示,如定義1所示.
定義1 (出現(xiàn)頻率) 令q為一短語(yǔ),S為文本流,頻率統(tǒng)計(jì)時(shí)間窗口為Δt,函數(shù)τ(m)表示消息m的產(chǎn)生時(shí)刻,則t時(shí)q在S中的出現(xiàn)頻率為:
(1)
熱點(diǎn)短語(yǔ)挖掘任務(wù)為在指定時(shí)間點(diǎn),查找出熱度值排名在前k位的短語(yǔ),如定義2所示.
定義2 (熱點(diǎn)短語(yǔ)挖掘) 給定的文本流S,時(shí)刻t,用Q表示所有短語(yǔ)的集合,d為用戶指定的熱度度量函數(shù),稱熱度值排名前k位的短語(yǔ)為t時(shí)刻文本流S的TopK熱門短語(yǔ),如式(2)所示:
Hot(t,k,S)=
{qx|qx∈Q,1≤x≤k,?q∈Qd(qx,t)≥d(q,t)}
(2)
根據(jù)定義2,熱點(diǎn)短語(yǔ)挖掘直觀的解決方案是在內(nèi)存中保存所有短語(yǔ),將短語(yǔ)出現(xiàn)次數(shù)的變化情況保存在歷史頻率表中.為壓縮數(shù)據(jù)存儲(chǔ),本文的樸素方法基于Trie實(shí)現(xiàn).在Trie樹的每個(gè)節(jié)點(diǎn)上增加一個(gè)歷史頻率表.歷史頻率表中的元素為時(shí)間與出現(xiàn)頻率組成的二元組.該方法分為兩個(gè)步驟:首先將短語(yǔ)及其出現(xiàn)頻率保存在Trie樹上,然后在Trie樹上查找最熱門的k個(gè)短語(yǔ).
綜上,2018年冬季至2019年早春果園管理應(yīng)緊緊圍繞“保護(hù)樹體,規(guī)范樹形,調(diào)節(jié)花量,減少病蟲”的重點(diǎn),不違農(nóng)時(shí),抓緊實(shí)施,努力做到“適時(shí)、規(guī)范、到位”。
第一個(gè)步驟的過程如下:(1)為文本流創(chuàng)建一個(gè)Trie樹;(2)當(dāng)新消息m到達(dá)時(shí),將m包含的所有短語(yǔ)放在集合E中;(3)對(duì)每個(gè)q∈E,在Trie樹上查找是否存在q,如果不存在則將q加入Trie樹;(4)對(duì)每個(gè)q∈E,設(shè)其歷史頻率表表尾的元素為〈t,x〉,若τ(m) 第二個(gè)步驟中,當(dāng)用戶需要獲取文本流的熱點(diǎn)短語(yǔ)時(shí),遍歷Trie樹的所有短語(yǔ)并用指定的熱度公式來(lái)計(jì)算短語(yǔ)的熱度,然后,按熱度值對(duì)所有短語(yǔ)進(jìn)行排序,挑選出最熱的k個(gè)短語(yǔ). 這個(gè)樸素算法的缺點(diǎn)是時(shí)空開銷巨大.對(duì)于一個(gè)文本流,設(shè)消息集合為S,短語(yǔ)集合為E,第一個(gè)步驟的時(shí)間復(fù)雜度為O(∑m∈S2|m|),內(nèi)存存儲(chǔ)的開銷是O(∑q∈E|q|).第二個(gè)步驟每次查找最熱的k個(gè)短語(yǔ)的時(shí)間復(fù)雜度為O(|E|log(|E|)). 由于AC-Trie只需單遍掃描文本流便可同時(shí)匹配出多個(gè)模式串,本節(jié)提出基于AC-Trie的熱點(diǎn)短語(yǔ)挖掘框架AC-Hot.只要能及時(shí)地從文本流中截取一個(gè)片段作為樣本,將樣本消息中的所有短語(yǔ)加入AC-Trie中進(jìn)行監(jiān)視,便可高效發(fā)現(xiàn)新出現(xiàn)的熱點(diǎn)短語(yǔ).因此,AC-Hot是短語(yǔ)采樣和文本流掃描監(jiān)視兩個(gè)狀態(tài)交替運(yùn)行的過程.由于AC-Trie的構(gòu)建開銷巨大,因此為提高運(yùn)行效率應(yīng)盡可能減少短語(yǔ)采樣次數(shù).同時(shí),為保證及時(shí)發(fā)現(xiàn)新熱點(diǎn)短語(yǔ),應(yīng)動(dòng)態(tài)確定短語(yǔ)采樣時(shí)機(jī).AC-Hot通過估計(jì)掃描過程遺漏掉熱點(diǎn)短語(yǔ)的概率,動(dòng)態(tài)確定短語(yǔ)采樣的時(shí)機(jī). 定義3 (遺漏短語(yǔ)) 設(shè)文本流S,短語(yǔ)出現(xiàn)頻率統(tǒng)計(jì)處于掃描階段,監(jiān)視S的AC-Trie樹為T,有短語(yǔ)q?T∧m?q,m為S中新產(chǎn)生的消息,則在該掃描階段稱q為遺漏短語(yǔ). 出現(xiàn)頻率統(tǒng)計(jì)由掃描狀態(tài)轉(zhuǎn)入采樣狀態(tài)的時(shí)機(jī),將根據(jù)遺漏短語(yǔ)是熱點(diǎn)短語(yǔ)的可能性大小來(lái)動(dòng)態(tài)確定.為估計(jì)遺漏短語(yǔ)是熱點(diǎn)短語(yǔ)的可能性大小,我們用遺漏短語(yǔ)的頻率值(簡(jiǎn)稱遺漏頻率)來(lái)估計(jì)遺漏短語(yǔ)是熱點(diǎn)短語(yǔ)的概率.遺漏頻率記錄在AC-Trie遺漏短語(yǔ)的父節(jié)點(diǎn)上. 定義4 (遺漏頻率) 設(shè)統(tǒng)計(jì)時(shí)間窗口為Δt,時(shí)間段[t-Δt,t)內(nèi)文本流S中有遺漏短語(yǔ)q1,q2,…,qn在AC-Trie樹上的最長(zhǎng)前綴都為q,則q對(duì)應(yīng)節(jié)點(diǎn)v(q)在t時(shí)的遺漏頻率為: (3) 記錄在每個(gè)節(jié)點(diǎn)上的遺漏頻率,是以節(jié)點(diǎn)對(duì)應(yīng)短語(yǔ)為前綴的所有遺漏短語(yǔ)的出現(xiàn)頻率之和,不能直接用于熱度計(jì)算,應(yīng)根據(jù)遺漏頻率估算出每條遺漏短語(yǔ)的出現(xiàn)頻率范圍.由于掃描狀態(tài)下沒有為新短語(yǔ)新增子節(jié)點(diǎn),因此各節(jié)點(diǎn)應(yīng)新增的子節(jié)點(diǎn)數(shù)量,等于以節(jié)點(diǎn)短語(yǔ)為前綴的遺漏短語(yǔ)個(gè)數(shù).給定一個(gè)文本流S,對(duì)于任意短語(yǔ)(字符串)“c1c2…ck”(k≥1),相應(yīng)后繼字符集合C(t)={c|“c1c2…ckc”?m,τ(m)≤t,m∈S},則集合C(t)的大小隨t增長(zhǎng)遞增,但增長(zhǎng)速度逐漸變慢.本文假設(shè)短語(yǔ)后繼字符的數(shù)量關(guān)于時(shí)間呈指數(shù)分布.在AC-Trie樹上,對(duì)于任一節(jié)點(diǎn)(短語(yǔ)),其指向子節(jié)點(diǎn)的邊上的字符即為該節(jié)點(diǎn)的后繼字符.后繼字符數(shù)量關(guān)于時(shí)間的分布情況,等價(jià)于潛在子節(jié)點(diǎn)數(shù)量關(guān)于時(shí)間的分布情況.因此,潛在子節(jié)點(diǎn)數(shù)量關(guān)于時(shí)間的分布函數(shù)如下式所示: (4) 其中,x為一節(jié)點(diǎn),t為時(shí)間,αx和βx為待定參數(shù).為估計(jì)各個(gè)節(jié)點(diǎn)的αx和βx參數(shù),首先記錄每個(gè)節(jié)點(diǎn)在采樣階段的每個(gè)統(tǒng)計(jì)時(shí)間窗口內(nèi)新增子節(jié)點(diǎn)的數(shù)量,再用最小二乘法進(jìn)行估計(jì). TopK查找過程與短語(yǔ)出現(xiàn)頻率監(jiān)視過程并行運(yùn)行,基于AC-Trie中各候選短語(yǔ)的歷史頻率表,用具體的熱度計(jì)算公式計(jì)算并查找出熱度排名在前k位的短語(yǔ),同時(shí)根據(jù)各節(jié)點(diǎn)的遺漏歷史表估計(jì)遺漏短語(yǔ)出現(xiàn)頻率的取值,以判斷是否需要重新進(jìn)行短語(yǔ)采樣.TopK查找過程首先采用自底向上寬度優(yōu)先遍歷Trie樹的策略,將子節(jié)點(diǎn)上歷史頻率表的值匯總到父節(jié)點(diǎn)和fail 指針指向的節(jié)點(diǎn)(后綴)上.對(duì)每個(gè)節(jié)點(diǎn),計(jì)算其熱度,并估算以該節(jié)點(diǎn)為前綴的各遺漏短語(yǔ)中的最大熱度值,然后將這兩個(gè)值分別用兩個(gè)格式為<熱度,節(jié)點(diǎn),類型>的三元組表示.執(zhí)行完上述步驟后,檢查遺漏歷史表,若相應(yīng)節(jié)點(diǎn)下的遺漏短語(yǔ)中可能含有熱度在前k位的短語(yǔ),文本流中可能有AC-Trie上不存在的熱點(diǎn)短語(yǔ),監(jiān)視狀態(tài)轉(zhuǎn)入短語(yǔ)采樣狀態(tài). 為驗(yàn)證本文方法的有效性,我們從新浪微博、騰訊微博和Twitter三個(gè)社交網(wǎng)絡(luò)平臺(tái)上采集2015年5月1日至5月30日一個(gè)月內(nèi)關(guān)于“四川”的2661萬(wàn)條微博,構(gòu)建實(shí)驗(yàn)數(shù)據(jù)集.本實(shí)驗(yàn)以“自動(dòng)發(fā)現(xiàn)每天輿情熱點(diǎn)”為需求背景,設(shè)置TopK查找的運(yùn)行周期(簡(jiǎn)稱TopK周期)為1天.由于人的關(guān)注范圍有限,TopK查找輸出的熱點(diǎn)短語(yǔ)數(shù)目k設(shè)為20. 由于本文方法AC-Hot與基于話題模型的熱點(diǎn)話題發(fā)現(xiàn)在表現(xiàn)形式、計(jì)算性能上存在顯著差異(見本文相關(guān)研究),因此本實(shí)驗(yàn)不同這類方法進(jìn)行對(duì)比.另一方面,已有的基于關(guān)鍵詞的方法,都需要事先分詞,不能發(fā)現(xiàn)新詞,更不能靈活支持多種統(tǒng)計(jì)方法,難以同AC-Hot進(jìn)行實(shí)驗(yàn)對(duì)比.為此,本實(shí)驗(yàn)以基于Trie的樸素算法為基準(zhǔn)算法,對(duì)比分析AC-Hot的準(zhǔn)確性和處理速度. 我們?cè)跀?shù)據(jù)集上充分測(cè)試了AC-Hot.各個(gè)TopK周期上的準(zhǔn)確率如圖2所示,平均準(zhǔn)確率為0.89,總體上比較穩(wěn)定.表1列出了AC-Hot在數(shù)據(jù)集上運(yùn)行時(shí),短語(yǔ)采樣被觸發(fā)的TopK周期編號(hào).可見,幾處波動(dòng)較大的地方,恰為AC-Hot判斷需重新進(jìn)行短語(yǔ)采樣的時(shí)刻.并且,重新采樣完畢后,準(zhǔn)確率馬上又回到較高的水平. 表1 短語(yǔ)采樣時(shí)刻 圖3(a)與圖3(b)分別展示了AC-Hot與基準(zhǔn)算法在數(shù)據(jù)集上的時(shí)間開銷對(duì)比和內(nèi)存空間開銷對(duì)比.兩張圖的橫軸均為TopK周期編號(hào),縱軸分別為所需CPU時(shí)間與內(nèi)存使用量.可見,AC-Hot的時(shí)間開銷和內(nèi)存開銷都遠(yuǎn)小于基準(zhǔn)算法(樸素算法). 文本流中的熱點(diǎn)短語(yǔ)能反映文本流中隱含的熱點(diǎn)話題和突發(fā)事件.本文分析了熱點(diǎn)短語(yǔ)的形成規(guī)律,針對(duì)熱度度量方法多樣、文本消息數(shù)量巨大等挑戰(zhàn),提出了具有極高性能的近似方法AC-Hot.該方法能支持多種熱度度量方法,平均準(zhǔn)確率達(dá)89%,時(shí)空開銷僅為基準(zhǔn)算法的2%. [1]Calders T,Dexters N,Goethals B.Mining frequent itemsets in a stream[A].Seventh IEEE International Conference on Data Mining[C].Omaha,Nebraska:IEEE,2007.83-92. [2]Yuan Z,Jia Y,Yang S.Online burst detection over high speed short text streams[A].Computational Science-ICCS 2007[C].Heidelberg,Berlin:Springer,2007.717-725. [3]Fujiki T,Nanno T,Suzuki Y,Okumura M.Identification of bursts in a document stream[A].First International Workshop on Knowledge Discovery in Data Streams (in conjunction with ECML/PKDD 2004)[C].Pisa,Italy,2004.55-64. [4]Kleinberg J.Bursty and hierarchical structure in streams[J].Data Mining and Knowledge Discovery,2003,7(4):373-397. [5]Ahonen-Myka H.Discovery of frequent word sequences in text[A].Pattern Detection and Discovery[M].Berlin Heidelberg:Springer,2002.180-189. [6]Han J,Pei J,Yin Y.Mining frequent patterns without candidate generation[A].ACM SIGMOD Record[C].Dallas,Texas:ACM,2000.29(2):1-12. [7]Wong R C W,Fu A W C.Mining top-K frequent itemsets from data streams[J].Data Mining and Knowledge Discovery,2006,13(2):193-217. [8]Lee D,Lee W.Finding maximal frequent itemsets over online data streams adaptively[A].Fifth IEEE International Conference on Data Mining[C].Houston,Texas:IEEE,2005.8. [9]Yu J X,Chong Z,Lu H,et al.False positive or false negative:mining frequent itemsets from high speed transactional data streams[A].Proceedings of the Thirtieth International Conference on Very Large Data Bases (VLDB Endowment)[C].Toronto,2004.Volume 30:204-215. [10]Thanh Lam H,Calders T.Mining top-k frequent items in a data stream with flexible sliding windows[A].Proceedings of the 16th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining[C].Washington,DC:ACM,2010.283-292. [11]Zhou G,Zou H C,Xiong X B,et al.MB-singlepass:microblog topic detection based on combined similarity[J].Computer Science,2012,39(10):198-202. [12]Liu G,Xu X,Zhu Y,et al.An improved latent dirichlet allocation model for hot topic extraction[A].IEEE Fourth International Conference on Big Data and Cloud Computing (BdCloud)[C].Sydney:IEEE,2014.470-476. 黃九鳴 男,1981年生于福建安溪.博士、中國(guó)人民解放軍國(guó)防科學(xué)技術(shù)大學(xué)助理研究員.研究方向?yàn)閃eb挖掘、大數(shù)據(jù)、分布式計(jì)算和社交網(wǎng)絡(luò)分析. E-mail:jiuming.huang@qq.com 吳泉源 男,1942年生于上海.中國(guó)人民解放軍國(guó)防科學(xué)技術(shù)大學(xué)教授、博士生導(dǎo)師.研究方向?yàn)槿斯ぶ悄芎头植际接?jì)算. Mining Hot Phrases on Social Network Text Streams Based on AC-Trie HUANG Jiu-ming,WU Quan-yuan,ZHANG Sheng-dong,JIA Yan,LIU Dong,ZHOU Bin (SchoolofComputer,NationalUniversityofDefenseTechnology,Changsha,Hunan410073,China) The hot phrases in the social network text streams can reflect the hidden hot topics and sudden events.This paper proposes a hot phrase mining technology which can support various hot degree measures without word segmentation.We first construct an AC-Trie using the candidate phrases gathered from text streams.Based on such AC-Trie,we record the historical occurrence frequency of phrases on the Trie by scanning the following streams in single-pass.Furthermore,the AC-Trie needs to be reconstructed using the new samples in the text stream because of the evolution of hot phrases.Thus,we start the reconstruction dynamically according to estimating the occurrence frequency of the missed phrases.The experiments on the Sina micro-blog show that our approach is effective (precision of 89%) and efficient (overhead is 2% of na?ve approach). text stream;hot phrase;AC-Trie;text mining;micro-blog 2015-02-15; 2015-08-14;責(zé)任編輯:李勇鋒 國(guó)家973重點(diǎn)基礎(chǔ)研究發(fā)展計(jì)劃(No.2013CB329601);國(guó)家自然科學(xué)基金(No.61502517) TP391 A 0372-2112 (2016)10-2466-05 ??學(xué)報(bào)URL:http://www.ejournal.org.cn 10.3969/j.issn.0372-2112.2016.10.0265 基于AC-Trie的熱點(diǎn)短語(yǔ)挖掘技術(shù)AC-Hot
6 實(shí)驗(yàn)驗(yàn)證
7 結(jié)束語(yǔ)