论文部分内容阅读
主题模型是在机器学习和数据挖掘等领域用来在一系列文档中发现隐藏主题的一种统计模型.该模型假设一篇文档中存在多个隐藏的主题,每个主题所占的比例不相同,而主题所占的比例是通过统计每篇文档中相关单词出现的次数,根据统计得到的信息来判定当前文档所包含的主题,以及每个主题所占的比例.同时需要注意的问题是主题模型是一种词袋模型.词袋模型不考虑单词在文档中出现的先后顺序问题,其统计的仅仅是单词出现的次数.本文以LDA(LatentDirichlet Allocation)模型为主线,针对模型参数估计以及模型改进等四个方面做出了进一步的研究,取得了以下的成就: 首先.我们针对LDA模型本身的参数估计使用了一种新的方法EP算法.LDA模型本身的参数估计在[1]中使用的是变分EM算法.变分EM算法是对模型本身进行了部分的简化,使用一种新的概率分布作为原始后验分布的近似,这样在准确性上会有一定的损失.LDA模型在[2]中采用了Gibbs采样的方法.Gibbs采样是通过采样的技巧对原始后验分布进行近似.但是为了排除初始状态序列以及相邻样本间的相关性对结果的影响,Gibbs采样需要通过迭代多次之后才开始取样以及间隔取样的方法来克服上述的问题,这样会造成模型在计算时间的上的过多消耗.本文针对上述估计方法中存在的问题,采用Minka在[6]中提出的EP算法,并对其在[10]中将EP算法用于LDA的参数估计方法进行了改进.最后为了得出其在模型预测准确性方面的优势,我们将改进后的算法与前面三种方法通过一定的标准进行了比较,得出了较好的实验结果. 其次.我们考虑到大型电子商务之中用户除了购买商品之外,还可以对其进行评分(比如豆瓣上对电影的离散打分).所以我们在LDA模型的基础上对模型本身进行了部分改进,加入了对可见变量(这里指商品)的评分,并且分别针对离散评分我们采用了Gibbs采样算法,针对连续评分我们采用了变分EM算法.同时为了得到改进之后模型的准确性效果,我们在论文的第五部分将其与协同过滤中常用的算法以及原始的LDA算法在特定的数据集上进行效果比较.得出了较好的实验结果,得到了改进后的模型在预测的准确性上面要优于其他算法. 再次.我们考虑到上述改进之后的模型仍然是一个词袋模型.我们没有考虑到用户之前的购买行为对当前的影响,所以本部分我们从本质上对模型进行改进,将词袋模型改为了序列化模型.具体为:对于用户当前购买的商品,我们认为对其影响的因素由词袋模型的主题改变为序列化模型的主题,上一次购买的商品以及对该商品的评分这三个因素.同时对用户购买的当前商品的评分由词袋模型中的主题,当前购买商品修改为序列化模型中的主题,当前购买商品以及上一次购买商品以及对该商品的评分四个因素.在参数估计方面,我们对改进后的序列化模型采用了Gibbs采样算法.同样在论文的第五部分我们将该模型与LDA的词袋模型进行了预测准确性的比较,得出了较满意的结果. 最后.为了得到上述两个改进模型在预测效果上的准确性,我们采用了在协同过滤算法中常用的MovieLens数据集,并通过交叉验证的方法与基于物品的推荐,基于用户的推荐,潜在语义分析等算法进行了比较.得出了两种改进模型在效果上总体优于其他算法,而且对于这两种模型,在小数据量上两者的效果相差无几,但是随着数据量的增大,序列化模型要优于词袋模型.最后我们给出了部分解释.