主权项 |
一种基于典型用户群组发现技术的信息推荐方法,其特征在于,包括以下步骤:11)发现典型用户群组TUG,针对用户集合和项目集合计算出典型用户群组;其具体步骤如下:110)定义用户集合U={u<sub>i</sub>},0≤i<|U|;定义项目集合P={p<sub>j</sub>},0≤j<|P|;111)使用评分矩阵R定义用户和项目之间的互动信息,R={r<sub>ij</sub>}<sub>|U|×|P|</sub>,r<sub>ij</sub>≥0,其中r<sub>ij</sub>=0代表用户u<sub>i</sub>和项目p<sub>j</sub>没有互动,并将在R中从未出现的用户或项目从U和P中删除;112)针对用户集合U定义空用户子集U’,定义候选用户U<sub>c</sub>,定义候选用户子集U<sub>c</sub>中的用户数为k,U’的项目覆盖集P<sub>U’</sub>定义为<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>P</mi><msup><mi>U</mi><mo>′</mo></msup></msub><mo>=</mo><mo>{</mo><msub><mi>p</mi><mi>k</mi></msub><mo>}</mo><mo>,</mo><mo>∃</mo><msub><mi>r</mi><mi>ik</mi></msub><mo>≠</mo><mn>0</mn><mo>,</mo><msub><mi>u</mi><mi>i</mi></msub><mo>∈</mo><msup><mi>U</mi><mo>′</mo></msup><mo>;</mo></mrow>]]></math><img file="FDA0000519801410000014.GIF" wi="876" he="124" /></maths>113)计算U’的项目覆盖率,P的子集P<sub>U’</sub>在P中所占的比例,<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>Cov</mi><mrow><mo>(</mo><msup><mi>U</mi><mo>′</mo></msup><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mo>|</mo><msub><mi>P</mi><msup><mi>U</mi><mo>′</mo></msup></msub><mo>|</mo></mrow><mrow><mo>|</mo><mi>P</mi><mo>|</mo></mrow></mfrac><mo>×</mo><mn>100</mn><mo>%</mo><mo>;</mo></mrow>]]></math><img file="FDA0000519801410000011.GIF" wi="732" he="208" /></maths>114)定义子集U<sub>1</sub>加入到子集U’的递增项目覆盖率ICov<sub>U’</sub>(U<sub>1</sub>),ICov<sub>U'</sub>(U<sub>1</sub>)=Cov(U<sub>1</sub>∪U')‑Cov(U');115)令U<sub>1</sub>={u},当每次选择一个用户u加入U’,则<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>ICov</mi><msup><mi>U</mi><mo>′</mo></msup></msub><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mo>|</mo><msub><mi>P</mi><mrow><mi>u</mi><mo>∪</mo><msup><mi>U</mi><mo>′</mo></msup></mrow></msub><mo>|</mo><mo>-</mo><mo>|</mo><msub><mi>P</mi><msup><mi>U</mi><mo>′</mo></msup></msub><mo>|</mo></mrow><mrow><mo>|</mo><mi>P</mi><mo>|</mo></mrow></mfrac><mo>×</mo><mn>100</mn><mo>%</mo></mrow>]]></math><img file="FDA0000519801410000012.GIF" wi="944" he="180" /></maths>将P<sub>u</sub>和P<sub>U’</sub>中相同的项目会互相抵消,则<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mi>ICov</mi><msup><mi>U</mi><mo>,</mo></msup></msub><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><munder><mi>Σ</mi><mrow><msub><mi>p</mi><mi>j</mi></msub><mo>∈</mo><mi>P</mi></mrow></munder><mi>f</mi><mrow><mo>(</mo><msub><mi>p</mi><mi>j</mi></msub><mo>∈</mo><msub><mi>P</mi><mi>u</mi></msub><mo>,</mo><msub><mi>p</mi><mi>j</mi></msub><mo>∉</mo><msub><mi>P</mi><msup><mi>U</mi><mo>,</mo></msup></msub><mo>)</mo></mrow></mrow><mrow><mo>|</mo><mi>P</mi><mo>|</mo></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0000519801410000013.GIF" wi="1015" he="219" /></maths>其中<img file="FDA0000519801410000021.GIF" wi="1029" he="231" />116)定义加权的递增项目覆盖率,<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mi>ICov</mi><msup><mi>U</mi><mo>,</mo></msup></msub><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><munder><mi>Σ</mi><mrow><msub><mi>p</mi><mi>j</mi></msub><mo>∈</mo><mi>P</mi></mrow></munder><msub><mi>w</mi><mi>j</mi></msub><mo>×</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>p</mi><mi>j</mi></msub><mo>∈</mo><msub><mi>P</mi><mi>u</mi></msub><mo>,</mo><msub><mi>p</mi><mi>j</mi></msub><mo>∉</mo><msub><mi>P</mi><msup><mi>U</mi><mo>,</mo></msup></msub><mo>)</mo></mrow></mrow><mrow><mo>|</mo><mi>P</mi><mo>|</mo></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0000519801410000022.GIF" wi="1261" he="250" /></maths>其中权重w<sub>j</sub>定义为<img file="FDA0000519801410000023.GIF" wi="513" he="201" />其中S<sub>j</sub>表示项目P<sub>j</sub>一共被S<sub>j</sub>个用户选择过;117)进行1至k次循环,在循环过程中分别计算U<sub>c</sub>中所有用户的加权递增项目覆盖率;计算maxCov(TUG),选出最大加权递增项目覆盖率的用户u;将u添加到U’中,从U<sub>c</sub>中删去u;118)循环结束后,U’为所求的典型用户群组TUG;12)计算推荐结果R’,基于典型用户群组TUG,将协同过滤推荐方法的最近邻搜索范围从全体用户缩小到典型用户群组中,计算出推荐结果R’。 |