发明名称 基于协同过滤推荐算法的机型推荐系统
摘要 基于协同过滤推荐算法的手机机型推荐方法,利用协同过滤推荐算法的框架,结合机型生命周期模型和相应的打分函数来为用户精确推荐机型,包括如下步骤,包括最近邻计算阶段和机型推荐阶段:数据预处理,清除噪声和异常数据,排除不符合要求的用户和机型,从用户数据库中抽取目前正在使用的用户的个人信息和历史消费信息,从机型数据库中抽取用户目前使用机型的相关属性;利用预处理后的数据将相应的信息抽取出来为每个用户构建对应的用户向量,并使用本系统设计的方法计算用户间的相似度;计算目标用户与其他用户的相似度取相似度最大的前N个作为目标用户的最近邻居。
申请公布号 CN104794635A 申请公布日期 2015.07.22
申请号 CN201510186307.X 申请日期 2015.04.17
申请人 南京大学 发明人 吴骏;苗霁;彭岳;戴恒宇;王崇骏;李宁
分类号 G06Q30/02(2012.01)I 主分类号 G06Q30/02(2012.01)I
代理机构 南京瑞弘专利商标事务所(普通合伙) 32249 代理人 陈建和
主权项 基于协同过滤推荐算法的手机机型推荐方法,其特征是利用协同过滤推荐算法的框架,结合机型生命周期模型和相应的打分函数来为用户精确推荐机型,包括如下步骤:1)最近邻计算阶段:a)数据预处理,清除噪声和异常数据,排除不符合要求的用户和机型,从用户数据库中抽取目前正在使用的用户的个人信息和历史消费信息,从机型数据库中抽取用户目前使用机型的相关属性;b)利用预处理后的数据将相应的信息抽取出来为每个用户构建对应的用户向量,并使用本系统设计的方法计算用户间的相似度;c)计算目标用户与其他用户的相似度取相似度最大的前N个作为目标用户的最近邻居;具体过程如下:(1)数据预处理,对于正在使用的用户,清理掉山寨机用户和刚入网不到半年的用户,得到正常用户集合A。山寨机用户的清理方法是如果有同一串号对应多个手机则是山寨机,入网不到半年的用户则是通过入网时间距离当前月份大于六个月来筛选;(2)对A中的用户建立用户向量集合U,用户向量<img file="FDA0000701450470000011.GIF" wi="52" he="71" />加入U中,包含三类信息,分别是用户本身属性,消费信息和当前使用机型信息;(3)将用户u<sub>i</sub>的性别、年龄、入网时长信息加入用户向量u<sub>i</sub>。(4)将用户u<sub>i</sub>的消费信息,包括平均通话时长、短信、消费、流量等信息加入到用户向量u<sub>i</sub>;(5)将用户u<sub>i</sub>当前的用机信息,包括机型所对应的价格、制式、品牌、操作系统、是否是智能机、是否支持TD、是否支持摄像头、是否支持GPRS、尺寸等信息加入到用户向量<img file="FDA0000701450470000012.GIF" wi="78" he="76" />(6)计算用户u<sub>i</sub>与所有其他用户的相似度,得到相似度矩阵,相似度的计算如下:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>sim</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><msub><mi>u</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>=</mo><mi>cos</mi><mrow><mo>(</mo><msub><mover><mi>u</mi><mo>&RightArrow;</mo></mover><mi>i</mi></msub><mo>,</mo><msub><mover><mi>u</mi><mo>&RightArrow;</mo></mover><mi>j</mi></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>sim</mi><mi>type</mi></msub><mrow><mo>(</mo><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><msub><mi>u</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msub><mover><mi>u</mi><mo>&RightArrow;</mo></mover><mi>i</mi></msub><mo>&CenterDot;</mo><msub><mover><mi>u</mi><mo>&RightArrow;</mo></mover><mi>j</mi></msub></mrow><mrow><mo>|</mo><mo>|</mo><msub><mover><mi>u</mi><mo>&RightArrow;</mo></mover><mi>i</mi></msub><mo>|</mo><mo>|</mo><mo>&CenterDot;</mo><mo>|</mo><mo>|</mo><msub><mover><mi>u</mi><mo>&RightArrow;</mo></mover><mi>j</mi></msub><mo>|</mo><mo>|</mo></mrow></mfrac><mo>+</mo><msub><mi>sim</mi><mi>type</mi></msub><mrow><mo>(</mo><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><msub><mi>u</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000701450470000013.GIF" wi="1416" he="154" /></maths>其中<img file="FDA0000701450470000021.GIF" wi="54" he="74" />和<img file="FDA0000701450470000022.GIF" wi="58" he="78" />表示用户u<sub>i</sub>,u<sub>j</sub>所对应的用户向量。余弦部分计算的是用户向量中用户本身信息和消费信息部分的相似度,由于这部分数据属性是混合属性,而余弦度量要求向量中的每个属性必须是实数,所以需要对分类属性进行量化。性别分别用0和1表示。sim<sub>type</sub>(u<sub>i</sub>,u<sub>j</sub>)计算的则是用户u<sub>i</sub>和u<sub>j</sub>当前使用机型的相似度,同一品牌同一机型相似度为1,同一品牌不同机型相似度为0.5,不同品牌的相似度为0;(7)取相似度最大的前N个用户构成目标用户u<sub>i</sub>的最近邻居集合N<sub>i</sub>;(8)结束;a)结束;2)机型推荐阶段:a)构建所有机型的生命周期模型并计算出处于成熟期及之前阶段的机型集合;b)使用目标用户的最近邻为所有机型进行打分,之后向目标用户推荐;具体过程如下:(1)查询用户集合U中的所有用户当前使用的机型并构造机型集合P;(2)建立一个集合MATURE用于存放处于成熟期及之前阶段的机型;(3)查询P中的每个机型p<sub>i</sub>自上市以来每个月的使用量增量数据得到向量<img file="FDA0000701450470000026.GIF" wi="264" he="65" />increment<sub>i</sub>中的第d维元素表示机型p<sub>i</sub>上市后第d月的使用量增量;(4)对P中的每个机型p<sub>i</sub>分别构造生命周期模型m<sub>i</sub>,方法是采用三次多项式拟合increment<sub>i</sub>中的增量数据,多项式方程为:Y(t)=a<sub>0</sub>+a<sub>1</sub>t+a<sub>2</sub>t<sup>2</sup>+a<sub>3</sub>t<sup>3</sup>。拟合后得到相应的参数值a<sub>0</sub>,a<sub>1</sub>,a<sub>2</sub>,a<sub>3</sub>,其中Y(t)表示机型p<sub>i</sub>上市后第t月的使用量增量;(5)确定机型p<sub>i</sub>所处的生命阶段。计算<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>t</mi><mn>1</mn></msub><mo>=</mo><mfrac><mrow><mo>-</mo><mn>2</mn><msub><mi>a</mi><mn>2</mn></msub><mo>+</mo><msqrt><msup><mrow><mo>(</mo><mn>2</mn><msub><mi>a</mi><mn>2</mn></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>-</mo><mn>4</mn><msub><mi>a</mi><mn>1</mn></msub><mo>&CenterDot;</mo><mn>3</mn><msub><mi>a</mi><mn>3</mn></msub></msqrt></mrow><mrow><mn>2</mn><mo>&CenterDot;</mo><msub><mrow><mn>3</mn><mi>a</mi></mrow><mn>3</mn></msub></mrow></mfrac><mo>=</mo><mfrac><mrow><mo>-</mo><msub><mi>a</mi><mn>2</mn></msub><mo>+</mo><msqrt><msubsup><mi>a</mi><mn>2</mn><mn>2</mn></msubsup><mo>-</mo><mn>3</mn><msub><mi>a</mi><mn>1</mn></msub><msub><mi>a</mi><mn>3</mn></msub></msqrt></mrow><mrow><mn>3</mn><msub><mi>a</mi><mn>3</mn></msub></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0000701450470000023.GIF" wi="1011" he="144" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>t</mi><mn>2</mn></msub><mo>=</mo><mo>-</mo><mfrac><msub><mi>a</mi><mn>2</mn></msub><mrow><mn>3</mn><msub><mi>a</mi><mn>3</mn></msub></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0000701450470000024.GIF" wi="249" he="120" /></maths><maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mi>t</mi><mn>3</mn></msub><mo>=</mo><mfrac><mrow><mo>-</mo><mn>2</mn><msub><mi>a</mi><mn>2</mn></msub><mo>-</mo><msqrt><msup><mrow><mo>(</mo><mn>2</mn><msub><mi>a</mi><mn>2</mn></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>-</mo><mn>4</mn><msub><mi>a</mi><mn>1</mn></msub><mo>&CenterDot;</mo><msub><mrow><mn>3</mn><mi>a</mi></mrow><mn>3</mn></msub></msqrt></mrow><mrow><mn>2</mn><mo>&CenterDot;</mo><msub><mrow><mn>3</mn><mi>a</mi></mrow><mn>3</mn></msub></mrow></mfrac><mo>=</mo><mfrac><mrow><mo>-</mo><msub><mi>a</mi><mn>2</mn></msub><mo>-</mo><msqrt><msubsup><mi>a</mi><mn>2</mn><mn>2</mn></msubsup><mo>-</mo><mn>3</mn><msub><mi>a</mi><mn>1</mn></msub><msub><mi>a</mi><mn>3</mn></msub></msqrt></mrow><mrow><mn>3</mn><msub><mi>a</mi><mn>3</mn></msub></mrow></mfrac><mo>.</mo></mrow>]]></math><img file="FDA0000701450470000025.GIF" wi="1078" he="173" /></maths>令当前月份是机型p<sub>i</sub>上市的第t<sub>cur</sub>月,如果t<sub>cur</sub>∈(t<sub>0</sub>,t<sub>1</sub>),则处在引入期;如果t<sub>cur</sub>∈(t<sub>1</sub>,t<sub>2</sub>),则处在成长期;如果t<sub>cur</sub>∈(t<sub>2</sub>,t<sub>3</sub>),则处在成熟期;如果t<sub>cur</sub>>t<sub>3</sub>,则进入衰退期,销量逐渐减少,即将退出市场,不参与机型推荐;(6)将P中处在成熟期以及之前阶段的所有机型加入到集合MATURE中;(7)为MATURE中的每个机型q<sub>k</sub>打分,打分的方法是<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>p</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><msub><mi>q</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><munder><mi>&Sigma;</mi><mrow><msub><mi>u</mi><mi>j</mi></msub><mo>&Element;</mo><msub><mi>N</mi><mi>i</mi></msub></mrow></munder><mi>sim</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><msub><mi>u</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>&CenterDot;</mo><mi>&delta;</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>j</mi></msub><mo>,</mo><msub><mi>q</mi><mi>k</mi></msub><mo>)</mo></mrow></mrow><mrow><munder><mi>&Sigma;</mi><mrow><msub><mi>u</mi><mi>j</mi></msub><mo>&Element;</mo><msub><mi>N</mi><mi>i</mi></msub></mrow></munder><mi>sim</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><msub><mi>u</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0000701450470000031.GIF" wi="756" he="240" /></maths><img file="FDA0000701450470000032.GIF" wi="785" he="136" />其中N<sub>i</sub>是目标用户u<sub>i</sub>的最近邻居集合;(8)对打分结果进行降序排序,取最高的N个机型推荐给目标用户u<sub>i</sub>,将结果保存到文件中;(9)将推荐结果交由营销人员进行营销;(10)结束;c)结束;结束。
地址 210093 江苏省南京市鼓楼区汉口路22号