发明名称 基于用户兴趣和社交主题提取的社交网络用户推荐方法
摘要 本发明公开了一种基于用户兴趣和社交主题提取的社交网络用户推荐方法,包括以下步骤:获取社交网络中用户的“follower‑followee”关系以及“mutual‑following”关系信息;提取用户的社交主题和兴趣主题;在这些主题的基础上分别形成用户的社交社区和兴趣社区;将各个社区分别整理成矩阵形式,使用矩阵分解方法对各个社区矩阵进行分解以计算各用户对在各个社区矩阵的意愿关注分数,取各个用户对在所有社区的意愿关注分数的最大值为最终意愿关注分数,为目标用户排序其与其他用户的最终意愿关注分数,最终选取分数最高的TOP‑N用户为推荐关注用户。具有得到了更准确的社交网络用户推荐结果等优点。
申请公布号 CN106055713A 申请公布日期 2016.10.26
申请号 CN201610519445.X 申请日期 2016.07.01
申请人 华南理工大学 发明人 许可;郑栩燊;闵华清;蔡毅
分类号 G06F17/30(2006.01)I;G06Q50/00(2012.01)I 主分类号 G06F17/30(2006.01)I
代理机构 广州市华学知识产权代理有限公司 44245 代理人 罗观祥
主权项 基于用户兴趣和社交主题提取的社交网络用户推荐方法,其特征在于,包含如下步骤:步骤一、将一个社交网络中的目标用户、需要提取的用户兴趣主题个数K<sup>in</sup>和需要提取的用户社交主题个数K<sup>so</sup>输入UIS‑LDA主题模型,通过该模型聚类出K<sup>in</sup>个兴趣主题和K<sup>so</sup>个社交主题,并输出参数θ<sup>in</sup>,θ<sup>so</sup>,η,<img file="FDA0001038172820000011.GIF" wi="206" he="79" />其中,θ<sup>so</sup>表示文档在K<sup>so</sup>个社交主题上的分布;θ<sup>in</sup>表示文档在K<sup>in</sup>个兴趣主题上的分布;η表示文档在贝努力变量o上的分布,o作为选择开关来指示每一篇文档的每一个followee是从一个社交主题中生成当o=0时或者是从一个兴趣主题中生成,当o=1时;<img file="FDA0001038172820000012.GIF" wi="70" he="70" />表示社交主题在所有followee即被关注者上的分布;<img file="FDA0001038172820000013.GIF" wi="70" he="78" />表示兴趣主题在所有followee即被关注者上的分布;步骤二、对于每一个兴趣主题z∈Z<sup>in</sup>,对应生成一个兴趣社区c∈C<sup>in</sup>,该兴趣社区包含的follower即关注者f和followee即被关注者g分别用c.F和c.G表示如下:c.F={f|f∈F∧Pr'(z|d<sub>f</sub>)≥γ},c.G={g|g∈G∧Pr'(z|d<sub>g</sub>)≥ζ},其中,F是所有follower的集合,G是所有followee的集合,f∈F表示f是集合F中的一个follower,g∈G表示g是集合G中的一个followee,γ,ζ是定义好的阈值,文档d<sub>f</sub>包含某个follower f关注的所有followee,文档d<sub>g</sub>包含关注某个followee g的所有的follower,Pr'(z|d<sub>f</sub>)≥γ表示文档d<sub>f</sub>条件下属于某个兴趣主题z的发生概率大于等于阈值γ,Pr'(z|d<sub>g</sub>)≥ζ表示文档d<sub>g</sub>条件下属于某个兴趣主题z的发生概率大于等于阈值ζ,符号“∧”表示左右两边集合的合取运算,c.F={f|f∈F∧Pr'(z|d<sub>f</sub>)≥γ}表示一个兴趣社区的关注者即follower集合,即c.F由满足f∈F∧Pr'(z|d<sub>f</sub>)≥γ条件的所有follower f组成,c.G={g|g∈G∧Pr'(z|d<sub>g</sub>)≥ζ}表示一个兴趣社区的被关注者即followee集合,即c.G由满足g∈G∧Pr'(z|d<sub>g</sub>)条件的所有followee g组成;Z<sup>in</sup>为K<sup>in</sup>个兴趣主题集合;C<sup>in</sup>为K<sup>in</sup>个兴趣社区集合;这里Pr'(z|d<sub>f</sub>),Pr'(z|d<sub>g</sub>)分别用如下公式获得:<maths num="0001"><math><![CDATA[<mrow><msup><mi>Pr</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>z</mi><mo>|</mo><msub><mi>d</mi><mi>f</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mi>Pr</mi><mrow><mo>(</mo><mi>z</mi><mo>|</mo><msub><mi>d</mi><mi>f</mi></msub><mo>)</mo></mrow></mrow><mrow><munder><mo>&Sigma;</mo><mrow><msup><mi>z</mi><mo>&prime;</mo></msup><mo>&Element;</mo><mi>Z</mi></mrow></munder><mi>Pr</mi><mrow><mo>(</mo><msup><mi>z</mi><mo>&prime;</mo></msup><mo>|</mo><msub><mi>d</mi><mi>f</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0001038172820000021.GIF" wi="566" he="175" /></maths><maths num="0002"><math><![CDATA[<mrow><msup><mi>Pr</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>z</mi><mo>|</mo><msub><mi>d</mi><mi>g</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><munder><mo>&Sigma;</mo><mrow><mi>f</mi><mo>&Element;</mo><msub><mi>d</mi><mi>g</mi></msub></mrow></munder><msup><mi>Pr</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>z</mi><mo>|</mo><msub><mi>d</mi><mi>f</mi></msub><mo>)</mo></mrow></mrow><mrow><munder><mo>&Sigma;</mo><mrow><msup><mi>z</mi><mo>&prime;</mo></msup><mo>&Element;</mo><msup><mi>Z</mi><mrow><mi>i</mi><mi>n</mi></mrow></msup></mrow></munder><munder><mo>&Sigma;</mo><mrow><mi>f</mi><mo>&Element;</mo><msub><mi>d</mi><mi>g</mi></msub></mrow></munder><msup><mi>Pr</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><msup><mi>z</mi><mo>&prime;</mo></msup><mo>|</mo><msub><mi>d</mi><mi>f</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0001038172820000022.GIF" wi="581" he="192" /></maths>其中,其中,Pr(z|d<sub>f</sub>)表示文档d<sub>f</sub>条件下属于某个兴趣主题z的发生概率,<img file="FDA0001038172820000023.GIF" wi="262" he="94" />表示对所有z'的Pr(z'|d<sub>f</sub>)取和,这里z'∈Z,Z为所有兴趣主题和社区主题组成的集合;<img file="FDA0001038172820000024.GIF" wi="230" he="87" />表示将所有属于文档d<sub>g</sub>的follower f对Pr'(z|d<sub>f</sub>)求和;<img file="FDA0001038172820000025.GIF" wi="302" he="94" />表示先选定某个z'∈Z<sup>in</sup>,求和<img file="FDA0001038172820000026.GIF" wi="267" he="93" />类似依次对各个z'∈Z<sup>in</sup>进行<img file="FDA0001038172820000027.GIF" wi="238" he="87" />求和,Z<sup>in</sup>是兴趣主题的集合;对于每一个社交主题z∈Z<sup>so</sup>,对应生成一个社交社区c∈C<sup>so</sup>,该社交社区包含的follower f和followee g分别用c.F和c.G表示如下:c.F={f|f∈F∧Pr'(z|d<sub>f</sub>)≥γ},c.G={g|g∈G∧Pr'(z|d<sub>g</sub>)≥ζ},其中,F是所有follower的集合,G是所有followee的集合,f∈F表示f是集合F中的一个follower,g∈G表示g是集合G中的一个followee,γ,ζ是定义好的阈值,文档d<sub>f</sub>包含某个follower f关注的所有followee,文档d<sub>g</sub>包含关注某个followee g的所有的follower,Pr'(z|d<sub>f</sub>)≥γ表示文档d<sub>f</sub>条件下属于某个社交主题z的发生概率大于等于阈值γ,Pr'(z|d<sub>g</sub>)≥ζ表示文档d<sub>g</sub>条件下属于某个社交主题z的发生概率大于等于阈值ζ,符号“∧”表示左右两边集合的合取运算,c.F={f|f∈F∧Pr'(z|d<sub>f</sub>)≥γ}表示一个社交社区的关注者即follower集合,即c.F由满足f∈F∧Pr'(z|d<sub>f</sub>)≥γ条件的所有follower f组成,c.G={g|g∈G∧Pr'(z|d<sub>g</sub>)≥ζ}表示一个社交社区的被关注者即followee集合,即c.G由满足g∈G∧Pr'(z|d<sub>g</sub>)条件的所有followee g组成;Z <sup>so</sup>为K<sup>so</sup>个社交主题集合;C<sup>so</sup>为K<sup>so</sup>个社交社区集合;Pr'(z|d<sub>f</sub>),Pr'(z|d<sub>g</sub>)分别用如下公式获得:<maths num="0003"><math><![CDATA[<mrow><msup><mi>Pr</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>z</mi><mo>|</mo><msub><mi>d</mi><mi>f</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mi>Pr</mi><mrow><mo>(</mo><mi>z</mi><mo>|</mo><msub><mi>d</mi><mi>f</mi></msub><mo>)</mo></mrow></mrow><mrow><munder><mo>&Sigma;</mo><mrow><msup><mi>z</mi><mo>&prime;</mo></msup><mo>&Element;</mo><mi>Z</mi></mrow></munder><mi>Pr</mi><mrow><mo>(</mo><msup><mi>z</mi><mo>&prime;</mo></msup><mo>|</mo><msub><mi>d</mi><mi>f</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0001038172820000031.GIF" wi="630" he="206" /></maths><maths num="0004"><math><![CDATA[<mrow><msup><mi>Pr</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>z</mi><mo>|</mo><msub><mi>d</mi><mi>g</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><munder><mo>&Sigma;</mo><mrow><mi>f</mi><mo>&Element;</mo><msub><mi>d</mi><mi>g</mi></msub></mrow></munder><msup><mi>Pr</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>z</mi><mo>|</mo><msub><mi>d</mi><mi>f</mi></msub><mo>)</mo></mrow></mrow><mrow><munder><mo>&Sigma;</mo><mrow><msup><mi>z</mi><mo>&prime;</mo></msup><mo>&Element;</mo><msup><mi>Z</mi><mrow><mi>s</mi><mi>o</mi></mrow></msup></mrow></munder><munder><mo>&Sigma;</mo><mrow><mi>f</mi><mo>&Element;</mo><msub><mi>d</mi><mi>g</mi></msub></mrow></munder><msup><mi>Pr</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><msup><mi>z</mi><mo>&prime;</mo></msup><mo>|</mo><msub><mi>d</mi><mi>f</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0001038172820000032.GIF" wi="686" he="238" /></maths>其中,Pr(z|d<sub>f</sub>)表示文档d<sub>f</sub>条件下属于某个社交主题z的发生概率,<img file="FDA0001038172820000033.GIF" wi="270" he="95" />表示对所有z'的Pr(z'|d<sub>f</sub>)取和,这里z'∈Z,Z为所有兴趣主题和社区主题组成的集合;<img file="FDA0001038172820000034.GIF" wi="230" he="87" />表示将所有属于文档d<sub>g</sub>的follower f对Pr'(z|d<sub>f</sub>)求和;<img file="FDA0001038172820000035.GIF" wi="306" he="87" />表示先选定某个z'∈Z<sup>so</sup>,求和<img file="FDA0001038172820000036.GIF" wi="266" he="87" />类似依次对各个z'∈Z<sup>so</sup>进行<img file="FDA0001038172820000037.GIF" wi="238" he="95" />求和,Z<sup>so</sup>是社交主题的集合;由此,得到用户的K<sup>in</sup>个兴趣社区和K<sup>so</sup>个社交社区;步骤三、对于每一个社区c∈C<sup>in</sup>UC<sup>so</sup>,把它整理成一个|c.F|×|c.G|矩阵M<sub>c</sub>;M<sub>c</sub>中的每一个元素用p<sub>fg</sub>表示,p<sub>fg</sub>取值如下:<img file="FDA0001038172820000038.GIF" wi="1614" he="202" />其中,f∈c.F表示f是集合c.F中的一个follower,g∈c.G表示g是集合c.G中的一个followee.c.F为社区c的关注者即follower集合,c.G为社区c的被关注者即followee集合;对每一个M<sub>c</sub>执行矩阵分解算法,根据下式得到各个矩阵M<sub>c</sub>中的follower f意愿关注分数某个followee g的分数,用C_score(f,g,c)表示:C_score(f,g,c)=x<sub>f</sub>*y<sub>g</sub>,这里,“*”号表示左右两边向量的内积,向量x<sub>f</sub>∈X<sup>|c.F|×L</sup>,向量y<sub>g</sub>∈Y<sup>L×|c.G|</sup>;其中X<sup>|c.F|×L</sup>和Y<sup>L×|c.G|</sup>为M<sub>c</sub>矩阵通过矩阵分解方法得到的两个潜在矩阵,L为预先设定好的潜在空间数量,|c.F|为集合c.F的大小,|c.G|为集合c.G的大小;步骤四、按照如下公式对各个矩阵M<sub>c</sub>相应的C_score(f,g,c)值取最大值,得到各个用户对之间的最终意愿关注分数F_score(f,g);<maths num="0005"><math><![CDATA[<mrow><mi>F</mi><mo>_</mo><mi>s</mi><mi>c</mi><mi>o</mi><mi>r</mi><mi>e</mi><mrow><mo>(</mo><mi>f</mi><mo>,</mo><mi>g</mi><mo>)</mo></mrow><mo>=</mo><mi>M</mi><mi>a</mi><mi>x</mi><mi>i</mi><mi>m</mi><mi>u</mi><mi>m</mi><mrow><mo>(</mo><munder><mrow><mi>C</mi><mo>_</mo><mi>s</mi><mi>c</mi><mi>o</mi><mi>r</mi><mi>e</mi><mrow><mo>(</mo><mrow><mi>f</mi><mo>,</mo><mi>g</mi><mo>,</mo><mi>c</mi></mrow><mo>)</mo></mrow></mrow><mrow><mi>c</mi><mo>&Element;</mo><mi>C</mi></mrow></munder><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0001038172820000041.GIF" wi="773" he="78" /></maths>其中,Maximum()为取最大值函数,<img file="FDA0001038172820000042.GIF" wi="278" he="65" />表示对每一个社区c计算其相应的C_score(f,g,c)值;步骤五、对于每一个目标用户f,我们排序与之相关的所有的F_score(f,g),选择分数最高的N个followee g进行推荐。
地址 510640 广东省广州市天河区五山路381号