文玥琪,周安民
(四川大學網(wǎng)絡空間安全學院,成都610225)
在線社交網(wǎng)絡具有現(xiàn)代日常生活中無處不在的特征,人們訪問社交網(wǎng)絡以分享他們的故事并與他們的朋友聯(lián)系。許多網(wǎng)民通常參與多元社交網(wǎng)絡,以滿足閱讀、研究、分享、評論和抱怨的社交需求。有很多選擇可以虛擬地連接他們的現(xiàn)實社交網(wǎng)絡,并在線擴展和增強它們。它們擁有海量的用戶規(guī)模,但進行實名認證的用戶卻只占很小的比例,這使得惡意用戶可以肆意散播各種謠言和不良信息,給互聯(lián)網(wǎng)監(jiān)管帶來了巨大挑戰(zhàn)。因此對跨社交網(wǎng)絡的實體用戶進行關聯(lián),建立身份識別信息網(wǎng)絡,有助于解決用戶的身份識別和監(jiān)管問題。
用戶檔案鏈接是一個與在線社交網(wǎng)絡并行發(fā)展的研究領域。該方法的核心是,通過仔細研究兩個用戶的屬性[1-4],它們比較兩個用戶的屬性(通常是一個社交網(wǎng)絡中的一個,另一個社交網(wǎng)絡中的一個)的相似性。Vosecky 等人[4]和Carmagnola 等人[1]提出了基于線性閾值的模型,該模型將每個特征與權重相結合,并通過與預設閾值進行比較來確定它們是否屬于一個身份。Malhotra 等人[2]和Nunes 等人[3]采用監(jiān)督分類來決定匹配。
除了屬性比較,Narayanan 等人[5]和Bartunov 等人[6]利用用戶的社交關系來識別其OSN 帳戶。前者通過利用用戶在不同OSN 中經(jīng)常具有相似的社交關系這一事實,證明可以在沒有個人信息的情況下對用戶進行匿名處理。Bartunov 等也提出過類似的報告,對用戶圖進行建模可以通過重新標識具有相似關系結構的用戶來提高性能。
一些工作還旨在消除具有相同名稱的用戶(“同名用戶”)的歧義,這是一個名為名稱消除歧義的子任務[7-8]。Zafarani 等人[9]探索了用戶如何表達自己并生成用戶名的行為特征。Perito 等人[10]研究的用戶名選擇向公眾公開了我們的身份,而Liu 等人[11]通過對用戶名的通用性進行建模來改善名稱歧義性,以幫助更好地估計鏈接可能性。
用戶檔案鏈接類似于傳統(tǒng)的記錄鏈接(或實體解析)。調查[12-13]回顧了各種方法,包括命名屬性計算[14],模式映射[15-16]和分層數(shù)據(jù)中的重復檢測[17],所有這些方法都有助于構建特性鏈接技術。
本文基于用戶屬性信息相似度匹配和熵權法實現(xiàn)了兩個平臺的用戶身份關聯(lián),首先實現(xiàn)了爬取Facebook 和Twitter 數(shù)據(jù)在線爬蟲系統(tǒng),針對用戶檔案信息等進行采集,對采集到的信息進行數(shù)據(jù)清理和篩選之后,對兩個社交網(wǎng)絡中的用戶名、個人描述、個人主頁和地理位置四個屬性分別進行字符串相似度匹配,最后通過熵權法給不同屬性信息分配相應的權重從而得到用戶檔案的總相似度,得到最終用戶身份關聯(lián)結果。
LinkedIn 和Twitter 的用戶之間的總相似度。其計算方法如公式(1)所示:

其中,F(xiàn)l為Facebook 用戶,F(xiàn)t為Twitter 用戶為屬性的權重;simljt為屬性相似度;Similarity為用戶之間的總相似度。
識別流程如圖1 所示:

圖1 個人簡介相似度計算流程圖
大多數(shù)的屬性項都存儲為字符串類型,因此利用計算字符串序列之間相似程度就可以獲取該屬性項的相似度。字符串相似度的計算已經(jīng)建立了成熟的理論和模型,并且已經(jīng)被廣泛應用,其中來自統(tǒng)計學、數(shù)據(jù)庫、人工智能領域的學者都從自身的研究領域出發(fā),提出了不同的相似度計算方法。常見的字符串相似度計算方法有:
(1)MN 算法[1]:MN 用戶名匹配算法包括兩個步驟,先進行預處理,將用戶名中含有的特殊字符或表情刪除;然后結合精確匹配與部分匹配,得到最終的匹配結果值。
(2)詞頻一逆文檔頻率(Term Frequency-Inverse Document Frequency,TF-IDF)相似度匹配算法:這是一種用于信息檢索與數(shù)據(jù)挖掘的常用加權技術。TF 表示詞頻,IDF 表示逆文本頻率指數(shù)。用以評估一個詞或短語對于文檔和語料庫的重要程度。詞語或短語在文檔中出現(xiàn)的次數(shù)越多其重要性也就越大,反之則重要性越小。TF 表示詞頻,即一個詞在整個文本中出現(xiàn)的頻率,IDF 表示逆文檔頻率,即給不常見詞匯賦予更大的權重。
TF 的計算方法,如公式(2)所示:

