本發(fā)明屬于數(shù)據(jù)挖掘技術(shù)領(lǐng)域,特別涉及一種基于社交信息的用戶屬性預(yù)測方法與系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,“數(shù)據(jù)及資源”的大數(shù)據(jù)時代已經(jīng)來臨。而在近幾年,用戶信息泄露事件層出不窮,2011年,csdn網(wǎng)站的數(shù)據(jù)被拖庫,緊接著,2012年天涯論壇4000萬信息泄露,2013年,社交網(wǎng)站facebook上600萬用戶的個人信息,如電話、住址、電子郵箱等也被泄露出去,同年,美國著名軟件公司adobe的數(shù)據(jù)也大批泄露,其中包含了用戶姓名信用卡以及信用卡的過期時間,2014年,我國鐵路訂票網(wǎng)站12306也出現(xiàn)用戶數(shù)據(jù)的泄露,同年,攜程網(wǎng)也被報出存在漏洞,而就在最近,京東12g用戶數(shù)據(jù)也疑似泄露。
當(dāng)今,生活在互聯(lián)網(wǎng)時代,網(wǎng)絡(luò)成為人們傳遞消息的高速載體。而很多網(wǎng)站出于安全考慮,設(shè)置需要用戶登錄訪問,這樣頻繁的注冊登錄勢必降低了用戶體驗。所以許多網(wǎng)站和手機app都支持oauth協(xié)議,允許用戶通過如騰訊qq、微博等第三方社交網(wǎng)絡(luò)賬號進(jìn)行登錄,使得用戶不向第三方暴露自己的登錄信息的同時,也能訪問站點資源。因此,這樣在多個站點的用戶訪問信息因社交賬號的關(guān)系而進(jìn)行關(guān)聯(lián)。
基于上面提到的泄露數(shù)據(jù),通過對大量用戶數(shù)據(jù)進(jìn)行綜合分析、建模、預(yù)測可形成完整的用戶畫像。利用這部分?jǐn)?shù)據(jù),對企業(yè)也來說,能夠指導(dǎo)產(chǎn)品研發(fā)以及優(yōu)化用戶體驗;對廣告商來說,可以實現(xiàn)精準(zhǔn)化營銷,實現(xiàn)巨額收益。另外,這些信息也可能會被惡意利用,,一些不法分子或詐騙集團(tuán),利用得到的用戶真實數(shù)據(jù),贏取用戶信任,從而進(jìn)行詐騙,造成用戶巨大損失。
這里主要通過關(guān)聯(lián)多個泄露站點的數(shù)據(jù),分析用戶個人屬性以及社交關(guān)系,預(yù)測用戶真實屬性(因網(wǎng)絡(luò)的虛擬性,用戶更傾向于使用一些虛假信息隱藏自己),揭露用戶的隱私泄露現(xiàn)狀。綜上,融合多站點的多類型數(shù)據(jù),挖掘用戶真實屬性,告知用戶畫像預(yù)測的真實姓名、年齡、班級等隱私信息,便于用戶了解自身隱私泄露現(xiàn)狀,加強用戶的隱私保護(hù)意識,具有極為重要的理論和現(xiàn)實意義。
目前已經(jīng)有一些方法通過分析用戶好友信息來推斷用戶屬性,但是這些方法主要是基于用戶在社交網(wǎng)站上的好友關(guān)系,構(gòu)建社交關(guān)系圖,通過基于圖的屬性傳播方法來推測用戶屬性。為了推測用戶的屬性,傳統(tǒng)方法需要知道用戶的所有好友,然后根據(jù)好友信息推測用戶屬性,然而,用戶好友關(guān)系親疏有別,提供的信息價值也不盡相同。所以僅憑好友來推斷用戶屬性必然存在瓶頸,要加入新的特征來突破。
技術(shù)實現(xiàn)要素:
為了克服上述現(xiàn)有技術(shù)的缺點,本發(fā)明的目的在于提供一種基于社交信息的用戶屬性預(yù)測方法與系統(tǒng),本發(fā)明考慮用戶在不同社交群組中的關(guān)系,有區(qū)分、加權(quán)性地計算用戶加入的不同社交群組提供的信息,給可信度更高的社交群組更高的權(quán)值,使得最終的預(yù)測結(jié)果更準(zhǔn)確;另外,本發(fā)明考慮專業(yè)簡稱來對社交群組進(jìn)行分類,并對缺失專業(yè)簡稱的專業(yè)利用分類模型生成對應(yīng)的專業(yè)簡稱,完善了先驗知識庫,使得給社交群組分類結(jié)果更精確。
為了實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:
一種基于社交信息的用戶屬性預(yù)測方法,包括:
數(shù)據(jù)獲?。韩@取全國各學(xué)校名稱及專業(yè)名稱,構(gòu)建先驗知識庫;
文本分析:對得到的全國各學(xué)校名稱及專業(yè)名稱進(jìn)行處理,輸出高校簡稱和專業(yè)簡稱,完善先驗知識庫;
社交群組分析:分析各社交群組,計算其對用戶屬性預(yù)測所能提供的有價值信息;
用戶屬性預(yù)測:利用用戶在多個群組的社交關(guān)系,考慮每個社交群組提供的信息,加權(quán)分析預(yù)測出用戶的真實屬性,所述用戶的真實屬性主要包括用戶教育背景和年齡。
所述數(shù)據(jù)獲取過程中,從網(wǎng)上獲取全國所有學(xué)校名稱,同時得到各高校開設(shè)專業(yè)名稱;
所述文本分析過程中,通過提取專業(yè)/學(xué)校簡稱的特征,利用這些特征訓(xùn)練分類器,對已知專業(yè)簡稱/學(xué)校的樣本進(jìn)行訓(xùn)練,給出生成的未知專業(yè)/學(xué)校簡稱的可信度,進(jìn)一步完善先驗知識庫;
所述社交群組分析過程中,首先根據(jù)經(jīng)驗值和3σ原則剔除社交群組中的噪音點,如果待預(yù)測的用戶仍在社交群組中,則剔除該用戶信息,然后用社交群組中剩余所有用戶的平均值作為該社交群組對該用戶的屬性估計值;
所述用戶屬性預(yù)測過程中,通過分析用戶的社交關(guān)系模式,對社交群組名稱和簡介利用關(guān)鍵字,按優(yōu)先級進(jìn)行匹配,識別出用戶加入的具體班級類型,刻畫出相應(yīng)的教育背景,并且根據(jù)“%班%/%屆%”關(guān)鍵字,識別出用戶就讀該校的年份。
所述文本分析過程中,對專業(yè)名稱的處理,流程如下:
1)計算專業(yè)名稱全稱的長度為n,計算得到專業(yè)名稱全稱字符串可能的所有子串,即字符串組合問題,從n個字符中,任取m個字符組合成一個新的字符串,m~[min,max],其中,min是要生成的專業(yè)簡稱的最小長度,max為最大長度,1<min<max<n;
2)提取專業(yè)簡稱的特征,利用這些特征訓(xùn)練分類器,利用已知的部分專業(yè)簡稱作為訓(xùn)練集,預(yù)測生成的未知專業(yè)簡稱的可信度;具體包括如下步驟:
2.1)在特征提取部分,考慮生成的子串的最大距離、最小距離、平均距離、子串的長度、以及是否包含首尾字符,其中,距離為任意兩個字符的距離,為在專業(yè)名稱全稱中的位置相差的絕對值;
2.2)分類器采用logistic回歸(sklearn.linear_model-logisticregression),使用基于python的機器學(xué)習(xí)庫scikit-learn,使用已知的專業(yè)簡稱樣本作為訓(xùn)練集,對分類器進(jìn)行訓(xùn)練,再使用該分類器對其余專業(yè)生成的專業(yè)簡稱進(jìn)行預(yù)測,分類器輸出值作為生成的該專業(yè)簡稱的可信度。
3)對這多個專業(yè)簡稱進(jìn)行可信度排名,選擇可信度高的前k個作為該專業(yè)的簡稱。
所述社交群組分析過程中:
假設(shè)社交群組中用戶年齡值為[amin,amax],設(shè)定amin=4,amax=100,首先識別出社交群組gj中的異常用戶
接著,根據(jù)3σ原則剔除噪音點,在正態(tài)分布中σ代表標(biāo)準(zhǔn)差,μ代表均值,x=μ即為圖像的對稱軸,3σ原則為數(shù)值分布在(μ-3σ,μ+3σ)中的概率為0.9974,過濾掉不在±3σ范圍的噪音點;
對每個社交群組gj,μj和σj為社交群組gj中用戶年齡的平均值和方差,計算如下:
社交群組gj中有異常年齡的用戶為:
用
當(dāng)nu,j>0時,讓μu,j代表社交群組
估計用戶屬性的時候,參考其加入的社團(tuán)群體中其他用戶的特征信息,對用戶加入的群組,估計其加入的群組j的平均年齡為μu,j,并將該值作為當(dāng)前社交群組對用戶u的年齡估計值,其中j∈nu,nu為用戶u加入的所有社交群組。
所述用戶屬性預(yù)測過程中,教育背景刻畫是通過分析用戶的社交關(guān)系模式,結(jié)合文本分析模塊生成的先驗知識庫,基于關(guān)鍵字匹配刻畫用戶的教育背景,可能匹配上的關(guān)鍵字模式如下:
匹配過程按上述列表先后進(jìn)行匹配,以上信息均未匹配,則認(rèn)為社交群組為非班級群。
所述用戶屬性預(yù)測過程中,考慮用戶加入的多個社交群組,最終對用戶u的估計年齡是au,定義參數(shù)wu,j去評估社交群組
其中,σu,j代表社交群組
令
本發(fā)明還提供了一種基于社交信息的用戶屬性預(yù)測系統(tǒng),包括:
數(shù)據(jù)獲取模塊:獲取全國各學(xué)校名稱及專業(yè)名稱,構(gòu)建先驗知識庫;
具體地,數(shù)據(jù)獲取模塊即從網(wǎng)上獲取全國所有學(xué)校名稱,同時得到各高校開設(shè)專業(yè)名稱,構(gòu)建先驗知識庫。
文本分析模塊:對得到的全國各學(xué)校名稱及專業(yè)名稱進(jìn)行處理,輸出高校簡稱和專業(yè)簡稱,完善先驗知識庫;
具體地,在實際生活使用中,為了方便,大家常用簡稱代替全名稱進(jìn)行溝通交流,在社交群組更是如此,所以對未知簡稱的學(xué)校和專業(yè)名稱,我們需要生成對應(yīng)的簡稱。
社交群組分析模塊:分析各社交群組,計算其對用戶屬性預(yù)測所能提供的有價值信息;
具體地,對各社交群組,使用經(jīng)驗和3σ原則剔除社交群組的噪音點,考慮各社交群組提供信息的權(quán)重大小,計算其提供的價值信息。
用戶屬性預(yù)測模塊:利用用戶在多個群組的社交關(guān)系,考慮每個社交群組提供的信息,加權(quán)分析預(yù)測出用戶的真實屬性,所述用戶的真實屬性主要包括用戶教育背景和年齡。
具體地,通過分析用戶的社交關(guān)系模式,結(jié)合文本分析模塊生成的先驗知識庫,基于關(guān)鍵字匹配刻畫用戶的教育背景。評估每個社交群組提供的信息,篩選出部分社交群組,給提供信息更準(zhǔn)確的社交群組分配更高權(quán)值,然后對多個群組加權(quán)求值,從而預(yù)測出用戶的年齡屬性。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
1、通過引入外部數(shù)據(jù),對社交群組分析和用戶教育背景刻畫提供先驗知識庫,提升了結(jié)果的可信度。
本發(fā)明將全國高校及專業(yè)名稱信息作為先驗知識庫,考慮社交群組的名稱及簡介,基于關(guān)鍵字匹配對社交群組進(jìn)行分類,刻畫出用戶教育背景的同時,大大提升了結(jié)果的說服力。
2、結(jié)合高校專業(yè)縮寫信息,完善了先驗知識庫。
本發(fā)明將根據(jù)專業(yè)全稱,生成專業(yè)縮寫,完善了先驗知識庫,對社交群組分析提供了更多信息。
3、通過對社交群組信息加權(quán)來推測用戶的屬性信息,考慮各群組提供信息的差異性,提升最終結(jié)果的評估準(zhǔn)確度。
本發(fā)明通過分析用戶加入社交群組的動機,評估每個社交群組提供的信息價值,篩選出可信的社交群組,并根據(jù)各社交群組提供的信息不同,加權(quán)預(yù)測計算得到最終用戶屬性。因考慮到各社交群組提供信息的差異性,給提供信息高的社交群組更高的權(quán)值,使得最終預(yù)測得到的用戶屬性更可信。
附圖說明
圖1為本發(fā)明方法整體結(jié)構(gòu)圖。
圖2為本發(fā)明文本處理模塊專業(yè)簡稱可信度預(yù)測流程圖。
圖3為本發(fā)明文本處理模塊生成專業(yè)簡稱流程圖。
圖4為本發(fā)明社交群組分析模塊流程圖。
圖5為本發(fā)明用戶屬性預(yù)測模塊用戶教育背景刻畫流程圖。
圖6為本發(fā)明用戶屬性預(yù)測模塊用戶年齡屬性預(yù)測流程圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖和實施例詳細(xì)說明本發(fā)明的實施方式。
如圖1所示,本系統(tǒng)由四個模塊組成,分別是數(shù)據(jù)獲取模塊,文本分析模塊,社交群組分析模塊和用戶屬性預(yù)測模塊。
首先,從網(wǎng)上爬蟲獲取全國各學(xué)校名稱及高校開設(shè)所有專業(yè)名稱,包括全國各學(xué)校名稱,包括小學(xué),初中,高中,大學(xué),以及高校開設(shè)所有專業(yè)名稱,構(gòu)建先驗知識庫。
接著,對數(shù)據(jù)獲取模塊得到的全國學(xué)校名稱及各高校開設(shè)所有專業(yè)名稱進(jìn)行處理。輸出高校簡稱和專業(yè)簡稱。
值得說明的是,所獲取學(xué)校名稱和高校開設(shè)專業(yè)名稱是全稱,而在實際生活或社交網(wǎng)絡(luò)中,大家大多采取專業(yè)或?qū)W??s寫來表示所學(xué)專業(yè)或就讀學(xué)校,因此需要根據(jù)專業(yè)或?qū)W校全稱來生成可信的專業(yè)或?qū)W校縮寫。
然后,考慮各社交群組提供信息的差異性,剔除群組中噪音點,計算每個群組對用戶預(yù)測所提供的價值信息。
最后,通過分析用戶的社交關(guān)系模式,結(jié)合文本分析模塊生成的先驗知識庫,基于關(guān)鍵字匹配刻畫用戶的教育背景。評估每個社交群組提供的信息,篩選出部分有價值的社交群組,給提供信息相對更準(zhǔn)確的社交群組分配更高權(quán)值,然后對多個群組加權(quán)求值,從而預(yù)測出用戶年齡屬性。
本發(fā)明中各個模塊的詳細(xì)介紹如下:
1、數(shù)據(jù)獲取模塊
主要實現(xiàn)先驗知識庫的構(gòu)建,獲取全國學(xué)校名稱以及各高校開設(shè)的所有專業(yè)。
具體地,數(shù)據(jù)獲取模塊對學(xué)校名稱的處理過程如下:
作為中國領(lǐng)先的實名制社交網(wǎng)絡(luò)平臺,人人網(wǎng)提供了一個全方位的互動交流平臺,同時在個人頁面,允許用戶編輯個人信息,填寫包括小學(xué),初中,中專技校、高中以及大學(xué)等信息,人人網(wǎng)鼓勵大家實名注冊并對填寫學(xué)??蛇M(jìn)行驗證,保證了信息來源的可靠性及全面性。本發(fā)明使用scrapy框架,模擬用戶登錄人人網(wǎng),當(dāng)用戶在個人主頁編輯資料信息時,選擇添加學(xué)校,頁面彈出全國各地所有學(xué)校,按省市遞歸爬取所有頁面列表,解析出全國高校名稱信息。
數(shù)據(jù)獲取模塊對高校專業(yè)處理的過程如下:
在用戶選定大學(xué)和相應(yīng)的入學(xué)年份后,下方彈出該高校開設(shè)的專業(yè)院系,模擬用戶選定學(xué)校這一行為,依次選定各高校,使用scrapy框架爬取高校開設(shè)所有的專業(yè)名稱。經(jīng)過匯總?cè)ブ?,得到全國高校開設(shè)所有專業(yè)。
另外,在全國高校本科專業(yè)目錄網(wǎng)站上,使用scrapy框架爬蟲獲取所列所有專業(yè)。作為上述通過人人網(wǎng)爬取到專業(yè)名稱的一個補充。部分高校和專業(yè)的簡稱在網(wǎng)上有給出,作為后續(xù)文本處理的訓(xùn)練集。
2、文本分析模塊
主要功能是對數(shù)據(jù)獲取模塊得到的全國學(xué)校名稱及各高校開設(shè)所有專業(yè)名稱進(jìn)行處理。輸出高校簡稱和專業(yè)簡稱。
具體地,在實際生活使用中,為了方便,大家常用簡稱代替全名稱進(jìn)行溝通交流,在社交群組更是如此,所以對未知簡稱的高校和專業(yè)名稱,需要生成對應(yīng)的簡稱。
對專業(yè)名稱的處理,如圖2和圖3所示,流程如下:
1)計算專業(yè)名字全稱的長度為n,計算得到該字符串可能的所有子串,即字符串組合問題,從n個字符中,任取m個字符組合成一個新的字符串,m~[min,max],其中,min是要生成的專業(yè)簡稱的最小長度,max為最大長度,一般而言,1<min<max<n。
2)提取專業(yè)簡稱的特征,利用這些特征訓(xùn)練分類器,利用已知的部分專業(yè)簡稱作為訓(xùn)練集,預(yù)測生成的未知專業(yè)簡稱的可信度。具體來說:
2.1)在特征提取部分,考慮了生成的子串的最大距離、最小距離、平均距離、子串的長度、以及是否包含首尾字符(1為包含首字符,2為包含尾字符,3為都包含,0為都不包含)。其中提到的距離為任意兩個字符的距離為在原專業(yè)全稱中的位置相差的絕對值,舉例來說,專業(yè)“軟件工程”,有一子串“軟工”,這兩個字符的距離為2.
2.2)分類器采用logistic回歸(sklearn.linear_model-logisticregression),使用了基于python的機器學(xué)習(xí)庫scikit-learn。對于專業(yè)來說,部分專業(yè)的簡稱是已知的,使用這部分樣本作為訓(xùn)練集,對分類器進(jìn)行訓(xùn)練,再使用該分類器對其余專業(yè)生成的專業(yè)簡稱進(jìn)行預(yù)測,分類器輸出值作為生成的該專業(yè)簡稱的可信度。
3)步驟2)輸出生成的專業(yè)簡稱的可信度,對一個專業(yè)來說,有多個專業(yè)簡稱,對這多個專業(yè)簡稱,進(jìn)行可信度排名,選擇可信度高的前k個作為該專業(yè)的簡稱。
經(jīng)過上面三個步驟,對每個專業(yè),選取k個專業(yè)簡稱作為其對應(yīng)的候選集。
同理,學(xué)校名稱對應(yīng)的簡稱生成過程如上。
3、社交群組分析模塊
主要功能是分析各社交群組,計算其對用戶屬性預(yù)測所能提供的有價值信息。
具體地,如圖4所示,對各社交群組,因社交群組是由每個獨立個體組成,因個體的差異提供的信息價值也不相同,也就是說,有的用戶提供的信息明顯是“噪音”,所以,假設(shè)社交群組中用戶年齡值為[amin,amax],根據(jù)經(jīng)驗,設(shè)定amin=4,amax=100,使用這個簡單規(guī)則,首先識別出社交群組的gj中的異常用戶
接著根據(jù)3σ原則剔除噪音點,在正態(tài)分布中σ代表標(biāo)準(zhǔn)差,μ代表均值,x=μ即為圖像的對稱軸,3σ原則為數(shù)值分布在(μ—3σ,μ+3σ)中的概率為0.9974,過濾掉不在±3σ范圍的噪音點。
對每個社交群體gj,μj和σj為社交群組gj中用戶年齡的平均值和方差,如下計算:
社交群組gj中有異常年齡的用戶為:
用
當(dāng)nu,j>0時,讓μu,j代表社交群組
“物以類聚,人以群分”,互聯(lián)網(wǎng)中社交群體是將用戶因某一興趣或者班級原因,而聚集在一起,因此一個社交群體中的用戶屬性相似。利用這一特性,估計用戶屬性的時候,可參考其加入的社團(tuán)群體中其他用戶的特征信息。對用戶加入的群組,估計其加入的群組j(j∈nu,nu為用戶u加入的所有社交群體)的平均年齡為μu,j,并將該值作為當(dāng)前社交群組對用戶u的年齡估計值。
4、用戶屬性預(yù)測模塊
利用用戶在多個群組的社交關(guān)系,考慮每個社交群組提供的信息,加權(quán)計算預(yù)測出用戶屬性。主要包括用戶教育背景刻畫和年齡預(yù)測。
1)教育背景刻畫
如圖5所示,通過分析用戶的社交關(guān)系模式,結(jié)合文本分析模塊生成的先驗知識庫,基于關(guān)鍵字匹配刻畫用戶的教育背景。
為了描述方便,表1給出可能匹配上的關(guān)鍵字模式:
表1待匹配的關(guān)鍵字
注:匹配過程按上述列表先后進(jìn)行匹配,以上信息均未匹配,則認(rèn)為社交群組為非班級群。
通過對社交群組名稱和簡介利用上述關(guān)鍵字,按優(yōu)先級進(jìn)行匹配,識別出用戶加入的具體班級類型(大學(xué),初中,高中,小學(xué),碩士,博士),刻畫出相應(yīng)的教育背景。并且根據(jù)“%班%/%屆%”關(guān)鍵字,識別出用戶就讀該校的年份。對于沒打上標(biāo)簽的社交群組,則認(rèn)為是非班級群。
2)年齡預(yù)測
如圖6所示,具體地,一般來說,用戶加入不止一個社交群組,也就是說,|nu|>1。接著,考慮多個社交群組,最終對用戶u的估計年齡是au。定義參數(shù)wu,j去評估社交群組
其中,σu,j代表社交群組
一般來說,同班同學(xué)之間年齡更為相似。所以,介紹一種基于班級群的用戶年齡估計方法。
綜上,本發(fā)明提供的一種基于社交信息的用戶屬性預(yù)測模塊,通過對用戶加入的社交群體關(guān)系進(jìn)行分析,預(yù)測用戶的真實身份屬性。本發(fā)明可用于用戶屬性真實性檢測,也可用于用戶畫像。