本發明涉及通信技術領域,尤其涉及一種通信數據分析方法及裝置。
背景技術:
隨著通信技術的發展,智能手機也得到了廣泛應用,用戶可利用智能手機進行相互通信,比如,用戶可以通過智能手機安裝即時通訊應用,比如qq、微信以及微博等等,然后用戶之間通過即時通訊應用進行相互通信,或者,用戶之間可以通過電話、收發短信的方式進行通信。如果將智能手機的用戶抽象為頂點,用戶之間的通信關系抽象為網絡中的邊,則可以構建一個龐大的社交網絡,該社交網絡錯綜復雜,包含了龐大數據量的用戶之間的通信關系。實際上在這龐大數據量的用戶之間的通信關系中隱藏著各個用戶的特點,現有技術中,沒有充分利用該社交網絡中的通信數據。
技術實現要素:
本發明實施例提供一種通信數據分析方法及裝置,通過對用戶的歷史通信數據進行分析,可以確定出影響力比較大的用戶。
第一方面,本發明實施例提供一種通信數據分析方法,具體可選的,獲取社交網絡中s個用戶的歷史通信數據,該歷史通信數據用于表征該s個用戶的歷史通信狀態,s為大于或者等于2的自然數,比如,該歷史通信數據可以包括但不限于用戶在過去一個月內用戶主叫通話總時長、用戶被叫通話總時長、用戶主叫通話總次數、用戶被叫通話總次數、用戶發短信總次數、用戶收短信總次數、該用戶與其他任意一個用戶之間的通話總時長、該用戶與其他任意一個用戶之間的通話總次數、該用戶與其他任意一個用戶之間的發短信總次數等等。
對該s個用戶的歷史通信數據進行分析,確定該s個用戶形成的k個用戶簇,一個用戶簇包含至少一個用戶,屬于同一個用戶簇的用戶之間存在相互關聯的通信特征,k為大于或者等于2的自然數,比如屬于同一個用戶簇的用戶之間可以形成一個獨立的社交網絡,即是屬于同一個用戶簇的用戶之間關系緊密度比較高。
針對每個用戶簇,確定該用戶簇內的第一用戶,第一用戶為在該用戶簇的所有用戶中影響力強度最大的用戶,影響力強度用于表征影響力的大小。一個用戶簇包含一個第一用戶,k個用戶簇即包括k個第一用戶。通過影響力較大的第一用戶傳播信息,可以更快地讓網絡中其余節點接收到信息,且能有效覆蓋大多數節點。因此,確定出用戶簇中影響力較大的第一用戶,可以方便有效地進行商業推廣,可以實現在商業中的快速推廣,節約推廣成本。
可選的,對s個用戶的歷史通信數據進行分析,確定k個用戶簇的確定方式可以是以下方式:根據該s個用戶的歷史通信數據,計算該s個用戶中任意兩個用戶之間的相似度,并獲得相似度矩陣,任意兩個用戶之間的相似度用于表征所述任意兩個用戶之間的關系緊密度,若該兩個用戶之間的相似度越大,則表征該兩個用戶之間的關系越緊密。
從s個用戶中隨機選取k個用戶作為k個中心用戶,一個中心用戶對應一個用戶集;將該s個用戶中除該k個中心用戶外的其他用戶作為邊緣用戶,根據所述邊緣用戶與所述k個中心用戶中每個中心用戶之間的相似度,將所述邊緣用戶歸類到所述k個中心用戶對應的所述k個用戶集。
針對s個用戶中的每個用戶以及該k個用戶集中的每個用戶集,從相似度矩陣中獲取該用戶與該用戶集中每個用戶之間的相似度,并將該用戶與該用戶集中每個用戶之間的相似度求和,獲得該用戶對應于該用戶集的相似度總和,這樣對于其中一個用戶,就存在對應于該用戶的k個相似度總和。
獲取該用戶對應于該k個用戶集中每個用戶集的相似度總和,并將該用戶重新劃分至相似度總和最大的用戶集,形成用戶簇。進行重分配后,就形成k個用戶簇。
可選的,根據s個用戶的歷史通信數據,計算該s個用戶中任意兩個用戶之間的相似度的計算方式可以是,根據該s個用戶的歷史通信數據,計算該s個用戶中任意兩個用戶之間的通信頻度相似度和共同用戶相似度,所述通信頻度相似度是通過該任意兩個用戶之間的直接通信狀態得到的參數,比如,可以是通過該任意兩個用戶之間的通話時長、通話次數以及發短信的次數得到該兩個用戶之間的通信頻度相似度。共同用戶相似度是通過該任意兩個用戶與共同用戶之間的通信狀態得到的參數,共同用戶為與該任意兩個用戶之間存在共同通信關系的用戶,比如,該共同用戶為與該兩個用戶共同主叫的用戶,則共同用戶相似度可以是通過該兩個用戶與該共同用戶之間通話時長、通話次數得到的參數。
根據該s個用戶中任意兩個用戶之間的通信頻度相似度和共同用戶相似度,獲得該s個用戶中任意兩個用戶之間的相似度,比如,兩個用戶之間的相似度可以是通信頻度相似度與共同用戶相似度之和。
可選的,針對每個用戶簇,確定該用戶簇內的第一用戶的確定方式可以是,針對每個用戶簇,獲取該用戶簇的用戶聯系頻度矩陣,用戶聯系頻度矩陣用于表征該用戶簇中任意兩個用戶之間的通信頻度,可選的,通信頻度可以是該任意兩個用戶之間通話次數與發短信次數的疊加。
根據該用戶簇的用戶聯系頻度矩陣,計算該用戶簇的跳轉頻率矩陣,該跳轉頻率矩陣用于表征該用戶簇內任意兩個用戶之間的通信概率;根據該用戶簇的跳轉頻率矩陣,計算該用戶簇內每個用戶的影響力強度,并將影響力強度最大的用戶作為該用戶簇內的第一用戶。
可選的,針對每個用戶簇,按照社交圈維度劃分規則,將該用戶簇內用戶的歷史通信數據映射到m個社交圈維度,m為大于或者等于2的自然數。比如可以設置家庭圈維度劃分規則、朋友圈維度劃分規則以及工作圈維度劃分規則。若用戶簇內用戶的歷史通信數據滿足某一個社交圈維度劃分規則,則將該歷史通信數據映射到該社交圈維度上。這樣一個用戶的所有歷史通信數據可能被映射到三個社交圈維度上,比如一部分歷史通信數據映射到朋友圈維度上,一部分歷史通信數據映射到工作圈維度上,一部分歷史通信數據映射到家庭圈維度上。
針對每個社交圈維度,根據映射至該社交圈維度上用戶的歷史通信數據,確定該用戶簇在該社交圈維度上的至少一個社交圈,一個社交圈包含至少一個用戶,屬于同一個社交圈的用戶之間均存在與該社交圈對應的社交關系。比如,一個用戶簇包括用戶u1、u2、u3、u4以及u5,最后確定該五個用戶在家庭圈維度上的三個社交圈,u1和u2為一個家庭圈,u4和u5為一個家庭圈,u3為一個家庭圈。即是u1和u2是存在家屬關系,u4和u5是存在家屬關系。
針對每個社交圈,確定該社交圈內的第二用戶,該第二用戶為在該社交圈的所有用戶中影響力強度最大的用戶。
可選的,針對每個社交圈維度,確定用戶簇在該社交圈維度上的至少一個社交圈的確定方式可以是,針對每個社交圈維度,對映射至該社交圈維度上用戶的歷史通信數據進行統計,獲得用戶簇在該社交圈維度上用戶之間的通信頻度。進一步根據用戶簇在m個社交圈維度中每個社交圈維度上用戶之間的通信頻度,生成該用戶簇對應的第一張量。
采用張量分解算法,對該第一張量進行處理,獲得所述用戶簇對應的第二張量,所述第二張量為在第一張量基礎上增加了預測缺失值的張量結構;根據所述第二張量,在m個社交圈維度中每個社交圈維度上進行聚類,獲得該用戶簇在m個社交圈維度中每個社交圈維度上的至少一個社交圈。
可選的,根據第二張量,獲得每個社交圈維度上的至少一個社交圈的獲取方式可以是,根據第二張量,獲取該用戶簇內任意兩個用戶在該m個社交圈維度中每個社交圈維度上的相似度,相似度用于表征任意兩個用戶在該社交圈維度上的關系緊密度。
進一步針對每個社交圈維度,根據該用戶簇內任意兩個用戶在該社交圈維度上的相似度,將用戶簇內的用戶在該社交圈維度上聚類為至少一個社交圈。
第二方面,本發明實施例提供一種通信數據分析裝置,該通信數據分析裝置包括獲取單元、分析單元和第一確定單元。
獲取單元,用于獲取s個用戶的歷史通信數據,歷史通信數據用于表征s個用戶的歷史通信狀態,s為大于或者等于2的自然數。
分析單元,用于對該s個用戶的歷史通信數據進行分析,確定s個用戶形成的k個用戶簇,一個用戶簇包含至少一個用戶,屬于同一個用戶簇的用戶之間存在相互關聯的通信特征,k為大于或者等于2的自然數。
第一確定單元,用于針對每個用戶簇,確定用戶簇內的第一用戶,第一用戶為在用戶簇的所有用戶中影響力強度最大的用戶,影響力強度用于表征影響力的大小。
第三方面,本發明實施例提供一種通信數據分析裝置,該通信數據分析裝置包括處理器和存儲器;
所述存儲器,用于存儲計算機程序指令;
所述處理器,耦合到所述存儲器,用于讀取所述存儲器存儲的計算機程序指令,并執行第一方面所述的方法。
第四方面,本發明實施例提供一種程序存儲介質,該程序存儲介質中所存儲的程序被執行時,可以實現上述第一方面所提供的方法。
通過實施本發明實施例,獲取社交網絡中s個用戶的歷史通信數據,該歷史通信數據用于表征該s個用戶的歷史通信狀態,對該s個用戶的歷史通信數據進行分析,確定該s個用戶形成的k個用戶簇,屬于同一個用戶簇的用戶之間存在相互關聯的通信特征,針對每個用戶簇,確定該用戶簇內的第一用戶,第一用戶為用戶簇的所有用戶中影響力強度最大的用戶。通過對社交網絡中用戶的歷史通信數據進行分析,可以發現影響力強度比較大的第一用戶,利用該第一用戶進行商業推廣,可以實現快速推廣,并且節省推廣成本。
附圖說明
為了更清楚地說明本發明實施例或背景技術中的技術方案,下面將對本發明實施例或背景技術中所需要使用的附圖進行說明。
圖1是本發明實施例提供的一種通信數據分析方法的流程示意圖;
圖2是本發明實施例提供的一種用戶簇的劃分示意圖;
圖3是本發明實施例提供的一種跳轉頻率矩陣的示意圖;
圖4是本發明實施例提供的一種用戶交互示意圖;
圖5是本發明實施例提供的一種通信數據分析裝置的結構示意圖;
圖6是本發明實施例提供的另一種通信數據分析裝置的結構示意圖。
具體實施方式
下面結合本發明實施例中的附圖對本發明實施例進行描述。
本發明實施例中的“第一”、“第二”只是為了區分不同的對象,并不表明特定的順序。
請參照圖1,為本發明實施例提供的一種通信數據分析方法的流程示意圖,如圖所示,本發明實施例的通信數據分析方法包括但不限于以下步驟:
s100,獲取s個用戶的歷史通信數據,所述歷史通信數據用于表征所述s個用戶的歷史通信狀態,所述s為大于或者等于2的自然數;
s101,對所述s個用戶的歷史通信數據進行分析,確定所述s個用戶形成的k個用戶簇,一個用戶簇包含至少一個用戶,屬于同一個用戶簇的用戶之間存在相互關聯的通信特征,所述k為大于或者等于2的自然數;
s102,針對每個所述用戶簇,確定所述用戶簇內的第一用戶,所述第一用戶為在所述用戶簇的所有用戶中影響力強度最大的用戶,所述影響力強度用于表征影響力的大小。
在一個實施例中,將每個用戶抽象為一個頂點,用戶間的通信關系抽象為網絡中的邊,則構建了一個社交網絡。獲取社交網絡中s個用戶的歷史通信數據,比如獲取社交網絡中過去1個月內的歷史通信數據。可選的,歷史通信數據包括但不限于通話數據(比如通話時長和通話次數)、短信數據(比如發送短信次數和接收短信次數)以及基于即時通訊應用的通信數據(比如聊天數據的數量、評論次數、轉發次數以及點贊次數)等等。在本發明實施例中,以通話數據和短信數據作為舉例說明。
可選的,由于用戶間的通信關系是雙向的,單純地考慮用戶間的單向通信關系并不是很合理,因此本發明實施例的歷史通信數據是可以是包括雙向的通信數據。比如,對于一個普通用戶a來說,他頻繁收到某用戶b騷擾電話或者廣告短信,這并不能說明兩用戶關系緊密,因為a并沒有主動去聯系b。所以,為了盡可能地避免這種單向關系,需要采用雙向的通信數據平均的方式去表示用戶關系。此外,還需考慮到用戶的特性,例如,對于用戶a而言,他并不經常打電話,他只低頻度地固定地給某個人b打電話;同時,用戶c特別愛打電話,而且他給b也經常打電話,但是這并不能說明b和c之間的關系比b和a之間的關系親密,因為c、b間通話只占c通話極小的一部分,因此,還需采用通信占比的方式去進一步表示用戶的親密度關系。
此外,兩個用戶的共同用戶越多,他們之間的關系可能更加緊密,他們與共同用戶彼此間的通信數據也反映了兩者間關系的親密度。因此,用戶間的親密度關系不僅表現為彼此間的通信狀態,而且表現為與共同用戶之間的通信狀態。
綜上,本發明實施例采用任意兩個用戶之間的直接通信狀態得到的通信相似度和任意兩個用戶與共同用戶之間的通信狀態得到的共同用戶相似度來共同確定兩個用戶之間的親密度。在本發明實施例中,用戶之間的相似度可以反映用戶之間的親密度關系。
首先,定義社交網絡中用戶之間的通信關系變量,通信關系變量包括tab、
其中,tab代表用戶a主叫b的通話總時長,具體表示用戶a主叫用戶b時用戶a與用戶b的通話總時長;
fab代表用戶a主叫用戶b的通話總次數;
sab代表用戶a給用戶b發短信總次數;
通過所獲取的s個用戶的歷史通信數據可以計算得到任意兩個用戶之間的上述通信關系變量。
進一步定義社交網絡中的通信頻度相似度s1(ab)、s3(ab)、s5(ab),共同用戶相似度s2(ab)、s4(ab)、s6(ab),通過上述任意兩個用戶之間的通信關系變量可以得到通信頻度相似度和共同用戶相似度,具體計算方式如下:
s1(ab)代表用戶a和用戶b的通話時長相似度,其計算公式為公式(1):
s3(ab)代表用戶a和用戶b的通話頻度相似度,其計算公式為公式(2):
s5(ab)代表用戶a和用戶b的短信頻度相似度,其計算公式為公式(3):
s2(ab)代表用戶a、b以及a與b的共同用戶{c}的通話時長相似度,其計算公式為公式(4):
其中,
其中,{c}代表用戶a主叫的任意用戶的集合;
其中,
其中,{c}代表用戶b主叫的任意用戶的集合;
其中,
其中,{c}代表主叫用戶a的任意用戶的集合;
其中,
其中,{c}代表主叫用戶b的任意用戶的集合;
s4(ab)代表用戶a、b以及a與b的共同用戶{c}的通話頻度相似度,其計算公式為公式(9):
其中,
其中,{c}代表用戶a主叫的任意用戶的集合;
其中,
其中,{c}代表用戶b主叫的任意用戶的集合;
其中,
其中,{c}代表主叫用戶a的任意用戶的集合;
其中,
其中,{c}代表主叫用戶b的任意用戶的集合;
s6(ab)代表用戶a、b以及a與b的共同用戶{c}的短信頻度相似度,其計算公式為公式(14):
其中,
其中,{c}代表用戶a發短信的目標用戶的集合;
其中,
其中,{c}代表用戶b發短信的目標用戶的集合;
其中,
其中,{c}代表發短信給用戶a的用戶的集合;
其中,
其中,{c}代表發短信給用戶b的用戶的集合;
進一步根據通信頻度相似度和共同用戶相似度,計算得到任意兩個用戶之間的相似度,相似度用于表征該任意兩個用戶之間的親密度。
sab代表用戶a和b的相似度,其計算公式為公式(19):
計算得到任意兩用戶間的相似度之后,可以是以矩陣的形式存儲任意兩個用戶之間的相似度,即得到相似度矩陣。進一步采用聚類算法,將該s個用戶聚類為k個用戶簇。
具體可選的,從社交網絡中s個用戶中隨機選取k個用戶作為中心用戶,一個中心用戶對應一個用戶集,該s個用戶中除該k個中心用戶外的其他用戶為邊緣用戶,下面將每個邊緣用戶歸類到該k個用戶集中,從而形成k個用戶簇。
具體可選的,針對每一個邊緣用戶,從相似度矩陣中獲取該邊緣用戶與k個中心用戶中每個中心用戶之間的相似度,并將該邊緣用戶分配到與其相似度最大的中心用戶所在的用戶集中,從而以這k個用戶為中心形成k個用戶集c。
進一步,遍歷s個用戶與k個用戶簇c,將每個用戶進行重分配,直到所有用戶歸屬的用戶集不再發生變化,從而形成k個用戶簇,本發明實施例將最終形成的穩定用戶集稱為用戶簇。
具體可選的,對于每一個用戶a來說,遍歷每一個用戶集ci,依次計算用戶a與用戶集ci中每個用戶之間的相似度總和sumai,將用戶a分配到使sumai值最大的用戶集ci中,至此,完成了一個用戶的重分配。對s個用戶中的每一個用戶均按照上述步驟進行重分配,直到所有用戶歸屬的用戶集不再發生變化,至此形成k個用戶簇。
比如,設置用戶簇c的數量的取值為200,每個用戶簇中用戶的數量大約在550左右,最大的用戶簇有944個用戶,最少的也有350個用戶。為了更好地說明用戶簇劃分過程,以圖2作為舉例說明。
由圖2可以看出,圖2中的c1、c2和c3代表3個不同的用戶集,a、b、c和d代表4個不同的用戶,圖中其他用戶未標注;首先,隨機選取三個中心用戶,并將其它每個邊緣用戶分配到與其相似度最大的中心用戶所在的用戶集中,得到三個用戶簇c1、c2和c3。接下來要對每個用戶進行重新分配,對用戶a而言,分別計算用戶a與各個用戶集的相似度總和,這里以
進一步可選的,在用戶簇基礎上對該用戶簇內各個用戶進行影響力排名,本發明實施例中,用戶的影響力,指的是該用戶在其社交網絡的用戶簇中能夠覆蓋或者影響到的人員數量。基于某一事件,通過對用戶影響力在傳播活動中排名,可以找出該事件在社交網絡中影響力較大的用戶。通過影響力較大的用戶傳播信息,可以更快地讓網絡中其余用戶接收到信息,且能有效覆蓋大多數用戶。因此,找出社交網絡的用戶簇中影響力較大的用戶,可以方便有效地進行商業推廣,節約推廣成本。
在本發明實施例中,每個用戶簇均包含第一用戶,k個用戶簇即存在至少k個第一用戶。第一用戶即是該用戶簇中影響力最大的用戶。
具體可選的,在每個用戶簇中,首先篩選出與其他用戶沒有任何交互的用戶,即篩選出孤立節點。這樣做是為了將無效節點剔除,同時,還可以減少運算量,提高運算準確度;每個用戶簇篩選之后的平均剩余用戶數量占原先未篩選用戶數量總數的90%以上,證明了之前通過聚類劃分社交網絡得到的用戶簇是合理的,保留了絕大部分的相互交互的用戶在同一個用戶簇內。
對用戶簇進行篩選數據處理后,按照以下計算公式分別求得每個用戶簇的通話交互矩陣和短信矩陣;
其中,通話交互矩陣,記為tij,計算公式為公式(20):
其中,短信矩陣,記為mij,計算公式為公式(21):
其中,callij代表用戶i給用戶j撥打過電話的次數,smsij代表用戶i給j發過短信的次數。
需要說明的是,本發明實施例在對通話交互矩陣tij和短信矩陣mij的計算中都引入了用戶通訊反饋機制,為了更好地說明該用戶通訊反饋機制,這里以圖4作為舉例說明。由圖4可以看出,a、b、c、d分別代表四個不同的用戶,實線上的數字代表用戶之間真實交互次數,即真實通話次數;虛線上的數字代表用戶之間反饋撥號次數,不是真實存在的撥號次數。這種即是用戶通訊反饋機制。
由圖4可以看出,用戶b給a打了4次電話,那么定義用戶a反饋1/2次通話次數給用戶b,即反饋2次(實際上用戶a沒給b打電話)。同樣的,如果戶a也給用戶b打電話,用戶b也會反饋。因此每個用戶節點給另一用戶節點的撥號次數=實際撥號次數+反饋撥號次數。這樣,一個由4個用戶構成的網絡就會生成一個4*4的通話交互矩陣tij,同理可以得到短信矩陣mij。
其中,采用上述用戶通訊反饋機制有兩個好處。根據生活中實際情況,一段時間內一個用戶給另一個用戶撥號次數越多,用戶之間相互聯系越緊密,那么回撥的概率也會更大,在用戶通訊反饋機制中,用反饋來表示回撥概率,定義回撥概率為撥號次數的1/2符合實際情況;此外,另一個好處是可以防止在接下來的跳轉概率矩陣p的計算中,不存在某一個用戶跳轉到其他任何用戶的概率都為0的情況;其中,某一個用戶跳轉到其他任何用戶的概率都為0的情況指的是該用戶沒有播出任何電話、發出任何短信,只是接聽電話和接收短信的情況。
進一步可選的,將通話交互矩陣tij和短信矩陣mij進行加權求和,即是將這兩個矩陣乘以對應權值后相加,得到用戶聯系頻度矩陣u;
其中,用戶聯系頻度矩陣u的計算公式為公式(22):
u=wt*t+wm*m(22)
其中,wt為通話交互矩陣tij的權值,值大小為0.5;wm為短信矩陣mij的權值,值大小為0.5;
根據用戶聯系頻度矩陣u,計算得到用戶之間的跳轉頻率矩陣p,計算公式為公式(23):
其中,矩陣p中的第i行的數值表示i節點跳轉到其他任一節點的概率,即i節點與該用戶簇內其他用戶之間的通信概率;i節點跳轉到j節點的概率表示為用戶i與用戶j的交互頻度除以與用戶i交互的所有頻度之和;n表示該用戶簇中的用戶總數,這樣能夠保證
得到跳轉頻率矩陣p之后,將p矩陣迭代相乘,至其穩定,得到最終穩定的跳轉頻率矩陣p_iter;將該矩陣p_iter第j列上的值求和(代表其他節點跳轉到j節點的跳轉總和),以此來代表j節點所代表的用戶在該用戶簇內的影響力強度大小;根據該影響力強度大小對每個用戶節點進行排名,最終獲得該用戶簇內影響力強度最大的第一用戶。
s103,針對每個所述用戶簇,按照社交圈維度劃分規則,將所述用戶簇內用戶的歷史通信數據映射到m個社交圈維度,所述m為大于或者等于2的自然數;
s104,針對每個所述社交圈維度,根據映射至所述社交圈維度上用戶的歷史通信數據,確定所述用戶簇在所述社交圈維度上的至少一個社交圈,一個社交圈包含至少一個用戶,屬于同一個社交圈的用戶之間均存在與所述社交圈對應的社交關系;
s105,針對每個所述社交圈,確定所述社交圈內的第二用戶,所述第二用戶為在所述社交圈的所有用戶中影響力強度最大的用戶。
在一個實施例中,一個用戶簇內用戶之間的親密度關系可能是通過多個社交圈維度反映出來的,社交圈維度包括但不限于家庭圈維度、朋友圈維度以及工作圈維度等等。比如,用戶a與用戶b之間親密度比較高,可能因為他們屬于同一個家庭圈,用戶a與用戶c之間親密度比較高,可能因為他們屬于同一個工作圈。本發明實施例通過用戶之間的歷史通信數據確定一個用戶簇內各個用戶在各個社交圈維度上的至少一個社交圈。比如,在家庭圈維度上,用戶a、用戶b與用戶c屬于一個家庭圈,用戶d與用戶e屬于一個家庭圈。
具體可選的,預先制定m個社交圈維度劃分規則,這里基于用戶之間的通信頻度制定至少一個社交圈維度劃分規則。
比如該m個社交圈維度劃分規則分別是家庭圈劃分規則、朋友圈劃分規則和工作圈劃分規則。
其中,家庭圈劃分規則如下:每天下午21:00-凌晨7:00,在同一個地點撥打過電話,并且相互之間有過通話的兩個人,可以認為是家人,并且是住在一起的家人;在上述時間段之外的其他時間段,用戶a在該時間段內在地點loc處與用戶b通話次數超過2次以上,用戶b上個時間段內在地點loc與用戶a有過通話,此時可以認為是家人,并且可以推測出是一個人外出,家人在家中與之通話的情形。
朋友圈劃分規則如下:星期一~星期五下午17:00-21:00以及周六周日全天,相互通話以及短信次數之和大于4次的人可以認為是工作之余經常聯系的朋友;在任何時間相互通話次數大于5次,或者相互短信次數大于4次的人可以認為是關系緊密的朋友。
工作圈劃分規則如下:星期一~星期五上午8:00-下午17:00,在同一個地點撥打過電話,并且相互之間有過通話的兩個人可以認為是同事;在任何時間段,用戶a在該時間段內在地點loc與用戶b通話次數超過2次以上,且用戶b在上個時間段內在地點loc與用戶a有過通話,可以認為用戶a與b是同事,并且可以推測出是一個人出差,同事在公司與其通話的情形。
按照上述預先制定的社交圈維度劃分規則,將每個用戶簇內用戶的歷史通信數據映射到該m個社交圈維度上,具體映射方式可以是,比如用戶a與用戶b之間的歷史通信數據滿足家庭圈維度劃分規則,則將用戶a與用戶b之間的歷史通信數據映射到家庭圈維度上。進一步統計在每個社交圈維度上,任意兩個用戶之間的歷史通信數據,得到任意兩個用戶在任意社交圈維度上的通信頻度。本發明實施例采用張量來描述這種結構,即<主叫用戶,被叫用戶,社交圈維度>,數值即為用戶之間在該社交圈維度上的通信頻度,不滿足該社交圈維度劃分規則的用戶間相應維度上的值為0。
通過上述規則構建出的張量結構為第一張量,第一張量會出現很多的缺失值,因此直接進行聚類效果不理想,所以本發明實施例采用張量分解的方式去擬合已有值,進而預測缺失值,這樣在每個社交圈維度進行聚類,便可以得到每個用戶簇上的每個社交圈維度的社交圈劃分。本發明實施例將對第一張量進行張量分解后得到的張量結構作為第二張量。
具體可選的,對第一張量進行分解的方式可以是以下方式:
定義第一張量x∈ri*j*k,xijk表示在第k個社交圈維度上,滿足劃分規則的用戶ui主叫(包括通話和短信)用戶uj的頻度,其中k=3,代表社交圈維度的個數;由于一些xijk是缺失值,我們需要使用張量分解來預測這些缺失值;將張量x∈ri*j*k分解為一個核張量g∈rp*q*r和三個矩陣a∈ri*p,b∈pj*q,c∈rk*r,確定張量分解的目標函數,其計算公式為公式(24):
l(g,a,b,c)=||x-g*1a*2b*3c||2(24)
對張量分解的目標函數采用隨機梯度下降方法不斷迭代更新參數,求得能使公式(24)取得極值的一組參數,其中g、a、b、c為待求參數;
其中,參數aij的更新公式為公式(25):
其中,參數bij的更新公式為公式(26):
其中,參數cij的更新公式為公式(27):
其中,參數gij的更新公式為公式(28):
其中,
通過迭代多次直到參數的前后誤差小于一定閾值,結束迭代,終止算法;求得參數g、a、b、c后,通過計算重構張量xijk,得到第二張量,其計算公式為公式(29):
x≈g*1a*2b*3c(29)
通過張量分解,將稀疏張量變成一個非稀疏張量,這樣才能夠很好地度量用戶相似度,進而可以進行后續的多維度社交圈的劃分。
根據已經填充好缺失值的非稀疏張量,得到某個用戶簇的用戶ui在第k個社交圈維度上的主叫表示,表示公式為公式(30):
ui(1)=(xi1k,xi2k,...,xi|u|k)(30)
其中,|u|代表用戶ui所在用戶簇的用戶總數;
用戶ui在某個用戶簇的第k個社交圈維度上的被叫表示,表示公式為公式(31):
ui(2)=(x1ik,x2ik,...,x|u|ik)(31)
用戶uj在某個用戶簇的第k個社交圈維度上的主叫表示,表示公式為公式(32):
uj(1)=(xj1k,xj2k,...,xj|u|k)(32)
用戶uj在某個用戶簇的第k個社交圈維度上的被叫表示,表示公式為公式(33):
uj(2)=(x1jk,x2jk,...,x|u|jk)(33)
根據相似度計算方法,計算出用戶ui和uj在第k個社交圈維度上的主叫相似度,記為cos<ui(1),uj(1)>,計算出用戶ui和uj在第k個社交圈維度上的被叫相似度,記為cos<ui(2),uj(2)>,進一步可以計算得出用戶ui和uj在第k個社交圈維度上的相似度,計算公式為公式(34):
sij=cos<ui(1),uj(1)>+cos<ui(2),uj(2)>(34)
根據公式(34)的結果對用戶簇ci內的用戶在第k個社交圈維度上進行聚類,將相似度高的用戶劃分到同一個社交圈,從而得到每個用戶的家庭圈、朋友圈和工作圈。
具體可選的,在對于某一個社交圈維度,獲得用戶簇ci內的任意兩個用戶在該社交圈維度上的相似度,按照聚類算法對該用戶簇ci內的任意兩個用戶在該社交圈維度上進行聚類,形成至少一個社交圈。比如,該社交圈維度為家庭圈維度,則該至少一個社交圈為至少一個家庭圈。需要說明的是,聚類算法的具體計算過程請參照形成用戶簇的聚類計算過程,在此不再贅述。
為了更好地說明采用張量分解方法預測缺失值后,后續對用戶簇進行的細粒度社交圈的劃分的過程,這里以圖3作為舉例說明。采用張量分解方法預測缺失值后,可以得到任意兩用戶在任意社交圈維度上的聯系頻度。在某一個社交圈維度上用戶ui可以表示為<ti1,ti2,...,tin>,由圖3可以看出,在家庭圈維度上,用戶u1可以表示為u1=<2,10,2,6,0>,歸一化之后得到u1=<0.1,0.5,0.1,0.3,0>。然后可以在每一個社交圈維度內對用戶簇內的用戶進行聚類,得到更細粒度的社交圈劃分。如圖3可以所示,比如,通過聚類算法將用戶簇在家庭圈維度上劃分成三個家庭圈,{u1,u2}、{u3}和{u4,u5}分別各自為一個真正的家庭圈。
進一步可選的,對于一個社交圈內部,可以獲取該社交圈內影響力強度最大的第二用戶,具體獲取方式可以參照獲取用戶簇內的第一用戶的獲取方式,在此不再贅述。
通過實施本發明實施例,獲取社交網絡中s個用戶的歷史通信數據,該歷史通信數據用于表征該s個用戶的歷史通信狀態,對該s個用戶的歷史通信數據進行分析,確定該s個用戶形成的k個用戶簇,屬于同一個用戶簇的用戶之間存在相互關聯的通信特征,針對每個用戶簇,確定該用戶簇內的第一用戶,第一用戶為用戶簇的所有用戶中影響力強度最大的用戶。通過對社交網絡中用戶的歷史通信數據進行分析,可以發現影響力強度比較大的第一用戶,利用該第一用戶進行商業推廣,可以實現快速推廣,并且節省推廣成本。
上述詳細闡述了本發明實施例的方法,下面提供了本發明實施例的裝置。
參閱圖5和圖6,為本發明實施例提供的通信數據分析裝置的結構示意圖,本發明實施例的通信數據分析裝置可以應用于圖1的方法實施例中。
如圖5所示,該通信數據分析裝置可包括:獲取單元101、分析單元102、第一確定單元103,其中:
獲取單元101,用于獲取s個用戶的歷史通信數據,所述歷史通信數據用于表征所述s個用戶的歷史通信狀態,所述s為大于或者等于2的自然數;
分析單元102,用于對所述s個用戶的歷史通信數據進行分析,確定所述s個用戶形成的k個用戶簇,一個用戶簇包含至少一個用戶,屬于同一個用戶簇的用戶之間存在相互關聯的通信特征,所述k為大于或者等于2的自然數;
第一確定單元103,用于針對每個所述用戶簇,確定所述用戶簇內的第一用戶,所述第一用戶為在所述用戶簇的所有用戶中影響力強度最大的用戶,所述影響力強度用于表征影響力的大小。
可選的,所述分析單元102具體用于,
根據所述s個用戶的歷史通信數據,計算所述s個用戶中任意兩個用戶之間的相似度,并獲得相似度矩陣,所述任意兩個用戶之間的相似度用于表征所述任意兩個用戶之間的關系緊密度;
從所述s個用戶中隨機選取k個用戶作為k個中心用戶,一個中心用戶對應一個用戶集;
將所述s個用戶中除所述k個用戶外的其他用戶作為邊緣用戶,根據所述邊緣用戶與所述k個中心用戶中每個中心用戶之間的相似度,將所述邊緣用戶歸類到所述k個中心用戶對應的所述k個用戶集;
針對所述s個用戶中的每個用戶以及所述k個用戶集中的每個用戶集,從所述相似度矩陣中獲取所述用戶與所述用戶集中每個用戶之間的相似度,并將所述用戶與所述用戶集中每個用戶之間的相似度求和,獲得所述用戶對應于所述用戶集的相似度總和;
獲取所述用戶對應于所述k個用戶集中每個用戶集的相似度總和,并將所述用戶重新劃分至所述相似度總和最大的用戶集,形成用戶簇。
可選的,所述分析單元102根據所述s個用戶的歷史通信數據,計算所述s個用戶中任意兩個用戶之間的相似度,具體包括:
根據所述s個用戶的歷史通信數據,計算所述s個用戶中任意兩個用戶之間的通信頻度相似度和共同用戶相似度,所述通信頻度相似度是通過所述任意兩個用戶之間的直接通信狀態得到的參數,所述共同用戶相似度是通過所述任意兩個用戶與共同用戶之間的通信狀態得到的參數,所述共同用戶為與所述任意兩個用戶之間存在共同通信關系的用戶;
根據所述s個用戶中任意兩個用戶之間的通信頻度相似度和共同用戶相似度,獲得所述s個用戶中任意兩個用戶之間的相似度。
可選的,所述第一確定單元103具體用于,
針對每個所述用戶簇,獲取所述用戶簇的用戶聯系頻度矩陣,所述用戶聯系頻度矩陣用于表征所述用戶簇中任意兩個用戶之間的通信頻度;
根據所述用戶簇的用戶聯系頻度矩陣,計算所述用戶簇的跳轉頻率矩陣,所述跳轉頻率矩陣用于表征所述用戶簇內任意兩個用戶之間的通信概率;
根據所述用戶簇的跳轉頻率矩陣,計算所述用戶簇內每個用戶的影響力強度,并將影響力強度最大的用戶作為所述用戶簇內的第一用戶。
進一步可選的,如圖5所示,本發明實施例的通信數據分析裝置還包括映射單元104、第二確定單元105以及第三確定單元106;
映射單元104,用于針對每個所述用戶簇,按照社交圈維度劃分規則,將所述用戶簇內用戶的歷史通信數據映射到m個社交圈維度,所述m為大于或者等于2的自然數;
第二確定單元105,用于針對每個所述社交圈維度,根據映射至所述社交圈維度上用戶的歷史通信數據,確定所述用戶簇在所述社交圈維度上的至少一個社交圈,一個社交圈包含至少一個用戶,屬于同一個社交圈的用戶之間均存在與所述社交圈對應的社交關系;
第三確定單元106,用于針對每個所述社交圈,確定所述社交圈內的第二用戶,所述第二用戶為在所述社交圈的所有用戶中影響力強度最大的用戶。
可選的,所述第二確定單元105針對每個所述社交圈維度,根據映射至所述社交圈維度上用戶的歷史通信數據,確定所述用戶簇在所述社交圈維度上的至少一個社交圈,具體包括:
針對每個所述社交圈維度,對映射至所述社交圈維度上用戶的歷史通信數據進行統計,獲得所述用戶簇在所述社交圈維度上用戶之間的通信頻度;
根據所述用戶簇在所述m個社交圈維度中每個社交圈維度上用戶之間的通信頻度,生成所述用戶簇對應的第一張量;
采用張量分解算法,對所述第一張量進行處理,獲得所述用戶簇對應的第二張量,所述第二張量為在所述第一張量基礎上增加了預測缺失值的張量結構;
根據所述第二張量,在所述m個社交圈維度中每個社交圈維度上進行聚類,獲得所述用戶簇在所述m個社交圈維度中每個社交圈維度上的至少一個社交圈。
所述第二確定單元105根據所述第二張量,在所述m個社交圈維度中每個社交圈維度上進行聚類,獲得所述用戶簇在所述m個社交圈維度中每個社交圈維度上的至少一個社交圈,具體包括:
根據所述第二張量,獲取所述用戶簇內任意兩個用戶在所述m個社交圈維度中每個社交圈維度上的相似度,所述相似度用于表征所述任意兩個用戶在所述社交圈維度上的關系緊密度;
針對每個所述社交圈維度,根據所述用戶簇內任意兩個用戶在所述社交圈維度上的相似度,將所述用戶簇內的用戶在所述社交圈維度上聚類為至少一個社交圈。
對應的,如圖6所示,為本發明實施例提供的另一種通信數據分析裝置的結構示意圖,該通信數據分析裝置可包括:處理器1001。圖5的功能單元可以通過本發明實施例的處理器1001實現。處理器1001用于控制該裝置的操作,包括獲取s個用戶的歷史通信數據,所述歷史通信數據用于表征所述s個用戶的歷史通信狀態,所述s為大于或者等于2的自然數;進一步對所述s個用戶的歷史通信數據進行分析,確定所述s個用戶形成的k個用戶簇,一個用戶簇包含至少一個用戶,屬于同一個用戶簇的用戶之間存在相互關聯的通信特征,所述k為大于或者等于2的自然數;針對每個所述用戶簇,確定所述用戶簇內的第一用戶,所述第一用戶為在所述用戶簇的所有用戶中影響力強度最大的用戶,所述影響力強度用于表征影響力的大小。
進一步的,通信數據分析裝置還可以包括存儲器1002,存儲器1002可以包括只讀存儲器和隨機存取存儲器,用于向處理器1001提供指令和數據。存儲器1002可以集成于處理器1001中,也可以獨立于處理器1001。存儲器1002的一部分還可以包括非易失行隨機存取存儲器(nvram)。該裝置的各個組件通過總線系統耦合在一起,其中總線系統1009除包括數據總線之外,還包括電源總線、控制總線和狀態信號總線。但是為了清楚說明起見,在圖中將各種總線都標為總線系統1009。
本申請實施例圖1所揭示的流程可以應用于處理器1001中。在實現過程中,該裝置實現的流程的各步驟可以通過處理器1001中的硬件的集成邏輯電路或者軟件形式的指令完成。處理器1001可以是通用處理器、數字信號處理器、專用集成電路、現場可編程門陣列或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件,可以實現或者執行本申請實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者任何常規的處理器等。結合本申請實施例所公開的方法的步驟可以直接體現為硬件處理器執行完成,或者用處理器中的硬件及軟件模塊組合執行完成。軟件模塊可以位于隨機存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領域成熟的存儲介質中。該存儲介質位于存儲器1002,處理器1001讀取存儲器1002中的信息,結合其硬件完成本發明實施例指示流程的步驟。
本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,該流程可以由計算機程序來指令相關的硬件完成,該程序可存儲于計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法實施例的流程。而前述的存儲介質包括:rom或隨機存儲記憶體ram、磁碟或者光盤等各種可存儲程序代碼的介質。