其中,ni,j為某一詞在文檔中出現(xiàn)的次數(shù);為所有詞在文檔中出現(xiàn)的次數(shù)之和。
IDF 的計算方法,如公式(3)所示:

TF-IDF 的計算方法,如公式(4)所示:

其中,tfi,j表示該詞的詞頻;idfi,j表示該詞的逆文檔頻率;tf idfi,j表示該詞的TF-IDF 值。
(3)余弦相似度計算方法:余弦相似度計算方法是通過兩個向量的余弦夾角來計算向量之間的相似度,余弦值越接近1,余弦夾角就越接近0,表明兩個向量越相似,余弦相似性的值域在-1 到1 之間,由于實驗中向量元素的值都為非負值,因此余弦相似性的值的值域也就限制在[0,1]之間。
余弦相似性計算方法,如公式(5)所示:

其中,Ai和Bi分別表示向量A 和B 的元素。
li和lj分別表示賬號i 和賬號j 的地理位置,地點li的經(jīng)緯度坐標為(lati,loni),地點lj的經(jīng)緯度坐標為(latj,lonj),兩個全球定位系統(tǒng)(Global Positioning System,GPS)坐標之間的距離采用大圓距離的計算方法計算[18],大圓距離指的是從地球的一點出發(fā)到達球面上另外一點所經(jīng)過的最短路徑長度,計算方法如公式(6)所示:

其中,li,lj表示兩個地理位置;lati,latj分別表示li的緯度和lj的緯度;loni,lonj分別表示li的經(jīng)度和lj的經(jīng)度。
在進行跨社交媒體用戶身份關聯(lián)之前,需要對爬蟲采集的數(shù)據(jù)進行數(shù)據(jù)清洗。一方面,能夠提高用戶身份關聯(lián)的準確率;另一方面,能夠加快用戶身份關聯(lián)的速度。
(1)對用戶名進行預處理,將其轉換為小寫(就像在這兩種社交網(wǎng)絡中,字母大小寫并沒有什么區(qū)別)修改數(shù)據(jù)庫中含有“#”字符的地理位置字符串,將“#”號刪除保留其他字符,通過實驗發(fā)現(xiàn)含有“#”的地理位置,在獲取經(jīng)緯度時總是出錯,因此修改了這類地理位置信息,便于后面獲取經(jīng)緯度值。
(2)刪除掉數(shù)據(jù)庫中用戶位置數(shù)據(jù)字符串長度為1的數(shù)據(jù)。一般情況下,位置信息字符串的長度應該大于1(很少存在地理位置的名字只有一個字符的情況),這樣的數(shù)據(jù)會影響身份相似度判定的準確性,由于將一個字符輸入Google Maps 的Google Maps Geocoding API 可以得到很多條結果,但這些返回的信息可能與用戶原始填入的信息是不匹配的,會導致用戶身份關聯(lián)出現(xiàn)極大偏差。
針對用戶屬性信息相似度的匹配有多種方法,只有根據(jù)不同屬性的特征選擇適合的方法,才可以準確真實地反映相似度,并得到最佳的匹配準確率和效率。本文選擇對用戶名、個人描述、個人主頁和地理位置共4 類屬性信息來計算賬號相似度。它們的相似度計算方法如下。
(1)用戶名:用戶名通常包含在用戶檔案主頁統(tǒng)一資源定位符(Uniform Resource Locator,URL)中。相關研究表明,同一用戶在不同社交平臺注冊賬號選擇用戶名時,很大可能在一個原有用戶名的基礎上進行微小改變。文獻[1]的研究表明,與其他算法相比,MN 算法更加客觀真實,所以本文采用MN 算法計算用戶名相似度。
(2)個人描述:個人描述一般是簡短的幾句介紹個人基本情況的話,可能包含個人職業(yè)、成就、興趣、性格等。針對個人描述通常是一段字符串的特點,本文選擇利用TF-IDF 相似度匹配算法。
(3)個人主頁:個人主頁是指在一個社交平臺上注明的在另一個平臺的個人主頁的鏈接,只有部分用戶檔案中有該信息,因為鏈接的唯一性,所以本文認為只有當鏈接完全匹配時相似度為1,否則為0。
(4)地理位置:地理位置信息一般有多種形式,詳細地址、經(jīng)緯度坐標和城市名稱等。本文為了統(tǒng)一計算相似度,將城市或地址名稱轉換為該相應的經(jīng)緯度,再通過大圓距離算法計算不同地理位置的經(jīng)緯度的距離,來判斷地理位置是否相似。
在給用戶檔案信息中各屬性信息分配權重時,一般有兩種方法:一種是主觀賦權法,這種方式較為主觀,需要有大量的相關經(jīng)驗且與屬性領域緊耦合,算法魯棒性較差;另一種是客觀賦權法,客觀賦權法有熵權法、離差及均方差法等,其中熵權法根據(jù)各指標的變異程度,利用信息熵計算出各指標的熵權,通過熵權對各指標權重進行修正,得到較為客觀的指標權重。因此本文采用更科學合理的熵權法賦予不同屬性不同的權重。
熵權法的步驟如下:
(1)將屬性數(shù)據(jù)歸一化,將屬性的相似度值映射到[0,1]之間,采用的映射方式如公式(7)所示:

