发明名称 社交网络中的潜在好友推荐方法
摘要 本发明通过两层模型实现对潜在好友的推荐。第一层首先是对每个用户的文章进行主题分类,构建出用户关注度向量,计算用户的余弦(cosine)相似度,获得粗略潜在好友推荐列表。第二层将用户随时间的兴趣变化计入考虑,将变化因素考虑到相似度计算中,再基于第一层的粗化推荐表进一步细化好友推荐。由于利用了文章反映用户兴趣这一特征,从相似兴趣度出发,绕过了现有社交网络基于用户原有好友关系的限制,实现了基于兴趣相似度的好友推荐方法,拓展了好友推荐的范围,进而在大范围中更准确有效地实现好友的推荐。
申请公布号 CN104239399A 申请公布日期 2014.12.24
申请号 CN201410333744.5 申请日期 2014.07.14
申请人 上海交通大学 发明人 陈秀真;李建华;李生红;史辰烨;周泉
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 上海汉声知识产权代理有限公司 31236 代理人 胡晶
主权项 一种社交网络中的潜在好友推荐方法,包括如下步骤:S01:从社交网络服务器上获得每位用户在一年内发表的所有文章,并进行存储记录;S02:统计每位用户在每个主题下的文章总数;完成步骤S02后,分别进行步骤S03和S04,完成步骤S04后,实施步骤S05,其中:S03:利用余弦定理依据以下公式计算用户间的粗略相似度:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>similarity</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow></msub><mo>=</mo><mfrac><mrow><munderover><mi>&Sigma;</mi><mrow><mi>t</mi><mo>=</mo><mn>1</mn></mrow><mi>k</mi></munderover><msub><mi>n</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow></msub><mo>&times;</mo><msub><mi>n</mi><mrow><mo>(</mo><mi>j</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow></msub></mrow><mrow><msqrt><msup><msub><mi>n</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mn>1</mn><mo>)</mo></mrow></msub><mn>2</mn></msup><mo>+</mo><msup><msub><mi>n</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mn>2</mn><mo>)</mo></mrow></msub><mn>2</mn></msup><mo>+</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>+</mo><msup><msub><mi>n</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>k</mi><mo>)</mo></mrow></msub><mn>2</mn></msup></msqrt><msqrt><msup><msub><mi>n</mi><mrow><mo>(</mo><mi>j</mi><mo>,</mo><mn>1</mn><mo>)</mo></mrow></msub><mn>2</mn></msup><mo>+</mo><msup><msub><mi>n</mi><mrow><mo>(</mo><mi>j</mi><mo>,</mo><mn>2</mn><mo>)</mo></mrow></msub><mn>2</mn></msup><mo>+</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>+</mo><msup><msub><mi>n</mi><mrow><mo>(</mo><mi>j</mi><mo>,</mo><mi>k</mi><mo>)</mo></mrow></msub><mn>2</mn></msup></msqrt></mrow></mfrac></mrow>]]></math><img file="FDA0000537288100000011.GIF" wi="2083" he="356" /></maths>其中,similarity<sub>(i,j)</sub>为用户i与用户j的粗略相似度,k为主题的数量,n<sub>i,</sub><sub>t</sub>表示用户i在主题t下发表的文章数,n<sub>j,t</sub>表示用户j在主题t下发表的文章数;对于一个特定的用户,对其他用户依据其与该特定的用户之间粗略相似度similarity<sub>(i,j)</sub>的大小进行排列,选出相似度最高的x个用户作为该特定的用户的潜在用户粗略推荐表;S04:根据每个用户每个月在k个主题下发表的文章数,依据以下公式计算第m月与第m+1月之间的差异dif<sub>i</sub>[m]:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>dif</mi><mi>i</mi></msub><mo>[</mo><mi>m</mi><mo>]</mo><mo>=</mo><mn>1</mn><mo>-</mo><mfrac><mrow><munderover><mi>&Sigma;</mi><mrow><mi>t</mi><mo>=</mo><mn>1</mn></mrow><mi>k</mi></munderover><msub><mi>n</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>m</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>t</mi><mo>)</mo></mrow></msub><mo>&times;</mo><msub><mi>n</mi><mrow><mo>(</mo><mi>j</mi><mo>,</mo><mi>m</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow></msub></mrow><mrow><msqrt><msubsup><mi>n</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>m</mi><mo>+</mo><mn>1,1</mn><mo>)</mo></mrow><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>n</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>m</mi><mo>+</mo><mn>1,2</mn><mo>)</mo></mrow><mn>2</mn></msubsup><mo>+</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>+</mo><msubsup><mi>n</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>m</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>k</mi><mo>)</mo></mrow><mn>2</mn></msubsup></msqrt><mo>&times;</mo><msqrt><msubsup><mi>n</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>m</mi><mo>,</mo><mn>1</mn><mo>)</mo></mrow><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>n</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>m</mi><mo>,</mo><mn>2</mn><mo>)</mo></mrow><mn>2</mn></msubsup><mo>+</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>+</mo><msubsup><mi>n</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>m</mi><mo>,</mo><mi>k</mi><mo>)</mo></mrow><mn>2</mn></msubsup></msqrt></mrow></mfrac></mrow>]]></math><img file="FDA0000537288100000012.GIF" wi="2109" he="270" /></maths>进而依据以下公式计算x个用户中每个用户在一年中的兴趣变化敏感度λ<sub>i</sub>:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>&lambda;</mi><mi>i</mi></msub><mo>=</mo><mfrac><mrow><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mn>11</mn></munderover><msub><mi>dif</mi><mi>i</mi></msub><mo>[</mo><mi>m</mi><mo>]</mo></mrow><mn>11</mn></mfrac></mrow>]]></math><img file="FDA0000537288100000021.GIF" wi="501" he="231" /></maths>S05:统计文章的发表时间,通过以下公式计算主题t中两个用户的相似度sim<sub>t</sub>(i,j):<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mi>sim</mi><mi>t</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msubsup><mi>&Sigma;</mi><mrow><mi>b</mi><mo>=</mo><mn>1</mn></mrow><mrow><mo>|</mo><msub><mi>n</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow></msub><mo>|</mo></mrow></msubsup><msubsup><mi>&Sigma;</mi><mrow><mi>a</mi><mo>=</mo><mn>1</mn></mrow><mrow><mo>|</mo><msub><mi>n</mi><mrow><mo>(</mo><mi>j</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow></msub><mo>|</mo></mrow></msubsup><msup><mi>e</mi><mrow><mo>-</mo><mi>&lambda;</mi><mrow><mo>(</mo><mi>time</mi><mrow><mo>(</mo><mi>a</mi><mo>)</mo></mrow><mo>-</mo><mi>time</mi><mrow><mo>(</mo><mi>b</mi><mo>)</mo></mrow><mo>)</mo></mrow></mrow></msup></mrow><mrow><mo>|</mo><msub><mi>n</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow></msub><mo>|</mo><mo>&times;</mo><mo>|</mo><msub><mi>n</mi><mrow><mo>(</mo><mi>j</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow></msub><mo>|</mo></mrow></mfrac></mrow>]]></math><img file="FDA0000537288100000022.GIF" wi="1230" he="297" /></maths>其中,n<sub>(i,t)</sub>与n<sub>(j,t)</sub>分别为主题t中用户i、用户j各自拥有的文章总数,λ为敏感因子,所述敏感因子λ通过以下公式计算得到:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>&lambda;</mi><mo>=</mo><mfrac><mrow><mo>(</mo><msub><mi>&lambda;</mi><mi>i</mi></msub><mo>+</mo><msub><mi>&lambda;</mi><mi>j</mi></msub><mo>)</mo></mrow><mn>2</mn></mfrac></mrow>]]></math><img file="FDA0000537288100000023.GIF" wi="351" he="193" /></maths>最终,通过以下公式获得两个用户间的细化相似度sim(i,j)<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mi>sim</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msubsup><mi>&Sigma;</mi><mrow><mi>t</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><msub><mi>sim</mi><mi>t</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>*</mo><mrow><mo>(</mo><msub><mi>n</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow></msub><mo>+</mo><msub><mi>n</mi><mrow><mo>(</mo><mi>j</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow></msub><mo>)</mo></mrow></mrow><mrow><msubsup><mi>&Sigma;</mi><mrow><mi>t</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mrow><mo>(</mo><msub><mi>n</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow></msub><mo>+</mo><msub><mi>n</mi><mrow><mo>(</mo><mi>j</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow></msub><mo>)</mo></mrow></mrow></mfrac></mrow>]]></math><img file="FDA0000537288100000024.GIF" wi="1003" he="246" /></maths>完成S03和S05后,实施以下步骤:S06:对于该特定的用户,将其粗略推荐列表中的x个用户依据其与该特定的用户之间的细化相似度sim(i,j)的大小进行排列,获得最终的推荐列表,从而向该特定的用户提供该最终的推荐列表。
地址 200240 上海市闵行区东川路800号