主权项 |
一种基于条件受限波尔兹曼机的协同过滤优化方法,其特征在于:所述方法分为两个阶段:第一个阶段是设计阶段,根据条件受限波尔兹曼机模型的特点和数据集的特征进行模型设计,模型包括可见层V,即评分数据输入层、隐藏层H,即特征提取层和条件层F,即条件数据输入层;实现步骤如下:步骤A1、利用条件多项式概率分布对可见层v每一列的评分向量进行建模,可见层的单元<img file="FDA0000816746660000011.GIF" wi="53" he="71" />被激活的概率为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>p</mi><mrow><mo>(</mo><msubsup><mi>v</mi><mi>i</mi><mi>k</mi></msubsup><mo>=</mo><mn>1</mn><mo>|</mo><mi>H</mi><mo>,</mo><mi>F</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mi>exp</mi><mrow><mo>(</mo><msubsup><mi>b</mi><mi>i</mi><mi>k</mi></msubsup><mo>+</mo><msubsup><mi>Σ</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>H</mi></msubsup><msubsup><mi>W</mi><mrow><mi>i</mi><mi>j</mi></mrow><mi>k</mi></msubsup><msub><mi>h</mi><mi>j</mi></msub><mo>+</mo><msubsup><mi>Σ</mi><mrow><mi>q</mi><mo>=</mo><mn>1</mn></mrow><mi>F</mi></msubsup><msub><mi>f</mi><mi>q</mi></msub><msub><mi>VF</mi><mrow><mi>q</mi><mi>i</mi></mrow></msub><mo>)</mo></mrow></mrow><mrow><msubsup><mi>Σ</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>K</mi></msubsup><mi>exp</mi><mrow><mo>(</mo><msubsup><mi>b</mi><mi>i</mi><mi>k</mi></msubsup><mo>+</mo><msubsup><mi>Σ</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>H</mi></msubsup><msubsup><mi>W</mi><mrow><mi>i</mi><mi>j</mi></mrow><mi>k</mi></msubsup><msub><mi>h</mi><mi>j</mi></msub><mo>+</mo><msubsup><mi>Σ</mi><mrow><mi>q</mi><mo>=</mo><mn>1</mn></mrow><mi>F</mi></msubsup><msub><mi>f</mi><mi>q</mi></msub><msub><mi>VF</mi><mrow><mi>q</mi><mi>i</mi></mrow></msub><mo>)</mo></mrow></mrow></mfrac></mrow>]]></math><img file="FDA0000816746660000012.GIF" wi="1172" he="191" /></maths>其中<img file="FDA0000816746660000013.GIF" wi="53" he="77" />表示可见层第i个评分为k的二进制数值;h<sub>j</sub>表示隐藏层第j个单元的二进制数值;f<sub>q</sub>表示条件层第q个单元的特征值;<img file="FDA0000816746660000014.GIF" wi="58" he="75" />表示可见层第i个评分为k的单元偏置;b<sub>j</sub>表示隐藏层第j个单元的偏置;<img file="FDA0000816746660000015.GIF" wi="76" he="78" />表示可见层与隐藏层之间的连接权重;VF<sub>qi</sub>表示可见层与条件层的连接权重;步骤A2、利用伯努利概率分布对隐藏层H的特征向量进行建模,隐藏层的单元h<sub>j</sub>被激活的概率:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>p</mi><mrow><mo>(</mo><msub><mi>h</mi><mi>j</mi></msub><mo>=</mo><mn>1</mn><mo>|</mo><mi>V</mi><mo>,</mo><mi>F</mi><mo>)</mo></mrow><mo>=</mo><mi>σ</mi><mrow><mo>(</mo><msub><mi>b</mi><mi>j</mi></msub><mo>+</mo><munderover><mo>Σ</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>V</mi></munderover><munderover><mo>Σ</mo><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>K</mi></munderover><msubsup><mi>v</mi><mi>i</mi><mi>k</mi></msubsup><msubsup><mi>W</mi><mrow><mi>i</mi><mi>j</mi></mrow><mi>k</mi></msubsup><mo>+</mo><munderover><mo>Σ</mo><mrow><mi>q</mi><mo>=</mo><mn>1</mn></mrow><mi>F</mi></munderover><msub><mi>f</mi><mi>q</mi></msub><msub><mi>HF</mi><mrow><mi>q</mi><mi>j</mi></mrow></msub><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000816746660000016.GIF" wi="981" he="146" /></maths>其中<img file="FDA0000816746660000017.GIF" wi="52" he="76" />表示可见层第i个评分为k的二进制数值;f<sub>q</sub>表示条件层第q个单元的特征值;<img file="FDA0000816746660000018.GIF" wi="58" he="78" />表示可见层第i个评分为k的单元偏置;b<sub>j</sub>表示隐藏层第j个单元的偏置;<img file="FDA0000816746660000019.GIF" wi="70" he="78" />表示可见层与隐藏层之间的连接权重;HF<sub>qi</sub>表示隐藏层与条件层的连接权重;<img file="FDA00008167466600000110.GIF" wi="294" he="127" />是激活函数,其中<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>x</mi><mo>=</mo><msub><mi>b</mi><mi>j</mi></msub><mo>+</mo><munderover><mo>Σ</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>V</mi></munderover><munderover><mo>Σ</mo><mi>k</mi><mi>K</mi></munderover><msubsup><mi>v</mi><mi>i</mi><mi>k</mi></msubsup><msubsup><mi>W</mi><mrow><mi>i</mi><mi>j</mi></mrow><mi>k</mi></msubsup><mo>+</mo><munderover><mo>Σ</mo><mrow><mi>q</mi><mo>=</mo><mn>1</mn></mrow><mi>F</mi></munderover><msub><mi>f</mi><mi>q</mi></msub><msub><mi>HF</mi><mrow><mi>q</mi><mi>j</mi></mrow></msub><mo>;</mo></mrow>]]></math><img file="FDA00008167466600000111.GIF" wi="653" he="159" /></maths>第二个阶段是学习阶段,构造模型参数并求出最佳的参数值,用于预测评分,包括如下步骤:步骤B1、参数初始化参数为<img file="FDA0000816746660000021.GIF" wi="550" he="77" />可见层与隐藏层的连接权重<img file="FDA0000816746660000022.GIF" wi="102" he="77" />可见层与条件层的连接权重VF<sub>qi</sub>、隐藏层与条件层的连接权重HF<sub>qi</sub>都使用均值为0,标准差为0.01的正态分布进行初始化;可见层单元偏置<img file="FDA0000816746660000023.GIF" wi="87" he="76" />隐藏层单元偏置b<sub>j</sub>初始化为全零;步骤B2、采用随机梯度上升法进行参数更新,通过不断迭代更新得到模型参数的最佳值,参数的梯度公式如下:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msubsup><mi>ΔW</mi><mrow><mi>i</mi><mi>j</mi></mrow><mi>k</mi></msubsup><mo>=</mo><mfrac><mrow><mo>∂</mo><mi>l</mi><mi>o</mi><mi>g</mi><mi>p</mi><mrow><mo>(</mo><mi>V</mi><mo>)</mo></mrow></mrow><mrow><mo>∂</mo><msubsup><mi>W</mi><mrow><mi>i</mi><mi>j</mi></mrow><mi>k</mi></msubsup></mrow></mfrac><mo>=</mo><mo><</mo><msubsup><mi>v</mi><mi>i</mi><mi>k</mi></msubsup><msub><mi>h</mi><mi>j</mi></msub><msub><mo>></mo><mrow><mi>d</mi><mi>a</mi><mi>t</mi><mi>a</mi></mrow></msub><mo>-</mo><mo><</mo><msubsup><mi>v</mi><mi>i</mi><mi>k</mi></msubsup><msub><mi>h</mi><mi>j</mi></msub><msub><mo>></mo><mrow><mi>mod</mi><mi>e</mi><mi>l</mi></mrow></msub></mrow>]]></math><img file="FDA0000816746660000024.GIF" wi="927" he="149" /></maths><maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msubsup><mi>Δb</mi><mi>i</mi><mi>k</mi></msubsup><mo>=</mo><mfrac><mrow><mo>∂</mo><mi>log</mi><mi>p</mi><mrow><mo>(</mo><mi>V</mi><mo>)</mo></mrow></mrow><mrow><mo>∂</mo><msubsup><mi>b</mi><mi>i</mi><mi>k</mi></msubsup></mrow></mfrac><mo>=</mo><mo><</mo><msubsup><mi>v</mi><mi>i</mi><mi>k</mi></msubsup><msub><mo>></mo><mrow><mi>d</mi><mi>a</mi><mi>t</mi><mi>a</mi></mrow></msub><mo>-</mo><mo><</mo><msubsup><mi>v</mi><mi>i</mi><mi>k</mi></msubsup><msub><mo>></mo><mrow><mi>mod</mi><mi>e</mi><mi>l</mi></mrow></msub></mrow>]]></math><img file="FDA0000816746660000025.GIF" wi="828" he="141" /></maths><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msub><mi>Δb</mi><mi>j</mi></msub><mo>=</mo><mfrac><mrow><mo>∂</mo><mi>log</mi><mi>p</mi><mrow><mo>(</mo><mi>V</mi><mo>)</mo></mrow></mrow><mrow><mo>∂</mo><msub><mi>b</mi><mi>j</mi></msub></mrow></mfrac><mo>=</mo><mo><</mo><msub><mi>h</mi><mi>j</mi></msub><msub><mo>></mo><mrow><mi>d</mi><mi>a</mi><mi>t</mi><mi>a</mi></mrow></msub><mo>-</mo><mo><</mo><msub><mi>h</mi><mi>j</mi></msub><msub><mo>></mo><mrow><mi>mod</mi><mi>e</mi><mi>l</mi></mrow></msub></mrow>]]></math><img file="FDA0000816746660000026.GIF" wi="815" he="144" /></maths><maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msub><mi>ΔVF</mi><mrow><mi>q</mi><mi>i</mi></mrow></msub><mo>=</mo><mfrac><mrow><mo>∂</mo><mi>log</mi><mi>p</mi><mrow><mo>(</mo><mi>V</mi><mo>)</mo></mrow></mrow><mrow><mo>∂</mo><msub><mi>VF</mi><mrow><mi>q</mi><mi>i</mi></mrow></msub></mrow></mfrac><mo>=</mo><mo><</mo><msubsup><mi>v</mi><mi>i</mi><mi>k</mi></msubsup><msub><mi>f</mi><mi>q</mi></msub><msub><mo>></mo><mrow><mi>d</mi><mi>a</mi><mi>t</mi><mi>a</mi></mrow></msub><mo>-</mo><mo><</mo><msubsup><mi>v</mi><mi>i</mi><mi>k</mi></msubsup><msub><mi>f</mi><mi>q</mi></msub><msub><mo>></mo><mrow><mi>mod</mi><mi>e</mi><mi>l</mi></mrow></msub></mrow>]]></math><img file="FDA0000816746660000027.GIF" wi="956" he="143" /></maths><maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><msub><mi>ΔHF</mi><mrow><mi>q</mi><mi>j</mi></mrow></msub><mo>=</mo><mfrac><mrow><mo>∂</mo><mi>log</mi><mi>p</mi><mrow><mo>(</mo><mi>V</mi><mo>)</mo></mrow></mrow><mrow><mo>∂</mo><msub><mi>HF</mi><mrow><mi>q</mi><mi>j</mi></mrow></msub></mrow></mfrac><mo>=</mo><mo><</mo><msub><mi>h</mi><mi>j</mi></msub><msub><mi>f</mi><mi>q</mi></msub><msub><mo>></mo><mrow><mi>d</mi><mi>a</mi><mi>t</mi><mi>a</mi></mrow></msub><mo>-</mo><mo><</mo><msub><mi>h</mi><mi>j</mi></msub><msub><mi>f</mi><mi>q</mi></msub><msub><mo>></mo><mrow><mi>mod</mi><mi>e</mi><mi>l</mi></mrow></msub></mrow>]]></math><img file="FDA0000816746660000028.GIF" wi="956" he="143" /></maths>其中<·><sub>data</sub>表示由训练集定义的期望;<·><sub>model</sub>表示由模型IC‑CRBMF定义的期望;步骤B3、预测评分,根据最佳的参数值进行评分预测;<maths num="0009" id="cmaths0009"><math><![CDATA[<mrow><mi>R</mi><mo>=</mo><munderover><mo>Σ</mo><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>K</mi></munderover><mi>k</mi><mo>·</mo><mi>p</mi><mrow><mo>(</mo><msubsup><mi>v</mi><mi>i</mi><mi>k</mi></msubsup><mo>=</mo><mn>1</mn><mo>|</mo><mi>H</mi><mo>,</mo><mi>F</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000816746660000029.GIF" wi="518" he="143" /></maths>IC‑CRBMF:代表融合项目类别信息的基于条件受限波尔兹曼机的协同过滤推荐方法;根据基于用户和基于项目,将IC‑CRBMF分为基于用户的IC‑CRBMF_UserBased和基于项目的IC‑CRBMF_ItemBased两种,然后通过Hybrid IC‑CRBMF混合加权组合得到最终的预测结果,计算如下:R<sub>Hybrid</sub>=β·R<sub>IC‑CRBMF_ItemBased</sub>+(1‑β)·R<sub>IC‑CRBMF_UserBased</sub>其中β表示组合权重。 |