具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,基于从用户数据和推荐内容中提取出的特征词,并根据改进的贝叶斯(Bayes)分类算法来分别对用户数据及推荐内容进行自动分类,从而生成相应的标签树,以进一步通过相关性匹配来实现对用户的个性化推荐,提高了标签描述的准确性和覆盖率,也由此提高了用户数据与推荐内容匹配的精确性。
图1示出了本发明第一实施例提供的个性化推荐方法的实现流程,详述如下:
在步骤S101中,分别提取用户数据和推荐内容的特征词。
在本实施例中,用户数据可以由用户的网络行为中获取,例如通过用户在互联网上的浏览新闻、关键词搜索等网络行为,从上述网络行为中获取到携带有用户兴趣倾向的用户数据。而推荐内容则可以为新闻、博客等能够为用户提供信息的互联网内容。
对用户数据和推荐内容进行自动分类,十分重要的一个环节就是要准确地提取相应数据的特征词,该特征词用于表征其所处数据的领域,因此需要具备鲜明的领域性,以能够准确地对领域进行表征。
传统的词频-逆向文档频率(term frequency-inverse document frequency,TF-IDF)方法对于特征词的提取只考虑了词汇的频次,且认为频次很高及很低的词汇都不能够作为特征词,因此常常会出现诸如“JUMPSQ”为动漫领域的特征词,但在考察数据中的出现频次很低,以及“招股”为股票、财经领域的特征词,但在考察数据中的出现频次很高的情况,若使用传统方法,“JUMPSQ”和“财经”均无法入选特征词。同时,诸如“始端”这样领域性不强的噪音词,却其频次适中而入选了特征词,导致特征词提取不准确。
而在本实施例中,对于特征词的提取不但基于词汇的频次,同时还结合了信息增益(information gain,IG)和χ2统计(CHI),具体地,对于数据中词汇特征强度的度量公式如下:
F(w)=log(DF(w))*(λlog(χ2(w)+(1-λ)IG(w))),
其中,w为当前进行特征强度度量的词汇,F(w)为w的特征强度,IG(w)、χ2(w)和DF(w)分别为w的信息增益、χ2统计量和文档频率,且χ2(w)和IG(w)均是描述词汇w在分类体系中的类间分布与类先验分布的差异度,而DF(w)则是词汇w的频次。
关于信息增益的度量公式为
其中,ci为类别,上式分为三个部分,第一部分是整个类的信息熵的负值,第二部分是包含词汇w的信息熵和词汇w出现概率的乘积,第三部分是不包含词汇w的信息熵和不包含词汇w的概率的乘积。在本实施例中,先采用对数梯度将所有候选词按词频划分,如果词汇Wi的词频为DFi,则词汇Wi映射到区间其中step是梯度,一般取整数。表示对x下取整,即不大于x的最大的整数。这样,每个区间内都是词频在一定范围的词汇,因此词汇的{在类中出现,不在类中出现}这两个属性分布就会比较均衡。然后,用上面公式计算词汇的信息增益。最后将每个区间内词汇的信息增益值都归一到一个统一的区间[low,up]。由此,能够避免传统信息增益算法中对于超高频和超低频词的{在类中出现,不在类中出现}这两种属性分布严重失衡的问题。
关于χ2统计量的度量公式为
其中,A是实际分布值,T是理论分布值,θ是理论值的阈值,λ是一个校正因子。通过引入校正因子,可以避免出现传统χ2统计量针对高频词的统计量基本偏高,针对低频词的统计量基本偏低且统计量不准确,导致高频词和低频词的χ2统计量可比性不强的问题。
在本实施例中,在对词汇的特征强度进行度量的过程中,结合考虑了词汇的信息增益、χ2统计量,能够避免传统的TF-IDF方法所带来的上述问题。图2A至图2C分别示出了“JUMPSQ”、“招股”和“始端”这三个词汇的类间分布和类先验分布的对比情况,可以看出,“JUMPSQ”和“招股”的类间分布与类先验分布的基本吻合点很少,差异化很大,分别在动漫(comic)领域和财经(finance)领域成为领域性强的词,因此其所处数据分别为动漫领域数据和财经领域数据,而“始端”的类间分布与类先验分布吻合度高,相似性强,因此成为噪音词。由此能够看出,本实施例结合了信息增益、χ2统计量和文档频率的方法能够更准确地对数据中的词汇特征强度进行描述,以使提取出的特征词具有很强的领域性。
在本实施例中,当对数据中词汇的特征强度均进行了度量之后,将特征强度大于第二预设阈值的若干个词汇提取为用户数据和推荐内容的特征词,而第二预设阈值的大小可以根据实际情况而确定,在此不作限定。
在步骤S102中,根据提取出的特征词,通过在预设的领域分类体系中分别针对用户数据和推荐内容为每个级别生成相应的分类模型,获取用户数据和推荐内容归属于每个类别的分类概率。
在本实施例中,预设的领域分类体系为事先建立的多级领域分类体系,其可以为如图3所示的多级分类体系,该分类体系对用户数据和推荐内容能够涉及到的领域进行了精细的分类,该分类体系的分类级和类别越精细,则所带来的用户数据与最终的推荐内容的匹配度越高。
在分别提取出了用户数据和推荐内容的特征词后,需要一个快速且精准的分类算法来对上述两种数据在领域分类体系中进行自动分类,同时,还必须使得设定出来的标签满足多级分类和多类兼类的要求,以建立多维度、多级别的用户兴趣标签树以及推荐内容标签树。例如,用户的爱好涉及到“娱乐->明星->港台明星”以及“科技->数码”这样一个多维度、多级别的用户兴趣标签树。
在本实施例中,通过在预设的领域分类体系中分别针对用户数据和推荐内容为每个级别生成相应的分类模型,以达到多级分类的分类效果,且每次分类模型的生成,只在该级别相同的父类范围内进行,以达到多类兼类的分类效果,具体的分类模型生成步骤及相应的分类概率获取步骤将在后续实施例中进行详细说明,在此不赘述。
在步骤S103中,根据相应的分类概率生成用户兴趣标签树和推荐内容标签树,计算所述用户兴趣标签树和所述推荐内容标签树的相关性,当所述相关性大于第一预设阈值时,为用户推荐相应的推荐内容。
通过步骤S102生成的分类模型,能够为用户数据以及推荐内容在领域分类体系中的每一级每一类中均计算出其相应的分类概率,而通过取分类概率最大的前预设个类别,则能够组成多维多级的分类结果,这些分类结果即组成了携带了概率倾向的用户兴趣标签树和推荐内容标签树,该标签树由多个不同的子树构成,用于实现对用户兴趣或者推荐内容的多维度多级别的倾向性覆盖。
在本实施例中,对生成的用户兴趣标签树和推荐内容标签树进行相关性计算,当其相关性大于第一预设阈值时,则代表用户兴趣可能与该推荐内容相符,则为用户进行推荐,其具体的实现流程将在后续实施例进行详细说明,在此不赘述。
在本实施例中,通过上述步骤,即可根据用户行为自动地生成准确度高、覆盖率大的用户兴趣标签树,并将该标签树与推荐内容标签树进行相关性匹配,从而精确地对用户进行个性化推荐。
图4示出了本发明第二实施例提供的个性化推荐方法自动分类的具体实现流程,详述如下:
在步骤S401中,在领域分类体系的每个级别中,通过每个特征词为每个类别生成一个投票值。
具体地,通过每一个特征词为每个类别生成投票值的公式如下:
Val(cj/wi)=log(tf(wi))*P(cj/wi),
其中,wi为特征词,cj为类别,tf(wi)为wi的频次,
且P(w/ci)为特征词wi属于类别cj的先验概率。
在步骤S402中,分别针对用户数据和推荐内容,将每个类别的投票值进行累加,生成该类别的累计投票值。
具体地,生成累计投票值的公式为:
在步骤S403中,归一化所述累计投票值,分别生成用户数据和推荐内容归属于该类别的分类概率。
具体地,生成用户数据和推荐内容归属于领域分类体系中某类别的分类概率的公式为:
需要说明的是,在对用户数据或者推荐内容进行每一级的自动分类时,对该级的分类只限在相同的父类范围内进行,例如,第一级分在“娱乐”类别,则在对第二级进行自动分类时,只在“娱乐”的子类“明星”、“电影”、“音乐”内进行分类,依次类推,第三级、第四级也按相同的父类范围来进行分类约束,由此,能够形成多类兼类的标签覆盖效果。
图5示出了本发明第三实施例提供的个性化推荐方法相关性计算的具体实现流程,详述如下:
在步骤S501中,根据相应的分类概率生成用户兴趣标签树和推荐内容标签树。
作为本实施例的实现示例,图6A和图6B分别示出了通过相应的分类概率生成的具体的用户兴趣标签树和推荐内容标签树,能够看出,如上所述,对一级的分类只限在相同的父类范围内进行,例如,在用户兴趣标签树中,位于相同层级的“明星”、“电影”和“足球”类别,“明星”和“电影”在相同的父类“娱乐”类别下进行分类,其分类概率和为1,而“足球”则在“体育”类别下进行分类。
在步骤S502中,将分类概率由标签树的顶部至底部逐层连乘,得到每个标签的权重,相应的传递公式为:
其中,c0->c1->...->cj表示从标签树的顶部标签c0到当前标签cj的传递路径,例如传递路径“娱乐->明星->港台”,通过将分类概率进行逐层连乘,从而使唤标签树中的每个标签都获得到一个相应的权重。
在步骤S503中,在所述用户兴趣标签树和所述推荐内容标签树具备公共节点的最底层,分别提取相应的标签及权重,生成用户兴趣特征向量和推荐内容特征向量。
在本实施例中,在提取标签及权重以组成相应的用户兴趣特征向量和推荐内容特征向量的过程中,采用了公共节点终止的方法,即将标签的提取位置置于用户兴趣标签树和推荐内容标签树具备公共节点的层次的最底一层。例如,用户兴趣标签树中“娱乐”的传递路径是“娱乐->明星->港台”,但推荐内容标签树中“娱乐”的传递路径是“娱乐->明星”,则在提取标签时,提取“明星”这一层的标签,以实现更准确、更全面的匹配。
在对标签及其权重进行提取之后,分别针对用户数据和推荐内容生成一维的用户兴趣特征向量和推荐内容特征向量F={fc1,fc2,...,fcn}。以图6A和图6B所示的标签树为例,则生成的用户兴趣特征向量为Fusr={明星,电影,足球},Fdata={明星,电影,足球,篮球}。
在步骤S504中,计算用户兴趣特征向量和推荐内容特征向量的相关性。
具体地,可以通过余弦夹角来计算用户兴趣特征向量和推荐内容特征向量的相关性。
由此,根据计算出的相关性,通过判断相关性的大小,当相关性大于第一预设阈值时,则代表用户兴趣可能与该推荐内容相符,则为用户进行推荐,以实现对用户的多兴趣及不同兴趣倾向的个性化推荐。
图7示出了本发明第四实施例提供的个性化推荐系统的结构,为了便于说明,仅示出了与本实施例相关的部分。
具体地,该个性化推荐系统包括了:
特征词提取模块71,分别提取用户数据和推荐内容的特征词。
特征强度度量单元711,度量用户数据和推荐内容中词汇的特征强度,所述特征强度的度量公式为:F(w)=log(DF(w))*(λlog(χ2(w)+(1-λ)IG(w))),其中,w为进行特征强度度量的词汇,F(w)为w的特征强度,IG(w)、χ2(w)和DF(w)分别为w的信息增益、χ2统计量和文档频率。
提取单元712,将特征强度大于第二预设阈值的词汇分别提取为用户数据和推荐内容的特征词。
分类概率获取模块72,根据提取出的特征词,通过在预设的领域分类体系中分别针对用户数据和推荐内容为每个级别生成相应的分类模型,获取用户数据和推荐内容归属于每个类别的分类概率。
投票值生成单元721,在所述领域分类体系的每个级别中,通过每个特征词为每个类别生成一个投票值,所述投票值生成公式为:Val(cj/wi)=log(tf(wi))*P(cj/wi),其中,wi为特征词,cj为类别,tf(wi)为wi的频次,且P(w/ci)为wi属于cj的先验概率。
投票值累加单元722,分别针对用户数据和推荐内容,将每个类别的投票值进行累加,生成该类别的累计投票值。
投票值归一化单元723,归一化所述累计投票值,分别生成用户数据和推荐内容归属于该类别的分类概率。
推荐模块73,根据相应的分类概率生成用户兴趣标签树和推荐内容标签树,计算所述用户兴趣标签树和所述推荐内容标签树的相关性,当所述相关性大于第一预设阈值时,为用户推荐相应的推荐内容。
标签树生成单元731,根据相应的分类概率生成用户兴趣标签树和推荐内容标签树。
标签权重获取单元732,将分类概率由标签树的顶部至底部逐层连乘,得到每个标签的权重。
特征向量生成单元733,在所述用户兴趣标签树和所述推荐内容标签树具备公共节点的最底层,分别提取相应的标签及权重,生成用户兴趣特征向量和推荐内容特征向量。
相关性计算单元734,计算所述用户兴趣特征向量和所述推荐内容特征向量的相关性。
推荐单元735,当所述相关性大于第一预设阈值时,为用户推荐相应的推荐内容。
分类体系建立模块74,建立多级的领域分类体系。
本发明第四实施例提供的个性化推荐系统可以使用在前述对应的个性化推荐方法实施例一、二和三中,详情参见上述本发明第一、二、三实施例的相关描述,在此不再赘述。
在本实施例中,基于从用户数据和推荐内容中提取出的特征词,对领域分类体系的每一级均生成不同的分类模型,来分别对用户数据及推荐内容进行自动分类,从而生成相应的标签树,以进一步通过相关性匹配来实现对用户的个性化推荐,提高了标签描述的准确性和覆盖率,也由此提高了用户数据与推荐内容匹配的精确性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。