(2)計算第j 項屬性中每個數(shù)據(jù)所占的比重,如公式(8)所示:

其中,pij為第j 項屬性中第i 個數(shù)據(jù)值所占的比重,為第j 項屬性的第i 個數(shù)據(jù)歸一化后的值,第j 項屬性所有歸一化后數(shù)據(jù)的總和。
(3)計算第j 項屬性的信息熵值,如公式(9)所示:

其中,ej為第j 項屬性的信息熵值,pij為第j 項屬性中第i 個數(shù)據(jù)值所占的比重。值得注意的是,如果pij=0,那么定義
(4)計算信息熵的冗余度,如公式(11)所示:

其中,dj為第j 項屬性的信息熵冗余度,ej為第j項屬性的信息熵值。
(5)計算各項屬性的權重,如公式(12)所示:

其中,wj為第j 項屬性的權重,dj為第j 項屬性的信息熵冗余度,為所有屬性信息熵冗余度總和,本文中需要為四項屬性分配權重,因此m 為4。
文獻[19]提供了一份包含5 個社交網(wǎng)絡賬號主頁鏈接的公開數(shù)據(jù)集,本文以Google+作為收集用戶屬性信息的源網(wǎng)站,過濾選取其中給出Facebook 和Twitter主頁鏈接非空、網(wǎng)頁未失效且公開檔案信息訪問權限的Google+賬號,最終得到Google+賬號3670 個,F(xiàn)acebook 賬號2884 個,Twitter 賬號3141 個,其中,我們只對Facebook 和Twitter 進行用戶關聯(lián)。

表1 用于存放Facebook 用戶數(shù)據(jù)的數(shù)據(jù)表

表2 用于存放Twitter 用戶數(shù)據(jù)的數(shù)據(jù)表
實驗中,先計算每個Facebook 用戶與其候選集中Twitter 用戶的單個屬性的相似度,然后基于熵權法計算不同屬性信息的權重,然后基于單個屬性的相似度和屬性所分配的權重計算出用戶的總相似度,在其候選集中選出得分最高的一對用戶對,則判定為同一用戶的不同賬號,將實驗結果存入一張數(shù)據(jù)表中,用召回率評估實驗結果。
本實驗采用召回率來評估實驗效果。TP 為正確數(shù)據(jù),用戶身份關聯(lián)出來賬號屬于同一用戶,且實際上真的為同一用戶的數(shù)據(jù);FN 為錯誤數(shù)據(jù),用戶身份關聯(lián)出來賬號屬于同一用戶,但實際上賬號不屬于同一用戶的數(shù)據(jù)。
召回率R(Recall Rate)的計算方法,如公式(13)所示:

由于實驗中使用的用戶數(shù)據(jù)在標注時只標注了現(xiàn)實中屬于同一人的,也就是只有TP 或FN,因此選用召回率對實驗結果進行評估。

表3 單屬性以及基于熵權法的用戶身份實驗結果對比
通過表3 可以看出,基于熵權法的用戶關聯(lián)要明顯優(yōu)于單屬性用戶身份關聯(lián),綜合各項屬性及其權重進行用戶身份關聯(lián)實驗結果更好。本文采用的用戶身份關聯(lián)方法——基于熵權法的用戶身份關聯(lián)方法,召回率大致為93.26%,說明基于熵權法的用戶身份關聯(lián)方法對用戶身份關聯(lián)能力較強。
社交網(wǎng)絡逐漸成為人們維持各種社交關系的重要平臺,人們往往會使用多個社交網(wǎng)絡賬號,如何發(fā)現(xiàn)同一用戶在不同社交網(wǎng)絡中的賬號也變得越來越重要。本文基于屬性信息和熵權法,實現(xiàn)了Facebook 和Twitter 特定群體的用戶身份關聯(lián),召回率達到了93.26%。
本文采用的是基于屬性信息的用戶身份關聯(lián)方法,如果再增加兩到三個屬性項,同時結合社交關系,對實驗結果會有更大的提升。但社交關系相似度計算是一個難點,目前大部分研究仍是主要基于屬性信息進行用戶身份關聯(lián)的。現(xiàn)在,越來越多的研究者開始嘗試利用好友關系進行關聯(lián)用戶,在未來,我們希望將將更復雜有效的技術引入到我們的模型中。