一種好友推薦方法和裝置的制造方法
【專利摘要】本申請?zhí)峁┝艘环N好友推薦方法和裝置,該方法包括:根據(jù)目標用戶的第一用戶關(guān)系拓撲確定與所述目標用戶屬于同一第一用戶關(guān)系子拓撲的用戶;根據(jù)目標用戶的第二用戶關(guān)系拓撲將與該目標用戶參與同一會話的用戶劃分到該目標用戶的溝通序列中;將與所述目標用戶屬于同一第一用戶關(guān)系子拓撲,且未添加為所述目標用戶的好友的用戶組成第一好友候選集;將與所述目標用戶屬于同一溝通序列,且未添加為所述目標用戶的好友的用戶組成第二好友候選集;將所述第一好友候選集和第二好友候選集合并,作為所述目標用戶的好友推薦集,并推薦給所述目標用戶。該方法提高了設備處理能力,并能夠為用戶全面地進行好友推薦。
【專利說明】
-種好友推薦方法和裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明設及計算機網(wǎng)絡技術(shù)領(lǐng)域,特別設及一種好友推薦方法和裝置。
【背景技術(shù)】
[0002] 好友推薦業(yè)務是一種通過對社交網(wǎng)絡數(shù)據(jù)進行挖掘,分析用戶的社交偏好,從而 為用戶推薦好友的業(yè)務。
[0003] 好友關(guān)系是社交網(wǎng)絡中最重要的屬性之一,對用戶的活躍程度具有重要的影響。 通過促進用戶交友,好友推薦可W提升用戶的活躍程度,在一定程度上提高用戶的黏性。
[0004] 目前,關(guān)于好友推薦,有一種通過對用戶的關(guān)系網(wǎng)絡進行挖掘,利用好友的好友, 也稱為二度好友,形成推薦候選集推薦給用戶。
[0005] 該種好友推薦方式中,推薦候選集由二度好友組成,運種策略傾向于對用戶已有 的成熟社交圈子進行擴展,如,推薦尚未加為好友的同學或同事。由于來自成熟的社交圈 子,推薦候選集能在一定程度上反映用戶W前的交友偏好,但未必能刻畫新的交友需求。
[0006] 因此,該好友推薦方法在實際應用中無法為用戶提供全面推薦結(jié)果。
【發(fā)明內(nèi)容】
[0007] 有鑒于此,本申請?zhí)峁┮环N好友推薦方法和裝置,提高了設備處理能力,并能夠為 用戶全面地進行好友推薦。
[000引為解決上述技術(shù)問題,本申請的技術(shù)方案是運樣實現(xiàn)的:
[0009] -種好友推薦方法,該方法包括:
[0010] 從服務器獲取目標用戶的第一用戶關(guān)系拓撲和第二用戶關(guān)系拓撲;所述目標用戶 的第一用戶關(guān)系拓撲包括第一用戶集合W及所述第一用戶集合中各用戶之間的好友關(guān)系, 所述第一用戶集合包括所述目標用戶W及所述目標用戶的1度至Z度好友用戶;所述目標用 戶的第二用戶關(guān)系拓撲包括第二用戶集合W及所述目標用戶與所述第二用戶集合中的各 用戶之間的會話信息,所述第二用戶集合包括所述目標用戶W及與所述目標用戶存在信息 交互的用戶;其中,Z為大于1的整數(shù);目標用戶的1度好友用戶為已添加為所述目標用戶好 友的用戶,目標用戶的2到Z度好友用戶為未添加為所述目標用戶好友的用戶;
[0011] 根據(jù)所述目標用戶的第一用戶關(guān)系拓撲確定與所述目標用戶屬于同一第一用戶 關(guān)系子拓撲的用戶;所述目標用戶在第一用戶關(guān)系子拓撲中至少存在一個1度好友用戶;
[0012] 根據(jù)所述目標用戶的第二用戶關(guān)系拓撲將與該目標用戶參與同一會話的用戶劃 分到該目標用戶的溝通序列中;
[0013] 將與所述目標用戶屬于同一第一用戶關(guān)系子拓撲,且未添加為所述目標用戶的好 友的用戶組成第一好友候選集;將與所述目標用戶屬于同一溝通序列,且未添加為所述目 標用戶的好友的用戶組成第二好友候選集;
[0014] 將所述第一好友候選集和第二好友候選集合并,作為所述目標用戶的好友推薦 集,并推薦給所述目標用戶。
[0015] -種好友推薦裝置,該裝置包括:獲取單元、確定單元、處理單元和推薦單元;
[0016] 所述獲取單元,用于從服務器獲取目標用戶的第一用戶關(guān)系拓撲和第二用戶關(guān)系 拓撲;所述目標用戶的第一用戶關(guān)系拓撲包括第一用戶集合W及所述第一用戶集合中各用 戶之間的好友關(guān)系,所述第一用戶集合包括所述目標用戶W及所述目標用戶的1度至Z度好 友用戶;所述目標用戶的第二用戶關(guān)系拓撲包括第二用戶集合W及所述目標用戶與所述第 二用戶集合中的各用戶之間的會話信息,所述第二用戶集合包括所述目標用戶W及與所述 目標用戶存在信息交互的用戶;其中,Z為大于1的整數(shù);目標用戶的1度好友用戶為已添加 為所述目標用戶好友的用戶,目標用戶的2到Z度好友用戶為未添加為所述目標用戶好友的 用戶;
[0017] 所述確定單元,用于根據(jù)所述獲取單元獲取目標用戶的第一用戶關(guān)系拓撲確定與 所述目標用戶屬于同一第一用戶關(guān)系子拓撲的用戶;所述目標用戶在第一用戶關(guān)系子拓撲 中至少存在一個1度好友用戶;根據(jù)所述目標用戶的第二用戶關(guān)系拓撲將與該目標用戶參 與同一會話的用戶劃分到該目標用戶的溝通序列中;
[0018] 所述處理單元,用于將所述確定單元確定的與所述目標用戶屬于同一第一用戶關(guān) 系子拓撲,且未添加為所述目標用戶的好友的用戶組成第一好友候選集;將與所述目標用 戶屬于同一溝通序列,且未添加為所述目標用戶的好友的用戶組成第二好友候選集;
[0019] 所述推薦單元,用于將所述處理單元處理的所述第一好友候選集和第二好友候選 集合并,作為所述目標用戶的好友推薦集,并推薦給所述目標用戶。
[0020] 由上面的技術(shù)方案可知,本申請中基于由用戶和與該用戶存在好友關(guān)系的用戶組 成的第一用戶關(guān)系拓撲,W及由用戶和與該用戶進行會話的用戶組成的第二用戶關(guān)系拓撲 提供好友推薦方法;第一好友關(guān)系拓撲為用戶長期的交友行為累積下的,反應了用戶長期 的交友偏好,第二用戶關(guān)系拓撲由用戶近期的交友活動產(chǎn)生,反映用戶近期的交友興趣。通 過對運兩種拓撲進行挖掘和融合,提高設備處理能力,并能夠為用戶進行全面的好友推薦。
【附圖說明】
[0021 ]圖1為本申請實施例中好友推薦流程示意圖;
[0022] 圖2為本申請實施例中表示用戶1的第一用戶關(guān)系拓撲的網(wǎng)絡拓撲結(jié)構(gòu)的示意圖;
[0023] 圖3為本申請實施例中用戶1的一對多的用戶關(guān)系拓撲示意圖;
[0024] 圖4為本申請實施例中用戶1的一對一的用關(guān)系拓撲示意圖;
[0025] 圖5為本申請實施例中為好友推薦中的用戶排序流程示意圖;
[0026] 圖6為本申請實施例中好友推薦裝置結(jié)構(gòu)示意圖;
[0027] 圖7為本申請具體實施例中好友推薦設備的硬件架構(gòu)組成示意圖。
【具體實施方式】
[0028] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,下面結(jié)合附圖并舉實施例, 對本發(fā)明的技術(shù)方案進行詳細說明。
[0029] 本申請實施例中為了能更全面地為社交網(wǎng)絡系統(tǒng)中用戶進行好友推薦,通過基于 社交網(wǎng)絡系統(tǒng)中的第一用戶關(guān)系拓撲和第二用戶關(guān)系拓撲為用戶推薦好友。
[0030] 其中,第一用戶關(guān)系拓撲為社交網(wǎng)絡系統(tǒng)中用戶間長期的交友行為累積下的,反 應了用戶間長期的交友偏好的關(guān)系拓撲。該第一用戶關(guān)系拓撲包括社交網(wǎng)絡系統(tǒng)中的各用 戶W及各用戶之間的好友關(guān)系信息。具體的,第一用戶關(guān)系拓撲可W采用網(wǎng)絡拓撲結(jié)構(gòu)來 表示。該網(wǎng)絡拓撲結(jié)構(gòu)包括頂點集合V和邊集合E,記為G =(V,E)。其中頂點集合V中的每一 個頂點代表社交網(wǎng)絡系統(tǒng)中的一個用戶。邊集合E中的每一條邊表示網(wǎng)絡拓撲結(jié)構(gòu)中該邊 所連接的兩個頂點所代表的用戶之間存在好友關(guān)系,且每條邊包含了好友分組、好友備注 等信息。即當網(wǎng)絡拓撲結(jié)構(gòu)中的兩個頂點之間存在邊時,表示運兩個頂點所代表的用戶之 間存在好友關(guān)系;當網(wǎng)絡拓撲結(jié)構(gòu)中的兩個頂點之間不存在邊時,表示運兩個頂點所代表 的用戶之間不存在好友關(guān)系。
[0031] 第二用戶關(guān)系拓撲為社交網(wǎng)絡系統(tǒng)中各用戶近期的交友活動產(chǎn)生的,反映各用戶 間近期的交友興趣的關(guān)系拓撲。該第二用戶關(guān)系拓撲包括一對多用戶關(guān)系拓撲和一對一用 戶關(guān)系拓撲。其中一對多用戶關(guān)系拓撲是指一個用戶將消息發(fā)送給多個用戶的關(guān)系拓撲, 如群組會話等。該一對多用戶關(guān)系拓撲包括社交網(wǎng)絡系統(tǒng)中的多個用戶W及各用戶之間的 會話信息。一對一用戶關(guān)系拓撲是指單個用戶將消息發(fā)送給單個用戶的關(guān)系拓撲,如一對 一會話等。該一對一用戶關(guān)系拓撲包括社交網(wǎng)絡系統(tǒng)中的任意兩個用戶W及任意兩個用戶 之間的會話信息。
[0032] 下面結(jié)合附圖,詳細說明本申請實施例中實現(xiàn)好友推薦過程。
[0033] 參見圖1,圖1為本申請實施例中好友推薦流程示意圖。具體步驟為:
[0034] 步驟101,設備從服務器上獲取目標用戶的第一用戶關(guān)系拓撲和第二用戶關(guān)系拓 撲。
[0035] 其中,目標用戶為社交網(wǎng)絡系統(tǒng)中需要向其推薦好友的用戶。目標用戶可W為社 交網(wǎng)絡系統(tǒng)中的任意一個用戶。
[0036] 服務器可W是一個服務器,也可W是多個服務器,用于存儲第一用戶關(guān)系拓撲和 第二用戶關(guān)系拓撲。實現(xiàn)本申請設備可W是一臺PC,也可W是存儲數(shù)據(jù)信息的服務器,在下 文中統(tǒng)稱為設備。
[0037] 目標用戶的第一用戶關(guān)系拓撲包括第一用戶集合W及該第一用戶集合中各用戶 之間的好友關(guān)系信息。
[0038] 其中,第一用戶集合包括該目標用戶W及該目標用戶的1度至Z度好友用戶。其中, 目標用戶的1度好友用戶是指已被該目標用戶添加為好友的用戶。
[0039] 如,社交網(wǎng)絡系統(tǒng)QQ中的QQ好友,社交網(wǎng)絡系統(tǒng)微信中的微信好友等。該目標用戶 可W有多個QQ好友,也可W有多個微信好友。目標用戶的2度好友用戶是指該目標用戶的好 友的好友用戶,依次類推,目標用戶的Z度好友用戶為該目標用戶的Z-I度好友的好友用戶。 其中,Z為大于1的整數(shù),即本申請實施例中,該目標用戶的第一用戶集合至少包括該目標用 戶W及該目標用戶的1度至2度好友用戶。
[0040] 該目標用戶的第一用戶集合中各用戶之間的好友關(guān)系信息包括第一用戶集合中 各用戶之間的好友關(guān)系,W及第一用戶集合中各用戶之間的好友關(guān)系對應的好友分組信 息、好友備注信息等。
[0041] 參見圖2,圖2為本申請實施例中表示用戶1的第一用戶關(guān)系拓撲的網(wǎng)絡拓撲結(jié)構(gòu) 的示意圖。
[0042] 圖2中,該用戶1的第一用戶關(guān)系拓撲包括第一用戶集合和第一用戶集合中的各用 戶之間的好友關(guān)系信息,W用戶I的I至2度好友構(gòu)成的第一用戶關(guān)系拓撲為例。其中,第一 用戶集合包括用戶1、用戶1的一度好友用戶(包括用戶2、用戶3和用戶4) W及用戶1的二度 好友用戶(包括用戶5、用戶6、用戶7、用戶8、用戶9和用戶10);并且在用戶1的1度好友中,用 戶2和用戶3之間互為1度好友;在用戶1的2度好友中,用戶5和用戶6, W及用戶9和用戶10之 間互為1度好友。
[0043] 在圖2所示的用戶1的第一用戶關(guān)系拓撲的網(wǎng)絡拓撲結(jié)構(gòu)中,其包括分別代表用戶 1至用戶10的頂點集合V和分別代表用戶1至10中的各用戶之間的好友關(guān)系的邊的集合E。一 條邊表示兩個用戶之間存在1度好友關(guān)系,如用戶巧日用戶3之間的邊,表示用戶1和用戶3之 間互為1度好友;用戶5和用戶6之間的邊,表示用戶5和用戶6之間互為1度好友;邊還包含了 分組、備注等信息。
[0044] 本步驟中的目標用戶的第二用戶關(guān)系拓撲包括第二用戶集合W及所述目標用戶 與所述第二用戶集合中的各用戶之間的會話信息,所述第二用戶集合包括所述目標用戶W 及與所述目標用戶存在信息交互的用戶。
[0045] 第二用戶關(guān)系拓撲,包括兩類拓撲,第一類拓撲為一對多用戶關(guān)系拓撲;第二類拓 撲為一對一用戶關(guān)系拓撲。
[0046] 其中,一對多用戶關(guān)系拓撲為目標用戶與多個用戶進行會話的拓撲;如聊天室中 的會話,一個用戶發(fā)送信息,其他用戶都能夠看到;再比如一個QQ群、微信群等;一個QQ群, 或者一個微信群中用戶之間進行會話時構(gòu)成一個一對多用戶關(guān)系拓撲。
[0047] 參見圖3,圖3為本申請實施例中用戶1的一對多的用戶關(guān)系拓撲示意圖。
[0048] 圖3中,W用戶1所在的一個QQ群為例,該QQ群中包括6個用戶,分別為用戶1、用戶 2、用戶3、用戶4、用戶5和用戶6。當任一用戶發(fā)送消息時,該QQ群中的其他用戶都會接收到 該用戶發(fā)送的消息,如用戶1發(fā)送消息,該QQ群中的用戶2、用戶3、用戶4、用戶5和用戶6都會 接收到該消息。
[0049] 其中,一對一用戶關(guān)系拓撲為單個用戶與單個用戶進行會話的拓撲;即兩兩用戶 之間會話的拓撲,如QQ聊天中一個用戶與其一個好友一對一聊天。
[0050] 參見圖4,圖4為本申請實施例中用戶1的一對一的用關(guān)系拓撲示意圖。
[0051] 圖4中,W用戶1為目標用戶為例,用戶1分別與用戶2和用戶3進行單獨會話;用戶2 分別與用戶4、用戶5和用戶6進行單獨會話。
[0052] 步驟102,該設備根據(jù)所述目標用戶的第一用戶關(guān)系拓撲確定與所述目標用戶屬 于同一第一用戶關(guān)系子拓撲的用戶;該目標用戶在第一用戶關(guān)系子拓撲中至少存在一個1 度好友用戶。
[0053] 本步驟中該設備根據(jù)所述目標用戶的第一用戶關(guān)系拓撲確定與所述目標用戶屬 于同一第一用戶關(guān)系子拓撲的用戶,包括:
[0054] (1)、假設當該目標用戶的第一用戶關(guān)系拓撲中的所有用戶屬于不同的第一用戶 關(guān)系子拓撲時,計算目標用戶的第一用戶關(guān)系拓撲的模塊度Q;
[0055] (2)、確定該目標用戶的第一用戶關(guān)系拓撲中任意兩個用戶是否屬于同一第一用 戶關(guān)系子拓撲:
[0056] 假設所述兩個用戶屬于同一第一用戶關(guān)系子拓撲,第一用戶關(guān)系拓撲中的其它用 戶屬于不同的第一用戶關(guān)系子拓撲,且均不屬于所述兩個用戶所屬的第一用戶關(guān)系子拓撲 時,計算目標用戶的第一用戶關(guān)系拓撲的模塊度p;
[0057] 針對任一用戶,將P大于Q,且值最大的P對應的兩個用戶,確定屬于一個第一用戶 關(guān)系子拓撲。
[0058] 該設備計算目標用戶的第一用戶關(guān)系拓撲的模塊度的方法為:
[0059] 第一用戶關(guān)系拓撲的模塊度為
[0060] 其中,Aij為鄰接矩陣,若用戶巧日用戶j為1度好友,則Aij = 1,否則Aij = 0;M為第一 用戶關(guān)系拓撲中兩兩用戶之間互為1度好友的個數(shù);ki為與用戶i存在1度好友關(guān)系的用戶 的個數(shù),kj為與用戶j存在1度好友關(guān)系的用戶的個數(shù);Cl為用戶i所屬的第一用戶關(guān)系子拓 撲,C功用戶j所屬的第一用戶關(guān)系子拓撲,若Ci = Cj,則S(Ci尼)=1,否則,S化尼)=〇山 j為1到N的整數(shù),N為第一用戶關(guān)系拓撲中用戶的個數(shù)。
[0061] W目標用戶為用戶1,用戶1對應的第一用戶關(guān)系拓撲中包括:用戶1、用戶2、用戶3 和用戶4;
[0062] 假設用戶1和用戶2,用戶1和用戶3,用戶1和用戶4, W及用戶2和用戶3計算出的P 均大于Q,且針對用戶1和用戶2計算的P大于用戶2和用戶3計算出的P,也大于用戶1和用戶 4, W及用戶1和用戶3計算出的P,則將用戶1和用戶2確定屬于同一用戶關(guān)系子拓撲;用戶3 屬于一個第一用戶關(guān)系子拓撲;用戶4屬于一個用戶關(guān)系子拓撲。
[0063] (3)、當確定出多個第一用戶關(guān)系子拓撲時,確定所述第一用戶關(guān)系子拓撲是否能 合并,如果是,將能夠合并的第一用戶關(guān)系子拓撲合并。
[0064] 如上述舉例,確定出S個第一用戶關(guān)系子拓撲,還需確定各第一用戶關(guān)系子拓撲 是否能夠合并。
[0065] 當確定出多個第一用戶關(guān)系子拓撲時,確定所述第一用戶關(guān)系子拓撲是否能合 并,包括:
[0066] 當所有第一用戶關(guān)系子拓撲均不能合并時,計算第一用戶關(guān)系子拓撲對應的第一 用戶關(guān)系拓撲的模塊度W;
[0067] 通過W下方法確定所述多個第一用戶關(guān)系子拓撲中任意兩個第一用戶關(guān)系子拓 撲是否能合并:
[0068] 當所述兩個第一用戶關(guān)系子拓撲能夠合并,其它第一用戶關(guān)系子拓撲均不能合并 時,計算第一用戶關(guān)系子拓撲對應的第一用戶關(guān)系拓撲的模塊度R;
[0069] 將R大于W,且值最大的R對應的兩個第一用戶關(guān)系子拓撲確定為能合并。
[0070] 如果進行上述步驟處理后,還存在多個第一用戶關(guān)系子拓撲時,再進行迭代,確定 當前確定的各第一用戶關(guān)系子拓撲是否能合并,直到確定出一個第一用戶關(guān)系子拓撲,或 者確定出的所有第一用戶關(guān)系子拓撲均不能再合并。
[0071] 上述設備計算第一用戶關(guān)系子拓撲對應的第一用戶關(guān)系拓撲的模塊度的方法為:
[0072] 第一用戶關(guān)系拓撲的模塊度為:
[0073] 其中,Ahi為鄰接矩陣,若第一用戶關(guān)系子拓撲h中的用戶和第一用戶關(guān)系子拓撲1 中的用戶至少存在一對用戶為1度好友,則Ahi = 1,否則Ahi = 0 ;M為第一用戶關(guān)系拓撲中兩 兩用戶之間互為I度好友的個數(shù);kh為第一用戶關(guān)系子拓撲h中所有用戶的I度好友去重后 的1度好友的總個數(shù);kl為第一用戶關(guān)系子拓撲1中所有用戶的1度好友去重后的1度好友的 總個數(shù);Ch為第一用戶關(guān)系子拓撲h,Ci為第一用戶關(guān)系子拓撲1,若Ch = Ci,則S(Ch,Ci) = l, 否則,S(Ch,Ci)=0;h,l為1到T的整數(shù),T為第一用戶關(guān)系子拓撲的個數(shù)。
[0074] W第(2)步對應的舉例中確定出的S個第一用戶關(guān)系子拓撲為例,分別記為第一 用戶關(guān)系子拓撲1(包括用戶1和用戶2)、第一用戶關(guān)系子拓撲2(包括用戶3)和第一用戶關(guān) 系子拓撲3(包括用戶4)。Wh為1,1為2為例,用戶1或用戶2,與用戶3為1度好友時,則Au = I, 否則Au = Onki為用戶巧日用戶2的1度好友去重后的1度好友的總個數(shù),如用戶1的1度好友為 用戶2和用戶3,用戶2的1度好友為用戶3和用戶4,則kl為2。
[0075] 仍然W第(2)步對應的舉例中確定出的=個第一用戶關(guān)系子拓撲為例,若確定第 一用戶關(guān)系子拓撲1和第一用戶關(guān)系子拓撲2能夠合并,且進一步確定合并后的第一用戶關(guān) 系子拓撲和第一用戶關(guān)系子拓撲3不能合并,則最終確定出兩個第一用戶關(guān)系子拓撲,一個 第一用戶關(guān)系子拓撲包括用戶1、用戶2和用戶3;另一個第一用戶關(guān)系子拓撲包括用戶4。
[0076] 因此,針對用戶1,確定用戶2和用戶3與用戶1屬于同一第一用戶關(guān)系子拓撲。
[0077] 步驟103,該設備根據(jù)所述目標用戶的第二用戶關(guān)系拓撲將與該目標用戶參與同 一會話的用戶劃分到該目標用戶的溝通序列中。
[0078] 由于第二用戶關(guān)系拓撲包括兩類拓撲,因此,針對目標用戶分別計算在兩類拓撲 中的溝通序列,若在兩類拓撲中均計算出溝通序列,則將運兩類拓撲中計算出的溝通序列 合并作為該目標用戶的溝通序列。
[0079] 下面詳細描述溝通序列的確定過程:
[0080] 首先,在第一預設時間內(nèi),針對目標用戶的一對多用戶關(guān)系拓撲確定溝通序列;目 標用戶與所述第二用戶集合中的各用戶之間的會話信息包括:發(fā)布信息的用戶的名稱,W 及發(fā)布信息的時間。
[0081] 確定溝通序列的過程具體如下:
[0082] 在第一預設時間內(nèi),目標用戶可能參與了多個群的會話,則先針對每個群的會話 進行如下處理:
[0083] 根據(jù)會話消息的發(fā)送時間,將發(fā)送兩條相鄰消息的時間間隔小于第二預設時間的 會話消息劃分到一個會話段,將參與該會話段的用戶劃分到同一溝通序列中;若該用戶參 與多個會話段,則將該用戶的多個會話段對應的溝通序列合并作為該目標用戶針對一對多 用戶關(guān)系拓撲確定的溝通序列。
[0084] 若該用戶參與了多個群的會話,則將針對各個群確定的溝通序列再合并為一個溝 通序列作為該目標用戶針對一對多用戶關(guān)系拓撲確定的溝通序列。
[0085] 根據(jù)每個會話段生成一個溝通序列,如一個會話段由用戶A發(fā)起,即用戶A發(fā)布第 一條會話消息;接下來,用戶B發(fā)送會話消息;然后用戶A發(fā)送會話消息,最后用戶C發(fā)送會話 消息;則針對該會話段的溝通序列為(A,B,A,C)。
[0086] 若針對一對多用戶關(guān)系拓撲,用戶A的第一個會話段對應的溝通序列為(A,B,A, C),第二個會話段對應的溝通序列為(A,D,C,C);則針對用戶A在一對多用戶關(guān)系拓撲中的 溝通序列為運兩個溝通序列的并集,如合并后的溝通序列為(A,B,A,C;A,D,C,C)。
[0087] 若針對用戶A在第一預設時間內(nèi)參與了兩個群的會話,針對第一群的溝通序列為 (0,4、(:,〇,針對第二個群的會話序列為^,0,〇,則確定用戶4在第一預設時間內(nèi)的溝通序 列為(D,A、C,C,A,D,C)。
[0088] 在合并溝通序列時,可W隨機選擇將哪個溝通序列放在序列的前段或后段,也可 W配置規(guī)則,按配置的規(guī)則按順序放置各溝通序列到一個溝通序列中。
[0089] 其次,在第一預設時間內(nèi),針對一對一用戶關(guān)系拓撲確定溝通序列。
[0090] 針對一對一用戶關(guān)系拓撲,目標用戶與第二用戶集合中的各用戶之間的會話信息 包括:收、發(fā)會話消息的用戶的名稱,進行會話的兩個用戶發(fā)送會話消息的次數(shù)。
[0091] 仍然W圖4為例,圖4所示的拓撲中,目標用戶與第二集合中的各用戶之間的會話 信息包括:收、發(fā)會話消息的用戶的名稱為用戶1和用戶2時,發(fā)送會話消息的次數(shù)為5;收發(fā) 會話消息的用戶的名稱為用戶1和用戶3時,發(fā)送會話消息的次數(shù)為10;收、發(fā)會話消息的用 戶的名稱為用戶2和用戶4時,發(fā)送會話消息的次數(shù)為3;收、發(fā)會話消息的用戶名稱為用戶2 和用戶5時,發(fā)送會話消息的次數(shù)為5;收、發(fā)會話消息的用戶名稱為用戶2和用戶6時,發(fā)送 會話消息的次數(shù)為10。
[0092] 針對一對一用戶關(guān)系拓撲中的各用戶的溝通序列生成的方式為,W所述各用戶為 初始遍歷點,采用隨機游走的方式生成所述各用戶的溝通序列。
[0093] 針對一對一用戶關(guān)系拓撲中的目標用戶確定溝通序列的具體過程如下:
[0094] W目標用戶作為初始遍歷點;分別確定選擇將各其它用戶作為下一個遍歷點的概 率,其中,將該目標用戶與任一其它用戶發(fā)送會話消息的次數(shù)在總會話消息的次數(shù)中所占 百分率作為選擇該其它用戶作為下一個遍歷點的概率,并按照各其它用戶作為下一個遍歷 點的概率選擇作為下一遍歷點的用戶,直到曾作為遍歷點的用戶數(shù)達到預設用戶個數(shù),將 各曾作為遍歷點的用戶組成集合,作為該目標用戶的溝通序列。
[00M]如W用戶A為初始遍歷點,與用戶A進行會話的用戶為用戶B、C、D,且分別發(fā)送會話 消息的次數(shù)為50、20、30,則針對用戶B,確定用戶B作為下一遍歷點的概率為50%,針對用戶 C,確定用戶C作為下一遍歷點的概率為20%,針對用戶D,確定用戶D作為下一遍歷點的概率 為30%,則按照各用戶作為下一遍歷點的概率選擇作為下一遍歷點的用戶。
[0096] 假設選擇用戶D作為下一遍歷起點,與用戶D進行會話的用戶為用戶E、F、A,則分別 確定用戶E、F、A作為下一遍歷點的概率,W此類推,直到作為遍歷點的用戶達到預設用戶個 數(shù),如10,則結(jié)束遍歷,將運10個遍歷點對應的用戶組成一個集合,作為用戶A的溝通序列。
[0097] 最后,針對目標用戶,將該目標用戶針對一對多用戶關(guān)系拓撲和一對一用戶關(guān)系 拓撲確定的溝通序列合并,作為該目標用戶針對第二用戶關(guān)系拓撲確定的溝通序列。
[0098] 本實施例中,第一預設時間大于第二預設時間;第一預設時間為標識獲取第二用 戶關(guān)系拓撲的時間段,如最近一天、一周等時間。
[0099] 步驟102和步驟103在執(zhí)行過程中不區(qū)分先后順序。
[0100] 步驟104,該設備將與該目標用戶屬于同一第一用戶關(guān)系子拓撲,且未添加為所述 目標用戶的好友的用戶組成第一好友候選集;將與所述目標用戶屬于同一溝通序列,且未 添加為所述目標用戶的好友的用戶組成第二好友候選集。
[0101] 步驟105,該設備將所述第一好友候選集和第二好友候選集合并,作為所述目標用 戶的好友推薦集,并推薦給所述目標用戶。
[0102] 通過上述實現(xiàn)方式,在確定好友推薦集時,考慮了第一用戶關(guān)系拓撲和第二用戶 關(guān)系拓撲,即既考慮了用戶長期的興趣愛好,也考慮了近期的興趣愛好,能夠更全面地為用 戶推薦好友。
[0103] 通過上述方式可W看出,通常為用戶推薦的好友不止一個,有時候還會很多,由于 通常情況下用戶關(guān)注排序靠前的用戶,或者由于頁面顯示關(guān)系,不能全在一個界面上顯示, 因此,將推薦的好友按照系統(tǒng)認為比較優(yōu)質(zhì)的好友,即用戶可能接收推薦的用戶,進行排 序,并將優(yōu)質(zhì)的好友優(yōu)先推薦給用戶變得尤為重要。
[0104] 下面結(jié)合附圖,給出本申請?zhí)峁┑臑楹糜淹扑]集中的用戶排序的過程。
[0105] 設備根據(jù)實際應用為用戶的各特征配置權(quán)重值。
[0106] 參見圖5,圖5為本申請實施例中為好友推薦中的用戶排序流程示意圖。具體步驟 為:
[0107] 步驟501,設備將第一用戶關(guān)系子拓撲中出現(xiàn)次數(shù)最多的關(guān)系類型作為該第一用 戶關(guān)系子拓撲的屬性,為該屬性配置屬性值,并將該屬性值作為對應的第一好友候選集中 的各用戶的第一特征的特征值。
[0108] 在第一用戶關(guān)系拓撲中,存在邊的關(guān)系的用戶,會包含分組、備注等信息,分組中 如同學、同事等關(guān)系類型。
[0109] 該設備通過語義識別抽取其中包含的關(guān)系類型,將一個第一用戶關(guān)系子拓撲中出 現(xiàn)次數(shù)最多的關(guān)系類型,作為該第一用戶關(guān)系子拓撲的屬性,并根據(jù)實際需要為該屬性配 置屬性值,如實際應用中認為同學運種關(guān)系類型更重要,則為該種關(guān)系類型配置值大的屬 性值;否則,配置值小的屬性值。
[0110] 步驟502,該設備確定第一用戶關(guān)系子拓撲中各用戶與該第一用戶關(guān)系子拓撲的 關(guān)系緊密程度,為各用戶與該第一用戶關(guān)系子拓撲的關(guān)系緊密程度配置緊密關(guān)系程度值, 將各用戶對應的緊密關(guān)系程度值作為對應第一好友候選集中的對應用戶的第二特征值。
[0111] 本步驟中確定第一用戶關(guān)系子拓撲中各用戶與該第一用戶關(guān)系子拓撲的關(guān)系緊 密程度,包括:
[0112] 任一用戶與對應第一用戶關(guān)系子拓撲中的用戶存在共同好友的個數(shù);或與第一用 戶關(guān)系子拓撲中的用戶之間的發(fā)送會話消息的次數(shù)作為該第一用戶關(guān)系子拓撲中對應用 戶與該第一用戶關(guān)系子拓撲的關(guān)系緊密程度。
[0113] 在具體實現(xiàn)時,可W將共同好友個數(shù)多的、發(fā)送會話消息的次數(shù)多的用戶與該第 一用戶關(guān)系子拓撲的緊密關(guān)系程度值配置的大一些。
[0114] 步驟503,該設備將第二好友候選集中的用戶在各溝通序列中作為發(fā)起人的次數(shù) 作為該用戶的第=特征值。
[0115] 在一個溝通序列中,運里的溝通序列指針對每個會話段的溝通序列,第一個發(fā)送 會話消息的用戶作為該溝通序列的發(fā)起人。
[0116] 步驟504,針對任一用戶,該設備確定該用戶與其第二好友候選集中的用戶的相似 度,并將確定的相似度作為第二候選集中對應用戶的第四特征值。
[0117] 本步驟中確定該用戶與其第二好友候選集中的用戶的相似度,包括:
[0118] 通過對第二好友候選集采用預設算法,如Word2Vec算法,進行訓練,獲得每個用戶 的向量,根據(jù)每個用戶的向量計算兩個用戶的相似度,如使用點積的方式計算兩個用戶的 相似度。
[0119] 步驟505,針對一個好友推薦集中的各用戶使用特征值加權(quán)求和獲得用戶的序列 值,該設備按照序列值從大到小的順序排列各用戶,并在推薦好友時按照排列順序推薦。
[0120] 該設備還可W根據(jù)當前實際應用情況,確定是否獲取新的數(shù)據(jù)信息,來重新確定 推薦好友集;也可W通過上線用戶選擇推薦好友的反饋信息來確定是否重新確定好友推薦 集,或者好友推薦集中用戶的排列順序。
[0121] 該設備根據(jù)上線用戶選擇推薦好友的反饋信息,即用戶添加哪些用戶為好友,或 者用戶一直未使用該種推薦,未添加任何好友;若確定當前推薦的好友被用戶選擇添加為 好友的概率小于預設值,重新為用戶的各特征值配置權(quán)重,并重新計算各用戶的序列值,按 重新計算的序列值排列各用戶,并使用重新排列的順序推薦給用戶。
[0122] 本申請實施例中通過對好友推薦集中的用戶按照在第一用戶關(guān)系拓撲和第二用 戶關(guān)系拓撲中的特征屬性,按預設規(guī)則對各用戶進行排序,從而能夠更精確地為用戶推薦 好友。
[0123] 基于同樣的發(fā)明構(gòu)思,本申請實施例中還提出一種好友推薦裝置。參見圖6,圖6為 本申請實施例中好友推薦裝置結(jié)構(gòu)示意圖。該裝置包括:獲取單元601、確定單元602、處理 單元603和推薦單元604;
[0124] 獲取單元601,用于從服務器獲取目標用戶的第一用戶關(guān)系拓撲和第二用戶關(guān)系 拓撲;所述目標用戶的第一用戶關(guān)系拓撲包括第一用戶集合W及所述第一用戶集合中各用 戶之間的好友關(guān)系,所述第一用戶集合包括所述目標用戶W及所述目標用戶的1度至Z度好 友用戶;所述目標用戶的第二用戶關(guān)系拓撲包括第二用戶集合W及所述目標用戶與所述第 二用戶集合中的各用戶之間的會話信息,所述第二用戶集合包括所述目標用戶W及與所述 目標用戶存在信息交互的用戶;其中,Z為大于1的整數(shù);目標用戶的1度好友用戶為已添加 為所述目標用戶好友的用戶,目標用戶的2到Z度好友用戶為未添加為所述目標用戶好友的 用戶;
[0125] 確定單元602,用于根據(jù)獲取單元601獲取目標用戶的第一用戶關(guān)系拓撲確定與所 述目標用戶屬于同一第一用戶關(guān)系子拓撲的用戶;所述目標用戶在第一用戶關(guān)系子拓撲中 至少存在一個1度好友用戶;根據(jù)所述目標用戶的第二用戶關(guān)系拓撲將與該目標用戶參與 同一會話的用戶劃分到該目標用戶的溝通序列中;
[0126] 處理單元603,用于將確定單元602確定的與所述目標用戶屬于同一第一用戶關(guān)系 子拓撲,且未添加為所述目標用戶的好友的用戶組成第一好友候選集;將與所述目標用戶 屬于同一溝通序列,且未添加為所述目標用戶的好友的用戶組成第二好友候選集;
[0127] 推薦單元604,用于將處理單元603處理的所述第一好友候選集和第二好友候選集 合并,作為所述目標用戶的好友推薦集,并推薦給所述目標用戶。
[012引較佳地,
[0129]確定單元602,具體用于根據(jù)所述目標用戶的第一用戶關(guān)系拓撲確定與所述目標 用戶屬于同一第一用戶關(guān)系子拓撲的用戶時:當所述目標用戶的第一用戶關(guān)系拓撲中的所 有用戶屬于不同的第一用戶關(guān)系子拓撲時,計算所述第一用戶關(guān)系拓撲的模塊度Q;通過W 下方法確定第一用戶關(guān)系拓撲中任意兩個用戶是否屬于同一第一用戶關(guān)系子拓撲:所述兩 個用戶屬于同一第一用戶關(guān)系子拓撲,第一用戶關(guān)系拓撲中的其它用戶屬于不同的第一用 戶關(guān)系子拓撲,且均不屬于所述兩個用戶所屬的第一用戶關(guān)系子拓撲時,計算目標用戶的 第一用戶關(guān)系拓撲的模塊度P;針對任一用戶,將P大于Q,且值最大的P對應的兩個用戶,確 定屬于一個第一用戶關(guān)系子拓撲;當確定出多個第一用戶關(guān)系子拓撲時,確定所述第一用 戶關(guān)系子拓撲是否能合并,如果是,將能合并的第一用戶關(guān)系子拓撲合并;直到確定出一個 第一用戶關(guān)系子拓撲,或者確定出的所有第一用戶關(guān)系子拓撲均不能再合并。
[0130] 較佳地,
[0131] 確定單元602,具體用于當確定出多個第一用戶關(guān)系子拓撲時,確定所述多個第一 用戶關(guān)系子拓撲是否能合并時:當所有第一用戶關(guān)系子拓撲均不能合并時,計算第一用戶 關(guān)系子拓撲對應的第一用戶關(guān)系拓撲的模塊度W;通過W下方法確定所述多個第一用戶關(guān) 系子拓撲中任意兩個第一用戶關(guān)系子拓撲是否能合并:當所述兩個第一用戶關(guān)系子拓撲能 夠合并,其它第一用戶關(guān)系子拓撲均不能合并時,計算第一用戶關(guān)系子拓撲對應的第一用 戶關(guān)系拓撲的模塊度R;將R大于W,且值最大的R對應的兩個第一用戶關(guān)系子拓撲確定為能 合并。
[0132] 較佳地,
[0133] 確定單元602,具體用于根據(jù)所述目標用戶的第二用戶關(guān)系拓撲將與該目標用戶 參與同一會話的用戶劃分到該目標用戶的溝通序列中時,針對一對多用戶關(guān)系拓撲,在第 一預設時間內(nèi),根據(jù)信息的發(fā)送時間,根據(jù)會話消息的發(fā)送時間,將發(fā)送兩條相鄰消息的時 間間隔小于第二預設時間的會話消息劃分到一個會話段,將參與該會話段的用戶劃分到同 一溝通序列中;若該用戶參與多個會話段,則將該用戶的多個會話段對應的溝通序列合并 作為該目標用戶針對一對多用戶關(guān)系拓撲確定的溝通序列;其中,第一預設時間大于第二 預設時間;目標用戶與所述第二用戶集合中的各用戶之間的會話信息包括:發(fā)布信息的用 戶的名稱,W及發(fā)布信息的時間;針對一對一用戶關(guān)系拓撲,在第一預設時間內(nèi),W所述目 標用戶為初始遍歷點,采用隨機游走的方式生成該目標用戶的溝通序列;將該目標用戶針 對一對多用戶關(guān)系拓撲和一對一用戶關(guān)系拓撲生成的溝通序列合并,作為該目標用戶的第 二用戶關(guān)系拓撲的溝通序列,其中,所述第二用戶關(guān)系拓撲包括:一對多用戶關(guān)系拓撲和一 對一用戶關(guān)系拓撲。
[0134] 較佳地,
[0135] 確定單元602,進一步用于若該用戶參與多個群的會話,則將針對各群的會話確定 溝通序列合并為一個溝通序列,作為該目標用戶的針對一對多用戶關(guān)系拓撲確定的溝通序 列。
[0136] 較佳地,
[0137] 確定單元602,具體用于W所述目標用戶為初始遍歷點,采用隨機游走的方式生成 該目標用戶的溝通序列時:W所述目標用戶作為初始遍歷點;分別確定選擇將各其它用戶 作為下一個遍歷點的概率,其中,將該目標用戶與任一其它用戶發(fā)送會話消息的次數(shù)在總 會話消息的次數(shù)中所占百分率作為選擇該其它用戶作為下一個遍歷點的概率,并按照各其 它用戶作為下一個遍歷點的概率選擇作為下一遍歷點的用戶,直到曾作為遍歷點的用戶數(shù) 達到預設用戶個數(shù),將各曾作為遍歷點的用戶組成集合,作為該目標用戶的溝通序列。
[013引較佳地,
[0139]確定單元602,進一步用于將第一用戶關(guān)系子拓撲中出現(xiàn)次數(shù)最多的關(guān)系類型作 為該第一用戶關(guān)系子拓撲的屬性,為該屬性配置屬性值,并將該屬性值作為對應的第一好 友候選集中的各用戶的第一特征的特征值;確定第一用戶關(guān)系子拓撲中各用戶與該第一用 戶關(guān)系子拓撲的關(guān)系緊密程度,為各用戶與該第一用戶關(guān)系子拓撲的關(guān)系緊密程度配置緊 密關(guān)系程度值,將各用戶對應的緊密關(guān)系程度值作為對應第一好友候選集中的對應用戶的 第二特征值;第二好友候選集中的用戶在各會話集中作為發(fā)起人的次數(shù)作為該用戶的第= 特征值;針對任一用戶,確定該用戶與其第二好友候選集中的用戶的相似度,并將確定的相 似度作為第二候選集中對應用戶的第四特征值;
[0140] 推薦單元604,進一步用于為用戶的各特征配置權(quán)重值;針對一個好友推薦集中的 各用戶使用確定單元602確定的特征值加權(quán)求和獲得用戶的序列值,按照序列值從大到小 的順序排列各用戶,并在推薦好友時按照排列順序推薦。
[0141] 較佳地,
[0142] 確定單元602,具體用于確定第一用戶關(guān)系子拓撲中各用戶與該第一用戶關(guān)系子 拓撲的關(guān)系緊密程度時,任一用戶與對應第一用戶關(guān)系子拓撲中的用戶存在共同好友的個 數(shù);或與第一用戶關(guān)系子拓撲中的用戶之間的信息交互次數(shù)作為該第一用戶關(guān)系子拓撲中 對應用戶與該第一用戶關(guān)系子拓撲的關(guān)系緊密程度;確定該用戶與其第二好友候選集中的 用戶的相似度時,通過對第二好友候選集采用預設算法進行訓練,獲得每個用戶的向量,根 據(jù)每個用戶的向量計算兩個用戶的相似度。
[0143] 較佳地,
[0144] 推薦單元604,進一步用于通過上線用戶選擇推薦好友的反饋信息,若確定當前推 薦的好友被用戶選擇添加為好友的概率小于預設值,重新為用戶的各特征值配置權(quán)重,并 重新計算各用戶的序列值,按重新計算的序列值排列各用戶,并使用重新排列的順序推薦 給用戶。
[0145] 上述實施例的單元可W集成于一體,也可W分離部署;可W合并為一個單元,也可 W進一步拆分成多個子單元。
[0146] 本申請各實施例中的各單元可W W機械方式或電子方式實現(xiàn)。例如,一個硬件模 塊可W包括??谠O計的永久性電路或邏輯器件(如專用處理器,如FPGA或ASIC)用于完成特 定的操作。硬件模塊也可W包括由軟件臨時配置的可編程邏輯器件或電路(如包括通用處 理器或其它可編程處理器)用于執(zhí)行特定操作。至于具體采用機械方式,或是采用專用的永 久性電路,或是采用臨時配置的電路(如由軟件進行配置)來實現(xiàn)硬件模塊,可W根據(jù)成本 和時間上的考慮來決定。
[0147] W上對本申請具體實施例中的好友推薦裝置進行了說明,下面給出本申請具體實 施例中好友推薦裝置所在設備的硬件架構(gòu)組成,該設備可稱為好友推薦設備,該好友推薦 設備是可W軟硬件結(jié)合的可編程設備,具體參見圖7,圖7為本申請具體實施例中好友推薦 設備的硬件架構(gòu)組成示意圖。該設備可包括:處理器710,存儲器720,端口730W及總線740。 處理器710和存儲器720通過總線740互聯(lián)。處理器710可通過端口730獲取和輸出數(shù)據(jù);其 中,
[0148] 獲取單元601被處理器710執(zhí)行時可W為服務器獲取目標用戶的第一用戶關(guān)系拓 撲和第二用戶關(guān)系拓撲;所述目標用戶的第一用戶關(guān)系拓撲包括第一用戶集合W及所述第 一用戶集合中各用戶之間的好友關(guān)系,所述第一用戶集合包括所述目標用戶W及所述目標 用戶的1度至Z度好友用戶;所述目標用戶的第二用戶關(guān)系拓撲包括第二用戶集合W及所述 目標用戶與所述第二用戶集合中的各用戶之間的會話信息,所述第二用戶集合包括所述目 標用戶W及與所述目標用戶存在信息交互的用戶;其中,Z為大于1的整數(shù);目標用戶的1度 好友用戶為已添加為所述目標用戶好友的用戶,目標用戶的2到Z度好友用戶為未添加為所 述目標用戶好友的用戶;
[0149] 確定單元602被處理器710執(zhí)行時可W為:根據(jù)獲取單元601獲取目標用戶的第一 用戶關(guān)系拓撲確定與所述目標用戶屬于同一第一用戶關(guān)系子拓撲的用戶;所述目標用戶在 第一用戶關(guān)系子拓撲中至少存在一個1度好友用戶;根據(jù)所述目標用戶的第二用戶關(guān)系拓 撲將與該目標用戶參與同一會話的用戶劃分到該目標用戶的溝通序列中;
[0150] 處理單元603被處理器710執(zhí)行時可W為:將確定單元602確定的與所述目標用戶 屬于同一第一用戶關(guān)系子拓撲,且未添加為所述目標用戶的好友的用戶組成第一好友候選 集;將與所述目標用戶屬于同一溝通序列,且未添加為所述目標用戶的好友的用戶組成第 二好友候選集;
[0151] 推薦單元604被處理器610執(zhí)行時可W為:將處理單元603處理的所述第一好友候 選集和第二好友候選集合并,作為所述目標用戶的好友推薦集,并推薦給所述目標用戶。
[0152] 由此可W看出,當存儲在存儲器720中的指令模塊被處理器710執(zhí)行時,可實現(xiàn)前 述技術(shù)方案中獲取單元、確定單元、處理單元和推薦單元的各種功能。
[0153] 另外,本發(fā)明的實施例中可W通過由設備如計算機執(zhí)行的數(shù)據(jù)處理程序來實現(xiàn)。 顯然,數(shù)據(jù)處理程序構(gòu)成了本發(fā)明。此外,通常存儲在一個存儲介質(zhì)中的數(shù)據(jù)處理程序通過 直接將程序讀取出存儲介質(zhì)或者通過將程序安裝或復制到數(shù)據(jù)處理設備的存儲設備(如硬 盤和/或內(nèi)存)中執(zhí)行。因此,運樣的存儲介質(zhì)也構(gòu)成了本發(fā)明。存儲介質(zhì)可W使用任何類型 的記錄方式,例如紙張存儲介質(zhì)(如紙帶等)、磁存儲介質(zhì)(如軟盤、硬盤、閃存等)、光存儲介 質(zhì)(如CD-ROM等)、磁光存儲介質(zhì)(如MO等)等。
[0154] 因此,本發(fā)明還公開了一種存儲介質(zhì),其中存儲有數(shù)據(jù)處理程序,該數(shù)據(jù)處理程序 用于執(zhí)行本發(fā)明上述技術(shù)方案。
[0155] 需要說明的是,圖7所示的設備只是一個具體的例子,也可W通過其他的與本實施 例描述不同結(jié)構(gòu)實現(xiàn),例如,執(zhí)行上述指令代碼時所完成的操作,也可W由特定應用專用集 成電路(ASIC)實現(xiàn)。另外,上述的處理器710可W是一個或多個,如果是多個,則由多個處理 器共同負責讀取和執(zhí)行所述指令代碼。因此,本申請對設備的具體結(jié)構(gòu)不作具體限定。
[0156] 綜上所述,本申請在確定好友推薦集時,考慮了第一用戶關(guān)系拓撲和第二用戶關(guān) 系拓撲的數(shù)據(jù)信息,即既考慮了用戶長期的興趣愛好,也考慮了近期的興趣愛好,能夠更全 面地為用戶推薦好友。
[0157] 本申請實施例中還通過對好友推薦集中的用戶按照在第一用戶關(guān)系拓撲和第二 用戶關(guān)系拓撲中的特征屬性,按預設規(guī)則對各用戶進行排序,從而能夠更精確地為用戶推 薦好友。
[0158] W上所述僅為本發(fā)明的較佳實施例而已,并不用W限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內(nèi)。
【主權(quán)項】
1. 一種好友推薦方法,其特征在于,該方法包括: 從服務器獲取目標用戶的第一用戶關(guān)系拓撲和第二用戶關(guān)系拓撲;所述目標用戶的第 一用戶關(guān)系拓撲包括第一用戶集合以及所述第一用戶集合中各用戶之間的好友關(guān)系,所述 第一用戶集合包括所述目標用戶以及所述目標用戶的1度至Z度好友用戶;所述目標用戶的 第二用戶關(guān)系拓撲包括第二用戶集合以及所述目標用戶與所述第二用戶集合中的各用戶 之間的會話信息,所述第二用戶集合包括所述目標用戶以及與所述目標用戶存在信息交互 的用戶;其中,Z為大于1的整數(shù);目標用戶的1度好友用戶為已添加為所述目標用戶好友的 用戶,目標用戶的2到Z度好友用戶為未添加為所述目標用戶好友的用戶; 根據(jù)所述目標用戶的第一用戶關(guān)系拓撲確定與所述目標用戶屬于同一第一用戶關(guān)系 子拓撲的用戶;所述目標用戶在第一用戶關(guān)系子拓撲中至少存在一個1度好友用戶; 根據(jù)所述目標用戶的第二用戶關(guān)系拓撲將與該目標用戶參與同一會話的用戶劃分到 該目標用戶的溝通序列中; 將與所述目標用戶屬于同一第一用戶關(guān)系子拓撲,且未添加為所述目標用戶的好友的 用戶組成第一好友候選集;將與所述目標用戶屬于同一溝通序列,且未添加為所述目標用 戶的好友的用戶組成第二好友候選集; 將所述第一好友候選集和第二好友候選集合并,作為所述目標用戶的好友推薦集,并 推薦給所述目標用戶。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述目標用戶的第一用戶關(guān)系拓 撲確定與所述目標用戶屬于同一第一用戶關(guān)系子拓撲的用戶,包括: 當所述目標用戶的第一用戶關(guān)系拓撲中的所有用戶屬于不同的第一用戶關(guān)系子拓撲 時,計算所述第一用戶關(guān)系拓撲的模塊度Q; 通過以下方法確定第一用戶關(guān)系拓撲中任意兩個用戶是否屬于同一第一用戶關(guān)系子 拓撲: 所述兩個用戶屬于同一第一用戶關(guān)系子拓撲,第一用戶關(guān)系拓撲中的其它用戶屬于不 同的第一用戶關(guān)系子拓撲,且均不屬于所述兩個用戶所屬的第一用戶關(guān)系子拓撲時,計算 目標用戶的第一用戶關(guān)系拓撲的模塊度P; 針對任一用戶,將P大于Q,且值最大的P對應的兩個用戶,確定屬于一個第一用戶關(guān)系 子拓撲; 當確定出多個第一用戶關(guān)系子拓撲時,確定所述第一用戶關(guān)系子拓撲是否能合并,如 果是,將能合并的第一用戶關(guān)系子拓撲合并; 直到確定出一個第一用戶關(guān)系子拓撲,或者確定出的所有第一用戶關(guān)系子拓撲均不能 再合并。其中,Aij為鄰接矩陣,若用戶i和用戶j為1度好友,則Aij = 1,否則Aij = O;M為第一用戶 關(guān)系拓撲中兩兩用戶之間互為1度好友的個數(shù);1^為與用戶i存在1度好友關(guān)系的用戶的個3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,計算目標用戶的第一用戶關(guān)系拓撲的模塊 度的方法為: 第一用戶關(guān)系拓撲的模塊度為 數(shù),kj為與用戶j存在1度好友關(guān)系的用戶的個數(shù);C1為用戶i所屬的第一用戶關(guān)系子拓撲,(^ 為用戶j所屬的第一用戶關(guān)系子拓撲,若Ci = Cj,則δ(Ci,Cj) = 1,否則,δ(Ci,Cj) = O; i,j為1 到N的整數(shù),N為第一用戶關(guān)系拓撲中用戶的個數(shù)。4. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述當確定出多個第一用戶關(guān)系子拓撲 時,確定所述多個第一用戶關(guān)系子拓撲是否能合并,包括: 當所有第一用戶關(guān)系子拓撲均不能合并時,計算第一用戶關(guān)系子拓撲對應的第一用戶 關(guān)系拓撲的模塊度W; 通過以下方法確定所述多個第一用戶關(guān)系子拓撲中任意兩個第一用戶關(guān)系子拓撲是 否能合并: 當所述兩個第一用戶關(guān)系子拓撲能夠合并,其它第一用戶關(guān)系子拓撲均不能合并時, 計算第一用戶關(guān)系子拓撲對應的第一用戶關(guān)系拓撲的模塊度R; 將R大于W,且值最大的R對應的兩個第一用戶關(guān)系子拓撲確定為能合并。5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述計算所述第一用戶關(guān)系拓撲的模塊度 的方法為: 第一用戶關(guān)系拓撲的模塊度為: 其中,Ahl為鄰接矩陣,若第一用戶關(guān)系子拓撲h中的用戶和第一用戶關(guān)系子拓撲1中的 用戶至少存在一對用戶為1度好友,則Ahi = I,否則Ahi = O;M為第一用戶關(guān)系拓撲中兩兩用 戶之間互為1度好友的個數(shù);kh為第一用戶關(guān)系子拓撲h中所有用戶的1度好友去重后的1度 好友的總個數(shù);ki為第一用戶關(guān)系子拓撲1中所有用戶的1度好友去重后的1度好友的總個 數(shù);Ch為第一用戶關(guān)系子拓撲h,Ci為第一用戶關(guān)系子拓撲1,若Ch=Ci,則δ (Ch,Ci ) = 1,否則, δ (Ch,Ci )= 0; h,1為1到T的整數(shù),T為第一用戶關(guān)系子拓撲的個數(shù)。6. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第二用戶關(guān)系拓撲包括:一對多用戶 關(guān)系拓撲和一對一用戶關(guān)系拓撲; 所述根據(jù)所述目標用戶的第二用戶關(guān)系拓撲將與該目標用戶參與同一會話的用戶劃 分到該目標用戶的溝通序列中,包括: 針對一對多用戶關(guān)系拓撲,在第一預設時間內(nèi),根據(jù)信息的發(fā)送時間,根據(jù)會話消息的 發(fā)送時間,將發(fā)送兩條相鄰消息的時間間隔小于第二預設時間的會話消息劃分到一個會話 段,將參與該會話段的用戶劃分到同一溝通序列中;若該用戶參與多個會話段,則將該用戶 的多個會話段對應的溝通序列合并作為該目標用戶針對一對多用戶關(guān)系拓撲確定的溝通 序列;其中,第一預設時間大于第二預設時間;目標用戶與所述第二用戶集合中的各用戶之 間的會話信息包括:發(fā)布信息的用戶的名稱,以及發(fā)布信息的時間; 針對一對一用戶關(guān)系拓撲,在第一預設時間內(nèi),以所述目標用戶為初始遍歷點,采用隨 機游走的方式生成該目標用戶的溝通序列; 將該目標用戶針對一對多用戶關(guān)系拓撲和一對一用戶關(guān)系拓撲生成的溝通序列合并, 作為該目標用戶的第二用戶關(guān)系拓撲的溝通序列。7. 根據(jù)權(quán)利要求6所述的方法,其特征在于,所述方法進一步包括: 若該用戶參與多個群的會話,則將針對各群的會話確定溝通序列合并為一個溝通序 列,作為該目標用戶的針對一對多用戶關(guān)系拓撲確定的溝通序列。8. 根據(jù)權(quán)利要求6所述的方法,其特征在于,所述以所述目標用戶為初始遍歷點,采用 隨機游走的方式生成該目標用戶的溝通序列,包括: 以所述目標用戶作為初始遍歷點; 分別確定選擇將各其它用戶作為下一個遍歷點的概率,其中,將該目標用戶與任一其 它用戶發(fā)送會話消息的次數(shù)在總會話消息的次數(shù)中所占百分率作為選擇該其它用戶作為 下一個遍歷點的概率,并按照各其它用戶作為下一個遍歷點的概率選擇作為下一遍歷點的 用戶,直到曾作為遍歷點的用戶數(shù)達到預設用戶個數(shù),將各曾作為遍歷點的用戶組成集合, 作為該目標用戶的溝通序列。9. 根據(jù)權(quán)利要求1-8任意一項所述的方法,其特征在于,所述方法進一步包括:為用戶 的各特征配置權(quán)重值; 將第一用戶關(guān)系子拓撲中出現(xiàn)次數(shù)最多的關(guān)系類型作為該第一用戶關(guān)系子拓撲的屬 性,為該屬性配置屬性值,并將該屬性值作為對應的第一好友候選集中的各用戶的第一特 征的特征值; 確定第一用戶關(guān)系子拓撲中各用戶與該第一用戶關(guān)系子拓撲的關(guān)系緊密程度,為各用 戶與該第一用戶關(guān)系子拓撲的關(guān)系緊密程度配置緊密關(guān)系程度值,將各用戶對應的緊密關(guān) 系程度值作為對應第一好友候選集中的對應用戶的第二特征值; 將第二好友候選集中的用戶在各溝通序列中作為發(fā)起人的次數(shù)作為該用戶的第三特 征值; 針對任一用戶,確定該用戶與其第二好友候選集中的用戶的相似度,并將確定的相似 度作為第二候選集中對應用戶的第四特征值; 針對一個好友推薦集中的各用戶使用特征值加權(quán)求和獲得用戶的序列值,按照序列值 從大到小的順序排列各用戶,并在推薦好友時按照排列順序推薦。10. 根據(jù)權(quán)利要求9所述的方法,其特征在于,所述確定第一用戶關(guān)系子拓撲中各用戶 與該第一用戶關(guān)系子拓撲的關(guān)系緊密程度,包括: 任一用戶與對應第一用戶關(guān)系子拓撲中的用戶存在共同好友的個數(shù);或與第一用戶關(guān) 系子拓撲中的用戶之間的發(fā)送會話消息的次數(shù)作為該第一用戶關(guān)系子拓撲中對應用戶與 該第一用戶關(guān)系子拓撲的關(guān)系緊密程度; 所述確定該用戶與其第二好友候選集中的用戶的相似度,包括: 通過對第二好友候選集采用預設算法進行訓練,獲得每個用戶的向量,根據(jù)每個用戶 的向量計算兩個用戶的相似度。11. 根據(jù)權(quán)利要求9所述的方法,其特征在于,所述方法進一步包括: 通過上線用戶選擇推薦好友的反饋信息,若確定當前推薦的好友被用戶選擇添加為好 友的概率小于預設值,重新為用戶的各特征值配置權(quán)重,并重新計算各用戶的序列值,按重 新計算的序列值排列各用戶,并使用重新排列的順序推薦給用戶。12. -種好友推薦裝置,其特征在于,該裝置包括:獲取單元、確定單元、處理單元和推 薦單元; 所述獲取單元,用于從服務器獲取目標用戶的第一用戶關(guān)系拓撲和第二用戶關(guān)系拓 撲;所述目標用戶的第一用戶關(guān)系拓撲包括第一用戶集合以及所述第一用戶集合中各用戶 之間的好友關(guān)系,所述第一用戶集合包括所述目標用戶以及所述目標用戶的1度至Z度好友 用戶;所述目標用戶的第二用戶關(guān)系拓撲包括第二用戶集合以及所述目標用戶與所述第二 用戶集合中的各用戶之間的會話信息,所述第二用戶集合包括所述目標用戶以及與所述目 標用戶存在信息交互的用戶;其中,Z為大于1的整數(shù);目標用戶的1度好友用戶為已添加為 所述目標用戶好友的用戶,目標用戶的2到Z度好友用戶為未添加為所述目標用戶好友的用 戶; 所述確定單元,用于根據(jù)所述獲取單元獲取目標用戶的第一用戶關(guān)系拓撲確定與所述 目標用戶屬于同一第一用戶關(guān)系子拓撲的用戶;所述目標用戶在第一用戶關(guān)系子拓撲中至 少存在一個1度好友用戶;根據(jù)所述目標用戶的第二用戶關(guān)系拓撲將與該目標用戶參與同 一會話的用戶劃分到該目標用戶的溝通序列中; 所述處理單元,用于將所述確定單元確定的與所述目標用戶屬于同一第一用戶關(guān)系子 拓撲,且未添加為所述目標用戶的好友的用戶組成第一好友候選集;將與所述目標用戶屬 于同一溝通序列,且未添加為所述目標用戶的好友的用戶組成第二好友候選集; 所述推薦單元,用于將所述處理單元處理的所述第一好友候選集和第二好友候選集合 并,作為所述目標用戶的好友推薦集,并推薦給所述目標用戶。13. 根據(jù)權(quán)利要求12所述的裝置,其特征在于, 所述確定單元,具體用于根據(jù)所述目標用戶的第一用戶關(guān)系拓撲確定與所述目標用戶 屬于同一第一用戶關(guān)系子拓撲的用戶時:當所述目標用戶的第一用戶關(guān)系拓撲中的所有用 戶屬于不同的第一用戶關(guān)系子拓撲時,計算所述第一用戶關(guān)系拓撲的模塊度Q;通過以下方 法確定第一用戶關(guān)系拓撲中任意兩個用戶是否屬于同一第一用戶關(guān)系子拓撲:所述兩個用 戶屬于同一第一用戶關(guān)系子拓撲,第一用戶關(guān)系拓撲中的其它用戶屬于不同的第一用戶關(guān) 系子拓撲,且均不屬于所述兩個用戶所屬的第一用戶關(guān)系子拓撲時,計算目標用戶的第一 用戶關(guān)系拓撲的模塊度P;針對任一用戶,將P大于Q,且值最大的P對應的兩個用戶,確定屬 于一個第一用戶關(guān)系子拓撲;當確定出多個第一用戶關(guān)系子拓撲時,確定所述第一用戶關(guān) 系子拓撲是否能合并,如果是,將能合并的第一用戶關(guān)系子拓撲合并;直到確定出一個第一 用戶關(guān)系子拓撲,或者確定出的所有第一用戶關(guān)系子拓撲均不能再合并。14. 根據(jù)權(quán)利要求12所述的裝置,其特征在于, 所述確定單元,具體用于當確定出多個第一用戶關(guān)系子拓撲時,確定所述多個第一用 戶關(guān)系子拓撲是否能合并時:當所有第一用戶關(guān)系子拓撲均不能合并時,計算第一用戶關(guān) 系子拓撲對應的第一用戶關(guān)系拓撲的模塊度W;通過以下方法確定所述多個第一用戶關(guān)系 子拓撲中任意兩個第一用戶關(guān)系子拓撲是否能合并:當所述兩個第一用戶關(guān)系子拓撲能夠 合并,其它第一用戶關(guān)系子拓撲均不能合并時,計算第一用戶關(guān)系子拓撲對應的第一用戶 關(guān)系拓撲的模塊度R;將R大于W,且值最大的R對應的兩個第一用戶關(guān)系子拓撲確定為能合 并。15. 根據(jù)權(quán)利要求12所述的裝置,其特征在于, 所述確定單元,具體用于根據(jù)所述目標用戶的第二用戶關(guān)系拓撲將與該目標用戶參與 同一會話的用戶劃分到該目標用戶的溝通序列中時,針對一對多用戶關(guān)系拓撲,在第一預 設時間內(nèi),根據(jù)信息的發(fā)送時間,根據(jù)會話消息的發(fā)送時間,將發(fā)送兩條相鄰消息的時間間 隔小于第二預設時間的會話消息劃分到一個會話段,將參與該會話段的用戶劃分到同一溝 通序列中;若該用戶參與多個會話段,則將該用戶的多個會話段對應的溝通序列合并作為 該目標用戶針對一對多用戶關(guān)系拓撲確定的溝通序列;其中,第一預設時間大于第二預設 時間;目標用戶與所述第二用戶集合中的各用戶之間的會話信息包括:發(fā)布信息的用戶的 名稱,以及發(fā)布信息的時間;針對一對一用戶關(guān)系拓撲,在第一預設時間內(nèi),以所述目標用 戶為初始遍歷點,采用隨機游走的方式生成該目標用戶的溝通序列;將該目標用戶針對一 對多用戶關(guān)系拓撲和一對一用戶關(guān)系拓撲生成的溝通序列合并,作為該目標用戶的第二用 戶關(guān)系拓撲的溝通序列,其中,所述第二用戶關(guān)系拓撲包括:一對多用戶關(guān)系拓撲和一對一 用戶關(guān)系拓撲。16. 根據(jù)權(quán)利要求15所述的裝置,其特征在于, 所述確定單元,進一步用于若該用戶參與多個群的會話,則將針對各群的會話確定溝 通序列合并為一個溝通序列,作為該目標用戶的針對一對多用戶關(guān)系拓撲確定的溝通序 列。17. 根據(jù)權(quán)利要求15所述的裝置,其特征在于, 所述確定單元,具體用于以所述目標用戶為初始遍歷點,采用隨機游走的方式生成該 目標用戶的溝通序列時:以所述目標用戶作為初始遍歷點;分別確定選擇將各其它用戶作 為下一個遍歷點的概率,其中,將該目標用戶與任一其它用戶發(fā)送會話消息的次數(shù)在總會 話消息的次數(shù)中所占百分率作為選擇該其它用戶作為下一個遍歷點的概率,并按照各其它 用戶作為下一個遍歷點的概率選擇作為下一遍歷點的用戶,直到曾作為遍歷點的用戶數(shù)達 到預設用戶個數(shù),將各曾作為遍歷點的用戶組成集合,作為該目標用戶的溝通序列。18. 根據(jù)權(quán)利要求12-17任意一項所述的裝置,其特征在于, 所述確定單元,進一步用于將第一用戶關(guān)系子拓撲中出現(xiàn)次數(shù)最多的關(guān)系類型作為該 第一用戶關(guān)系子拓撲的屬性,為該屬性配置屬性值,并將該屬性值作為對應的第一好友候 選集中的各用戶的第一特征的特征值;確定第一用戶關(guān)系子拓撲中各用戶與該第一用戶關(guān) 系子拓撲的關(guān)系緊密程度,為各用戶與該第一用戶關(guān)系子拓撲的關(guān)系緊密程度配置緊密關(guān) 系程度值,將各用戶對應的緊密關(guān)系程度值作為對應第一好友候選集中的對應用戶的第二 特征值;第二好友候選集中的用戶在各會話集中作為發(fā)起人的次數(shù)作為該用戶的第三特征 值;針對任一用戶,確定該用戶與其第二好友候選集中的用戶的相似度,并將確定的相似度 作為第二候選集中對應用戶的第四特征值; 所述推薦單元,進一步用于為用戶的各特征配置權(quán)重值;針對一個好友推薦集中的各 用戶使用所述確定單元確定的特征值加權(quán)求和獲得用戶的序列值,按照序列值從大到小的 順序排列各用戶,并在推薦好友時按照排列順序推薦。19. 根據(jù)權(quán)利要求18所述的裝置,其特征在于, 所述確定單元,具體用于確定第一用戶關(guān)系子拓撲中各用戶與該第一用戶關(guān)系子拓撲 的關(guān)系緊密程度時,任一用戶與對應第一用戶關(guān)系子拓撲中的用戶存在共同好友的個數(shù); 或與第一用戶關(guān)系子拓撲中的用戶之間的信息交互次數(shù)作為該第一用戶關(guān)系子拓撲中對 應用戶與該第一用戶關(guān)系子拓撲的關(guān)系緊密程度;確定該用戶與其第二好友候選集中的用 戶的相似度時,通過對第二好友候選集采用預設算法進行訓練,獲得每個用戶的向量,根據(jù) 每個用戶的向量計算兩個用戶的相似度。20. 根據(jù)權(quán)利要求18所述的裝置,其特征在于, 所述推薦單元,進一步用于通過上線用戶選擇推薦好友的反饋信息,若確定當前推薦
【文檔編號】G06Q50/00GK106021325SQ201610296601
【公開日】2016年10月12日
【申請日】2016年5月6日
【發(fā)明人】容毅峰, 高瀚, 賀鵬
【申請人】騰訊科技(深圳)有限公司