王玉玲,劉曉鳴,王堯永(.中國聯(lián)通濟(jì)南分公司,山東濟(jì)南 5000;.中國聯(lián)通山東分公司,山東濟(jì)南 5000)
隨著移動互聯(lián)網(wǎng)的蓬勃發(fā)展,行業(yè)短信被廣泛應(yīng)用于網(wǎng)站、APP驗(yàn)證碼、物流快遞、訂單通知等領(lǐng)域,為產(chǎn)品宣傳、服務(wù)維系提供了有效手段,但因部分商家群發(fā)廣告短信導(dǎo)致行業(yè)垃圾短信投訴量激增。同時(shí)各類違規(guī)催收、暴力催收問題呈野蠻發(fā)展態(tài)勢,其中暴力短信催債成為網(wǎng)貸債務(wù)催收的重要手段,在催收過程中,催債人或催債公司使用手機(jī)號碼,對貸款人及其關(guān)系人(親屬、同學(xué)、同事、朋友)實(shí)施短信轟炸,以此向貸款人施壓,迫使其還款。該行為給貸款人及其關(guān)系人的身心、工作、生活造成了惡劣影響,嚴(yán)重破壞了正常的經(jīng)濟(jì)、社會生活秩序。
為了配合工信部關(guān)于垃圾短信的專項(xiàng)治理工作,某運(yùn)營商制定了防范打擊通信詐騙電話、騷擾電話治理、垃圾短信治理3項(xiàng)考核指標(biāo)。
首先調(diào)查現(xiàn)網(wǎng)垃圾短信攔截情況,垃圾短信檢測攔截系統(tǒng)建于2012年,主要以短信發(fā)送頻次和短信內(nèi)容中的關(guān)鍵字作為垃圾短信的檢測手段(見圖1)。
圖1 垃圾短信檢測手段
發(fā)送頻次檢測:以單位時(shí)間內(nèi)手機(jī)發(fā)送短信條數(shù)作為檢測條件,如單位時(shí)間內(nèi)發(fā)送的條數(shù)達(dá)到門限值,則作為疑似垃圾短信進(jìn)行處理,但門限值很容易被發(fā)送者探測出來,從而采取低于門限值的發(fā)送頻率避開檢測。統(tǒng)計(jì)表明,當(dāng)門限值設(shè)為30 條/h時(shí),短信發(fā)送頻次檢測出的垃圾短信準(zhǔn)確率只有8%,需人工進(jìn)行仲裁。如降低判斷門限,準(zhǔn)確率則會大幅降低,需要人工仲裁的短信呈指數(shù)型上升,受攔截準(zhǔn)確率及人工仲裁工作量的限制,檢測門限無法設(shè)置過低。
關(guān)鍵字檢測:以監(jiān)控時(shí)段內(nèi)發(fā)送含敏感關(guān)鍵字短信的數(shù)量是否達(dá)到檢測門限,來判斷是否為垃圾短信,但當(dāng)含有關(guān)鍵字的短信被攔截后,垃圾短信發(fā)送者可更換短信內(nèi)容規(guī)避檢測。另外,對于內(nèi)容不斷變化垃圾短信,關(guān)鍵字檢測方法發(fā)現(xiàn)垃圾短信能力較弱,需依靠用戶舉報(bào)被動發(fā)現(xiàn)。
為了彌補(bǔ)現(xiàn)有垃圾短信檢測手段的不足,順應(yīng)人工智能時(shí)代機(jī)器學(xué)習(xí)技術(shù)潮流,本文集中進(jìn)行前瞻性技術(shù)的應(yīng)用研究,著力解決垃圾短信檢測難的技術(shù)難題,并提出了3種解決方案。
根據(jù)垃圾短信投訴在短信中心反查舉報(bào)號碼注冊的MSC 地址,確定垃圾短信發(fā)送者所在城市,并定時(shí)提取該城市所有MSC 發(fā)出的全部短信進(jìn)行檢測(見圖2)。經(jīng)過統(tǒng)計(jì)分析,共確定9個(gè)垃圾短信易發(fā)城市,定時(shí)提取從這9個(gè)城市發(fā)送的短信進(jìn)行重點(diǎn)檢測。
圖2 查找發(fā)送位置流程圖
統(tǒng)計(jì)漫游到全國各MSC 的短信提交量,若MSC 提交量大于正常值則判斷為垃圾短信,并根據(jù)該MSC 確定所在城市。據(jù)此,又將5 個(gè)城市確定為垃圾短信易發(fā)地(市),定時(shí)提取其MSC發(fā)送的短信(見圖3)。
圖3 查找MSC流程圖
根據(jù)發(fā)送位置定位方式所提取的短信,根據(jù)發(fā)送條數(shù)、短信長度、離散度及號碼入網(wǎng)時(shí)間4個(gè)常規(guī)條件排除明顯不是垃圾短信的短信,以減少智能算法工作量(見圖4)。
圖4 垃圾短信檢測條件
該方法對特定漫游城市重點(diǎn)檢測,提高了檢測的針對性,因此檢測門限、檢測時(shí)間粒度均可較傳統(tǒng)方法降低,如檢測時(shí)間粒度可低至1 min,檢測門限可降至2條,再輔助套餐、被叫號碼離散度等判斷手段,垃圾短信檢測準(zhǔn)確率可達(dá)99%以上,較傳統(tǒng)檢測方法提高30倍以上。
2.2.1 垃圾短信樣本庫檢測的基本思想
利用已知的垃圾短信樣本檢測待檢短信是發(fā)現(xiàn)垃圾短信有效方法,如果采用字符串匹配方法對短信進(jìn)行比較,需要兩重循環(huán)來遍歷待檢短信和垃圾短信樣本中的所有字符串,進(jìn)而統(tǒng)計(jì)這2 個(gè)集合中相同字符串的個(gè)數(shù)。對內(nèi)存和時(shí)間的消耗都非常大,檢測效率低,樣本庫只能維持在幾百條左右。
2.2.2 Hash算法的優(yōu)勢與不足
借鑒互聯(lián)網(wǎng)網(wǎng)頁的去重方法,使用Hash算法將短信進(jìn)行數(shù)字化,從而實(shí)現(xiàn)垃圾短信的快速檢測。Hash算法實(shí)現(xiàn)原理:將不同長度規(guī)則的短信內(nèi)容通過Hash算法轉(zhuǎn)換為一個(gè)相同長度的字符串(數(shù)字簽名),用這些數(shù)字簽名來表示原文本。當(dāng)某條短信的數(shù)字簽名與垃圾短信樣本庫數(shù)字簽名一致時(shí),則可認(rèn)定為垃圾短信。這樣就將字符串比較轉(zhuǎn)換成了數(shù)字運(yùn)算,從而提高檢測速度,樣本庫也可以達(dá)到百萬級。
當(dāng)垃圾短信發(fā)送者發(fā)現(xiàn)發(fā)送完全相同內(nèi)容的垃圾短信易被攔截時(shí),會嘗試用在短信中增加虛假稱呼等方法來規(guī)避垃圾短信的檢測。
如表1 所示,2 條短信內(nèi)容只有稱呼不同,但生成的數(shù)字簽名完全不同,因此普通的Hash算法無法檢測與樣本短信內(nèi)容不完全相同的短信。
表1 數(shù)字簽名對比
2.2.3 SimHash算法原理與實(shí)現(xiàn)
SimHash算法是一種局部敏感Hash。所謂局部敏感,是假定A、B具有一定的相似性,在Hash之后,仍然能保持這種相似性。SimHash 的基本原理是對于2 個(gè)給定的變量x,y,哈希函數(shù)h總是滿足:
其中,Pr表示 h(x)=h(y)的可能性,sim(x,y)∈[0,1]是相似度函數(shù),一般也用雅可比函數(shù)Jac(x,y)來表示x,y的相似度,sim(x,y)表示如下:
h屬于哈希函數(shù)簇F,需要滿足以下條件:
a)如果d(x,y)≤d1,則Prh∈F[h(x)=h(y)]≥P1)。
b)如果d(x,y)≥d2,則Prh∈F[h(x)=h(y)]≤P2)。
稱F為(d1,d2,p1,p2)上的敏感哈希簇函數(shù)。其中d(x,y)表示x,y變量之間的距離,通俗而言,如果x,y足夠相似時(shí),那么它們映射為同一Hash函數(shù)。
其基本做法是通過將原始的文本映射為64 位的二進(jìn)制數(shù)字串,然后通過海明距離(Hamming Distance)來度量2 個(gè)串(通常是二進(jìn)制串)的差異,2 個(gè)二進(jìn)制串對應(yīng)的位有幾個(gè)不一樣,那么海明距離就是幾,例如x=1010,y=1011,那么x和y的海明距離就是1,值越小越相似。
2.2.4 SimHash算法實(shí)現(xiàn)流程
a)分詞:判斷短信內(nèi)容分詞,形成這條短信的特征單詞,最后形成去掉噪聲詞的單詞序列,并為每個(gè)詞加上權(quán)重,權(quán)重一般分為5個(gè)級別(見表2)。
表2 SimHash算法分詞
b)Hash:通過Hash算法把每個(gè)詞變成Hash值,將字符串變成了一串串?dāng)?shù)字。
c)加權(quán):通過步驟b)的Hash生成結(jié)果,按照單詞的權(quán)重形成加權(quán)數(shù)字串。
d)合并:把上面各個(gè)單詞算出來的序列值累加,變成只有一個(gè)序列串。
e)降維:把步驟d)算出來的序列數(shù)值變成01串,形成最終的SimHash 數(shù)字簽名,如果每一位大于0 記為1,小0記為0。
圖5所示為SimHash算法流程示意。
圖5 SimHash算法流程示意圖
對于待檢測短信,首先轉(zhuǎn)化為64 位的數(shù)字簽名,與樣本庫中已存在的數(shù)字簽名逐一進(jìn)行對比,當(dāng)海明距離小于閾值N時(shí),則認(rèn)為其與垃圾短信樣本庫的內(nèi)容相似,可認(rèn)定為垃圾短信(見圖6)。
圖6 判斷流程
在實(shí)踐過程中,當(dāng)閾值N取值為5時(shí),判斷得出的垃圾短信準(zhǔn)確率可達(dá)95%,可以將其直接加入垃圾短信黑名單;當(dāng)閾值N取值為10時(shí),判斷得出的垃圾短信準(zhǔn)確率約為60%,需要人工復(fù)核其是否為垃圾短信。
該方法對使用多個(gè)號碼大量群發(fā)重復(fù)性垃圾短信的情形有良好的檢測效果,上線后,長期發(fā)送重復(fù)垃圾短信的情況基本消失,取得了良好的治理效果。
樸素貝葉斯算法具備穩(wěn)定性較好、實(shí)現(xiàn)簡單且易于開發(fā)維護(hù)的特點(diǎn),是文本文檔分類算法中較為有效的算法。
2.3.1 樸素貝葉斯算法原理
樸素貝葉斯分類方法是在條件獨(dú)立性假設(shè)的前提下,計(jì)算該文本所屬類別的概率,是建立在貝葉斯定理之上的一種分類算法(Dreiseitletal.,2002)。貝葉斯定理是用來計(jì)算隨機(jī)事件A 和B 的條件概率之間的關(guān)系,其計(jì)算方法如下:
樸素貝葉斯分類算法通過計(jì)算文本類別與詞分布的聯(lián)合概率,進(jìn)而對文本進(jìn)行分類。具體計(jì)算方法如下:
P(Cj|D)是給定的文本D 屬于類別Cj的概率,P(D|Cj)是類別Cj包含文本D 的概率,最后把P(Cj|D)中值最大的一個(gè)作為給定文本D所屬的類別。樸素貝葉斯算法是在詞之間相互獨(dú)立的假設(shè)下計(jì)算的,對于式中P(D)對總體的計(jì)算結(jié)果沒有影響,故而求解P(Cj|D)可轉(zhuǎn)換成求P(D|Cj)·P(C)的值。計(jì)算公式可轉(zhuǎn)換為:
后驗(yàn)概率的最大值所對應(yīng)的類即為該未知樣本的分類:
面對每天1 億多條的海量短信檢測,樸素貝葉斯算法的處理速度及準(zhǔn)確率仍有提升空間,需采取改進(jìn)措施,以提升處理效率及準(zhǔn)確性。
2.3.2 文本表示改進(jìn),提升準(zhǔn)確率
短信文本表示改進(jìn)方面,在對垃圾短信預(yù)處理時(shí),針對噪聲數(shù)據(jù)大和jieba 分詞不能識別新詞的問題,數(shù)據(jù)采用流程化處理,包括繁體字轉(zhuǎn)換、數(shù)字和特殊符號替換、錯(cuò)別字糾正、文本轉(zhuǎn)拼音4個(gè)部分。對未能識別的新詞,引入了改進(jìn)的新詞識別工具,將獲得的新詞字典導(dǎo)入jieba 自定義詞庫中。并且為了減少非垃圾短信預(yù)測為垃圾短信的概率,引入了“例外”一類。對“例外”這類使用固定閾值和差值閾值選擇方法,用于獲得科學(xué)的閾值,以提高檢測準(zhǔn)確性。
2.3.3 特征提取改進(jìn),提升效率
垃圾短信特征項(xiàng)的提取,改為以基本短語為單位的分詞方法,結(jié)合基本短語構(gòu)成算法,并根據(jù)基本短語的定義實(shí)現(xiàn)由詞到基本短語的轉(zhuǎn)換。
短語結(jié)構(gòu)模型的界定是一個(gè)確定不同類型短語邊界位置的過程,是以單詞為構(gòu)件形成短語的主要步驟。作為能代表文本主要特征的一般名詞短語和動詞短語,其界定規(guī)則對降低特征項(xiàng)空間的維度及提高準(zhǔn)確性來說非常重要。基本短語模式特征項(xiàng)提取應(yīng)當(dāng)遵循以下2個(gè)規(guī)則[5]:
a)一般名詞短語結(jié)構(gòu)模型界定。漢語簡單非嵌套式名詞短語(baseNP)的結(jié)構(gòu)有:
(a)baseNP+baseNP,如“公路里程”“高校教師”等。
(b)base NP+名詞名動詞,如“公路建設(shè)”“高校發(fā)展”等。
(c)限定性定語+baseNP,如“雙核”“三好學(xué)生”等。
(d)限定性定語+名詞名動詞,如“中國人口調(diào)查”“三峽工程建設(shè)”。
b)一般動詞短語結(jié)構(gòu)模型界定。一般動詞短語結(jié)構(gòu)模型形式主要有:
(a)述補(bǔ)結(jié)構(gòu)、如壓馬路、走路等。
(b)述賓結(jié)構(gòu),如修改論文、選角等。
(c)狀中結(jié)構(gòu),如立刻動手、到黃山游玩等。
(d)連動結(jié)構(gòu),如去洗手、開動等。
(e)聯(lián)合結(jié)構(gòu),如邊走邊唱、甲和乙等。
(f)其他動詞短語,如“著、了、過”屬性的動詞,睡了、坐著、想了想、聽說過等。
短信文本短語特征項(xiàng)提取過程:先把第一個(gè)分詞詞語與后面的詞語分別進(jìn)行組合,通過過程測試檢驗(yàn),則認(rèn)為合格;如果不通過,則將該短信所有短語列為垃圾短信短語(詞語)向量集,繼續(xù)取下一個(gè)分詞詞語重復(fù)上述過程,直到最后一個(gè)詞語完成組合測試為止(見圖7)。
圖7 垃圾短信短語特征項(xiàng)提取流程圖
基于互信息方法,利用統(tǒng)計(jì)思想劃分分詞短語的邊界。互信息是考察一個(gè)消息中兩信號間的相互依賴度的度量,也是分詞詞語間結(jié)合的緊密程度的度量,通過短信文本相鄰詞性標(biāo)記的互信息值大小來進(jìn)行判斷,其極小值的位置為短語的邊界。互信息方法計(jì)算公式為:
基于短語樸素貝葉斯檢測算法的主要改進(jìn)在于利用互信息計(jì)算短信文本特征項(xiàng)提取算法,將特征項(xiàng)提取由以詞為單位改為以短語為單位,降低樣本空間規(guī)模,從而提升效率。
本文提出的基于人工智能的垃圾短信治理新方法,將垃圾短信特征加入樸素貝葉斯機(jī)器學(xué)習(xí)算法,實(shí)現(xiàn)垃圾短信精準(zhǔn)畫像,將垃圾短信管控重心前移,從事中被動攔截變?yōu)樵搭^主動管控。
某運(yùn)營商垃圾短信智能檢測系統(tǒng)上線后,提高了垃圾短信檢測查全率、查準(zhǔn)率,實(shí)現(xiàn)對垃圾短信的精準(zhǔn)攔截,有效降低了垃圾短信舉報(bào)率。隨著深度學(xué)習(xí)技術(shù)的不斷進(jìn)步以及數(shù)據(jù)處理能力的不斷提升,為持續(xù)提高短信息質(zhì)量和垃圾短信的治理效率,基于深度學(xué)習(xí)技術(shù)的垃圾短信治理是值得研究的方向。