发明名称 基于灰色预测模型的推荐方法及系统
摘要 本发明公开了一种基于灰色预测模型的推荐方法及系统,涉及推荐系统领域。所述方法包括步骤:建立项目间相似性矩阵;根据所述相似性矩阵,从目标用户的已评项目中选择与所述目标用户的未评项目相似度高的预定数目的项目;按照与所述未评项目的相似度由低到高的顺序,对所选项目的评分进行排序,得到预测序列;根据所述预测序列构建灰色预测模型;根据所述灰色预测模型预测所述目标用户对所述未评项目的预测评分,根据所述预测评分向所述目标用户推荐相应的未评项目。所述推荐方法及系统在用户评分数据极端稀疏并且数据间存在严重关联的情况下依然可以保证很高的推荐精度,具有广泛的应用前景。
申请公布号 CN102722550B 申请公布日期 2014.10.22
申请号 CN201210167851.6 申请日期 2012.05.25
申请人 清华大学 发明人 谢峰;陈震;曹军威
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 北京路浩知识产权代理有限公司 11002 代理人 王莹
主权项 一种基于灰色预测模型的推荐方法,其特征在于,包括步骤:A:建立项目间相似性矩阵;B:根据所述相似性矩阵,从目标用户的已评项目中选择与所述目标用户的未评项目相似度高的预定数目的项目;C:按照与所述未评项目的相似度由低到高的顺序,对所选项目的评分进行排序,得到预测序列;D:根据所述预测序列构建灰色预测模型;E:根据所述灰色预测模型预测所述目标用户对所述未评项目的预测评分,根据所述预测评分向所述目标用户推荐相应的未评项目;所述步骤A具体包括步骤:A1:对于任意两个项目i和j,遍历所有用户,得到同时对所述项目i和所述项目j给出评分的用户集合U(i,j);A2:根据所述用户集合U(i,j)中的用户,得到所述项目i对应所述项目j的评分向量<img file="FDA0000494703940000011.GIF" wi="98" he="110" />以及所述项目j对应所述项目i的评分向量<img file="FDA0000494703940000012.GIF" wi="76" he="112" />A3:根据所述评分向量<img file="FDA0000494703940000013.GIF" wi="44" he="96" />和所述评分向量<img file="FDA0000494703940000014.GIF" wi="48" he="95" />计算得到所述项目i与所述项目j之间的相似度;A4:重复所述步骤A1~A3,直至得到各个项目之间的相似度,根据各个项目之间的相似度建立项目间相似性矩阵;所述步骤B具体包括步骤:B1:根据所述相似性矩阵,将所述目标用户的已评项目按照与所述目标用户的每个未评项目的相似度由高到低排序,得到对应每个所述未评项目的已评项目序列;B2:判断所述已评项目序列中的项目数量是否大于等于预定数目,如果是,从所述已评项目序列中选择前预定数目个已评项目作为与所述目标用户的未评项目的相似度高的项目,执行步骤C;否则,执行步骤B3;B3:在所述已评项目序列中补充相应数量的伪项目以使所述已评项目序列中的项目数量达到所述预定数目,设置所述伪项目的评分为预定评分,并且设置所述伪项目与所述未评项目的相似度为极小值;B4:选择所述已评项目序列中的所有项目作为与所述目标用户的未评项目的相似度高的项目,执行步骤C;所述步骤C中,所述预测序列的公式如下:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msubsup><mi>r</mi><mi>u</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>=</mo><mo>{</mo><msup><mi>r</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>}</mo><mo>;</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000494703940000021.GIF" wi="844" he="98" /></maths>其中,t=1,2,…,k;r<sup>(0)</sup>(t)表示所述预测序列中第t个评分;k表示所述预定数目;所述步骤D中,所述灰色预测模型公式如下:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msup><mover><mi>r</mi><mo>^</mo></mover><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msup><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><msup><mi>r</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msup><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><mi>b</mi><mo>/</mo><mi>a</mi><mo>)</mo></mrow><msup><mi>e</mi><mrow><mo>-</mo><mi>ak</mi></mrow></msup><mrow><mo>(</mo><mn>1</mn><mo>-</mo><msup><mi>e</mi><mi>a</mi></msup><mo>)</mo></mrow><mo>;</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000494703940000022.GIF" wi="1181" he="93" /></maths>其中,a为发展灰数,b为内生控制灰数,并且a和b的计算公式如下:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mfenced open='[' close=']'><mtable><mtr><mtd><mi>a</mi></mtd></mtr><mtr><mtd><mi>b</mi></mtd></mtr></mtable></mfenced><mo>=</mo><msup><mrow><mo>(</mo><msup><mi>B</mi><mi>T</mi></msup><mi>B</mi><mo>)</mo></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msup><msup><mi>B</mi><mi>T</mi></msup><mi>Y</mi><mo>;</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000494703940000023.GIF" wi="1014" he="146" /></maths>其中,<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>B</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mo>-</mo><msup><mi>z</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msup><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mo>-</mo><msup><mi>z</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msup><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>-</mo><msup><mi>z</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000494703940000024.GIF" wi="446" he="304" /></maths><maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>Y</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msup><mi>r</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msup><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msup><mi>r</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msup><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><msup><mi>r</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000494703940000025.GIF" wi="295" he="305" /></maths>并且z<sup>(1)</sup>(t)的计算公式如下:z<sup>(1)</sup>(t)=βr<sup>(1)</sup>(t‑1)+(1‑β)r<sup>(1)</sup>(t);     (6)其中,β为常数,并且0&lt;β&lt;1;<img file="FDA0000494703940000026.GIF" wi="396" he="144" />所述步骤E具体包括步骤:E1:根据所述灰色预测模型预测所述目标用户对每个所述未评项目的预测评分,所述预测评分的计算公式如下:<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msub><mi>P</mi><mrow><mi>u</mi><mo>,</mo><mi>i</mi></mrow></msub><mo>=</mo><msup><mover><mi>r</mi><mo>^</mo></mover><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msup><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>;</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000494703940000027.GIF" wi="1093" he="90" /></maths>其中,P<sub>u,i</sub>表示用户u对未评项目i的预测评分;E2:依次判断每个所述未评项目的预测评分P<sub>u,i</sub>是否大于推荐阈值,如果是,将相应的未评项目i推荐给所述目标用户;否则,不推荐相应的未评项目i。
地址 100084 北京市海淀区清华园北京100084-82信箱