研究报告 | 基于不变量整合的个性化推荐算法

Posted 华院

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了研究报告 | 基于不变量整合的个性化推荐算法相关的知识,希望对你有一定的参考价值。



引言


随着互联网和移动互联网的迅速发展,大数据在数量和种类上都经历着急剧地增长,我们的生活与信息获取方式发生了巨大的改变。大数据已经可以提供一个人的多方面数据,包括:打车去了哪里、听了什么音乐、买过什么商品、在社交网络上说了什么等。


为了挖掘利用这些数据,研究者们提出了很多推荐算法,其中主要包括:基于内容推荐、协同过滤推荐、基于效用推荐、基于知识推荐等。这些算法通过人(或者物)作为连接体,从大量数据中过滤出显性相关因素,据此给出推荐。


但是这种推荐模式存在两点缺陷。一是对数据需求大,由于只是将个体作为连接体,而并没有深入挖掘个体行为背后的隐性特征,这样不可避免会产生许多孤立相关对。为了缓解孤立相关对效应,主流的推荐算法需要用大量的行为数据去修正,对数据利用率低。


此外,主流推荐算法所做的推荐范围仅限于所拥有的数据字段范围。什么意思呢?如果要从书籍的偏好预测对鞋服的偏好,就要用到大量用户在书籍和鞋服这两个领域的数据。如果要从音乐偏好来预测社交媒体用语,购物习惯等维度的偏好,就要用到音乐,社交媒体,电商等跨平台的数据。如果要从一个数据源预测这个人的方方面面的偏好,就要拿到这个人在方方面面的全量数据。然而在实际应用中,获取一个人的全量数据几乎是不可能的(即使全量获得付出的成本也相当大),通常只有关于用户行为的少量数据。如何有效实现小数据的“冷启动”成为了用户画像领域重要的课题与挑战。


为了解决这些难题,分维团队在机器学习,人工智能等方面展开了深入的研究,同时还将心理学、经济学、社会科学等领域的知识和方法加以交叉融合,提出了基于不变量整合的推荐算法。该算法首先利用不变量学习从各种行为数据中提炼高阶特征,然后利用人格作为内核整合不同来源的不变量,从而找到了不同行为数据之间的内在一致性,可以有效解决小数据“冷启动”的问题,并且实现跨领域个性化推荐。


下面就来具体讲讲基于不变量整合的推荐算法的原理。概括地讲,该算法由四部分组成,分别是:不变空间初始化、不变特征整合化、整合特质向量化、向量空间度量化。

不变空间初始化


不变量学习是模式识别和机器学习中的重要课题。简单来说,不变量就是一种基本形,它表征物体所固有的、恒定不变的属性,对于分析数据和识别模式都有至关重要的作用。


研究报告 | 基于不变量整合的个性化推荐算法

研究报告 | 基于不变量整合的个性化推荐算法


雪花曲线是分形几何(Fractal Geometry)中典型的研究对象。如果把上图漫天飞雪的场面理解为用户的行为数据,那么下图对雪花曲线的分解过程便是不变量的提取过程。下图最右边这张雪花曲线的基本形便是一个不变量。不变量具有高阶性、整体性、独特性、稳定性等特点。


不变量是一种对特征的高度浓缩总结,体现了物体的固有属性,具有高阶性。例如,雪花曲线的基本形就是从雪花的形状中层层提炼出来的,每一层提炼都是对上一层的高度浓缩。同时,从雪花曲线的基本形出发,经过一层层构造,便可以产生丰富多态的雪花曲线,因而基本形蕴含了原始数据中的完整信息,这正是不变量的整体性。此外,基本形之间是有差异的,雪花有雪花的基本形,树木有树木的基本形,所以不变量具有独特性。而在不变量的提取过程中丢弃了很多冗余的无关信息,使得不变量具有很高的稳定性和抗干扰能力。


有基于此,如何从各种不同来源的用户行为数据中提炼不变量成为了一个关键点。我们将各类不变量组成的集合称为不变空间,而从行为数据中初步提取不变量的过程称为不变空间的初始化。


针对不同的应用场景,我们研发了多种提取不变量的方法。下面以静态数据和动态数据为例,介绍我们的不变量提取方法。


静态数据指的是不随时间发生变化的数据(或者在一段时间内不发生变化的数据),例如用户的性别、年龄、一张图片、一段文本等等;而动态数据指的是随时间变化而发生变化的数据,例如一段视频、脑电信号等等。


对于用户的静态行为数据不变量提取时,通常会面临单来源的特征稀疏性这一问题。为了将不同来源的稀疏特征组合起来提取不变量,我们采用了多种算法,其中包括处理图像的卷积神经网络(CNN),处理文本的词向量技术(Word2Vec)、概率主成分分析(PPCA)以及自编码神经网络(AutoEncoder)等。


下面以自编码神经网络为例说说不变量提取。自编码神经网络是一种无监督的特征压缩算法,它分为编码(Encode)和解码(Decode)两个过程。


研究报告 | 基于不变量整合的个性化推荐算法


在编码过程中,需要学习一个映射f,将输入层变量X映成隐藏层变量z=f(X);在解码过程中,则学习一个映射g,将隐藏层变量z恢复成X'=g(z)。学习的目标是使得恢复值X'和真实值X之间的距离最小:


研究报告 | 基于不变量整合的个性化推荐算法


这里的z称为X的编码,也即X的高阶特征。通常z的维数要远远小于X的维数,这就实现了降维,并将稀疏的特征整合成浓缩的高阶特征。可以证明,当f,g取为线性映射时,自编码神经网络就是通常的主成分分析(PCA)。由于在自编码神经网络中可以采用非线性激活函数,效果要好于通常的主成分降维。


例如在MNIST数据集中,每张图片代表一个手写数字,它由28*28=784个像素点组成,从而每个输入可看成是一个784维向量。我们取32维的欧式空间作为特征空间,通过神经网络的学习,可以将每一张图片编码成一个32维向量,这个向量的元素不再是像素点级别的特征,而是经过抽象和浓缩的不变量(即高阶特征,例如一个钩,一个弧等等)。这些不变量的提取丢弃了诸多冗余信息,大幅度地减少了维数,增加了抗干扰性能力。下图第一行是原始图片,第二行是通过抽取的32维高阶特征还原得到的图片。


研究报告 | 基于不变量整合的个性化推荐算法


在处理社交媒体文本时,我们以周为单位对71类文本特征进行了抓取,每类文本特征利用快速傅里叶变换(FFT)抓取了32个频段的信息,抓取的所有特征拼接成一个71*32=2272维向量。然后利用上述自编码神经网络提取出500维高阶特征,这就完成了文本信息的不变量提取。


对于用户的动态数据,我们采用慢特征分析方法结合其它降维技术进行不变量提取。


慢特征分析(Slow Feature Analysis)是一种从快速变化的动态数据中提取缓慢变化特征(简称慢特征)的无监督学习算法。慢特征表达了动态数据中的某些固有属性,具有很强的表征性和稳定性,是一种动态不变量。我们来举个例子说明这一点。


下图是一只猴子从出现到离开的画面,分别是三个不同位置的传感器,它们记录了原始的感官信号(primary sensory signal),它们随时间快速变化;而大脑所处理的信息,例如物体是什么、物体位置等,这些高层次信息 (high level representation)随时间缓慢变化。这就是缓慢变化原则:重要的特征随时间缓慢变化。

研究报告 | 基于不变量整合的个性化推荐算法


下面来具体说说如何从动态数据中提取不变量,也即慢特征。


假设动态数据是:

研究报告 | 基于不变量整合的个性化推荐算法


定义时间平均:

研究报告 | 基于不变量整合的个性化推荐算法


我们的目标是找到输入的某种组合,使得以下输出:

研究报告 | 基于不变量整合的个性化推荐算法


是输入中最缓慢变化的部分,也即慢特征。此问题可以转化为如下的最优化问题:

研究报告 | 基于不变量整合的个性化推荐算法


求解这个优化问题,便可得到各级慢特征。


对于线性情形,假设:

研究报告 | 基于不变量整合的个性化推荐算法


则上述一般的优化问题转化为如下特殊形式的优化问题:

研究报告 | 基于不变量整合的个性化推荐算法


可以证明,该优化问题等价于如下的广义特征值问题:

研究报告 | 基于不变量整合的个性化推荐算法


解出权重向量便得到各级慢特征。对于一般情形,可以利用空间提升法进行求解。


研究报告 | 基于不变量整合的个性化推荐算法


上图是两个随时间快速变化的动态数据,下图便是从中提取的慢特征不变量。


利用慢特征分析可以提高不变量的质量。例如在上面处理社交媒体文本时,我们以周为单位对71类文本特征进行了抓取,在进行快速傅里叶变换之前,我们先用慢特征分析进行慢特征抓取,抓取10个最慢的特征,对这10个最慢的特征再利用快速傅里叶变换抓取32个频段的信息,总抓取的所有特征拼接成一个10*32=320维向量。这样实现了更高阶特征的提取,提炼出的不变量更加稳定。

不变特征整合化


上面已经介绍了如何提取不同领域的不变量,构建初始不变空间,以提高各领域数据的利用率。为了实现冷启动跨领域推荐,我们需要找到一个公共的内核来整合不同领域的不变量。这就需要我们对数据的产生体——人进行研究,以便找到大量不变量之间的内在一致性。


在心理学上,通常用人格来刻画一个人。人格主要是指个体所具有的与他人相区别的独特而稳定的思维方式和行为风格,包括气质和性格两部分。人格具有如下的特性:


1、整体性。人格是由多种成分构成的一个有机整体,具有内在一致性;

2、功能性。个体在适应环境的过程中会表现出系统的、独特的反应方式,因此,人格会在很大程度上决定个体的日常行为;

3、独特性。人格是在遗传、环境、教育等因素的交互作用下形成的,因此不同的个体之间会存在差异,所谓“千人千面”说的就是这个道理;

4、稳定性。人格是个体持久而稳定的行为模式,所谓“江山易改,本性难移”。


从这个意义上讲,人格是一个人的不变量,它较之于行为数据中提取的慢特征变化更加缓慢。


对人格特质的研究始于上世纪三十年代初的词汇和语义研究。卡特尔从大量描述人的行为特征的形容词中筛选出4500个词进行研究,经过对被试日常生活记录资料、问卷资料和客观实验材料的汇集进行因素分析,最终确定了16个根源特质。后来,Norman(1963,1967)、Goldberg(1976)以及McCrae和Costa(1965)等人采用不同的词汇标准,依据卡特尔所列的条目和相同的因素分析方法,不约而同地发现了人格有五个主要因素,而不同研究结果之间的差异也仅体现在命名上,内容具有高度的一致性。此外,基于不同文化和语言背景的研究中都得到了相似的人格五因素模型,称为大五人格模型 (也称为 OCEAN 模型)。该模型通过5个方面对一个人的人格进行刻画:


1、 开放性 (Openness),开放性描述我们的认知风格及对新经验的接受程度;

2、 尽责性 (Conscientiousness),尽责性指控制、管理和调节自身冲动的方式;

3、 外向性 (Extraversion),外向性表示人际互动的数量和密度;

4、 宜人性 (Agreeableness),宜人性评估个体对其他人所持的态度;

5、 神经质 (Neuroticism),神经质代表情绪的不稳定性。


研究表明,人格是行为的重要内在驱动力,不同人格的人对于商品有不同的偏好,利用人格可以进行商品的个性化推荐;不同人格的人对于价格敏感度不同,据此可以制定不同的营销策略。此外,心理学上可以对每个人的这5个维度打分,从而定量的刻画一个人。


上面已经介绍了如何通过无监督学习方式提炼不变量的方法。在此基础上,我们通过人格进行有监督学习,完成了初始不变空间的进一步优化。人格内核作为一个桥梁,整合了从不同来源数据中提炼的不变量,从而找到了不同来源行为数据的内在一致性。这样就从源头上改变了主流推荐算法中的硬匹配方式,将数据“软化”,从而可以有效整合两个具有相似人格或者相似偏好的人所产生的行为数据,大大减少对数据量的依赖,实现跨领域推荐。

不整合特质向量化


上一部分介绍了不变特征的整合,这部分具体说说如何将整合特质向量化。首先,向量化的目的是为了可计算。比如甲责任心很好但是情绪不稳定,乙责任心不好但是情绪稳定,预测谁更可能减肥成功。这时候就要给一个确切的量值来衡量毅力指数,这就需要量化各种特质,使得一切变得可计算。


单个体的人格特质可以用OCEAN的五个分量值来刻画,这在上一部分已经介绍过,此时人格空间为

研究报告 | 基于不变量整合的个性化推荐算法


其中a为量表的下限,b为量表上限。例如对于BFI-44量表,每题分值在1到5之间,故a=1,b=5


人格空间包含的是人在五个维度上的全信息,有时在实际应用中,仅需抽取其中的一部分人格特质进行建模,即寻找一个向量空V以及一个特征映射f,将人格空间中的每个向量p都映射到相应的特质向量v=f(p)

研究报告 | 基于不变量整合的个性化推荐算法

根据不同的需求以及应用场景可以选择不同f和V。例如根据OCEAN五个维度的高低可以将人群分成研究报告 | 基于不变量整合的个性化推荐算法类,这样就得到了

研究报告 | 基于不变量整合的个性化推荐算法

V一个32维空间。


针对具体应用场景,我们开发了两类模型,一类是基于个体用户的单双主维度模型,此时我们用一到两个维度作为主要维度去刻画人格,所以


研究报告 | 基于不变量整合的个性化推荐算法


这个90维的特征空间V以更精确地刻画不同人的个性特质。比如一个主维度为尽责性高、神经质低的人通常比较有毅力,满意度高;一个外向性高开放性低的人通常比较健谈,但是不太喜欢尝试新鲜事物等等。


另外一类模型是特征分布模型,通常用于刻画一个群体的性格,例如一个商家的所有客户等等。此时的特征向量是一个分布空间中的分布(distribution),特征空间V是无限维的。

向量空间度量化


所谓度量就是一种距离,用来衡量两点之间的接近程度。向量空间度量化的目的是为了衡量特质之间的接近程度,从而得到相似度。给一个向量空间赋予一个度量的过程称为向量空间的度量化。


对于有限维空间,通常采用如下的p度量进行度量化:

研究报告 | 基于不变量整合的个性化推荐算法

p=2时,由勾股定理,p度量衡量的就是直线距离。直线距离有一个缺陷是要允许两点之间的直线上的任何点都可达,现实生活中往往做不到,例如在街区只能沿着纵横的街道走,所以此时采用p=1时的距离,这个距离又称为曼哈顿距离。一般要根据实际应用场景来选取适当的距离。


对于无限维空间也可以引入类似度量。这里,我们感兴趣的是所有分布组成的空间上的度量。常用的衡量两个分布接近程度的度量为相对熵(又叫做KL散度),它的不足之处在于不对称性,即A相对于B的距离不等于B相对于A的距离,另外它要求两个分布之间需要有重合的地方,否则无法计算,这对于应用具有很大的局限性。为了克服这个困难,我们引入如下的Wasserstein度量:


研究报告 | 基于不变量整合的个性化推荐算法


直观地讲,如果把一个分布理解为一堆货物在空间的分布状态,那么Wasserstein度量就是从货物的一种状态移动到另外一种状态所需要花费的最小代价。引入Wasserstein度量的好处在于即使分布完全没有重合的地方,也能计算远近程度。此外,Wasserstein度量是对称的,符合距离的三角不等式,从而有很多良好的性质。


当两个分布是多元正态分布时,其Wasserstein度量有如下的显式表达式:

研究报告 | 基于不变量整合的个性化推荐算法

研究报告 | 基于不变量整合的个性化推荐算法


可见Wasserstein度量非但考虑了均值之间的差异,还考虑了协方差之间的差异,特别地,当一维时,假设两个分布相互独立,则有

研究报告 | 基于不变量整合的个性化推荐算法


下面来举例说明该算法是如何把爱吃零食和冲动消费这两种行为关联起来的。

研究报告 | 基于不变量整合的个性化推荐算法


假设我们从爱吃零食的行为数据中提炼出的特征向量为正态分布N(0.5,0.3),从冲动消费的行为数据中提炼出的特征向量是正态分布N(0.4,0.5)可以计算得到它们之间的Wasserstein度量为0.13,所以对应回去,爱吃零食和冲动消费之间的相似度为1/(1+0.13)=0.88。

对比


相比于目前主流的推荐算法,基于不变量整合的个性化推荐算法在小数据、跨领域、多样化方面有着更优异的表现。


前文已经提到,目前主流的推荐算法是数据驱动的,它将人作为连接体对待而并没有深入挖掘人的隐性内驱力,从而会造成孤立对效应。因此,主流推荐算法需要依赖大量数据以缓解孤立对效应。此外,主流推荐算法的推荐领域仅限于具有全量用户数据的字段范围,数据成本相当大。如果系统内没出现过价值观字段的数据就无法做出价值观方面的推荐。


而基于不变量整合的推荐算法引入人格作为内核,通过交叉学科研究和深度学习算法有效整合不同来源不变量,实现小数据冷启动。此外,人格强大的映射力可以有效实现跨领域推荐,即使系统内没出现过价值观字段的数据也可以做出价值观方面的推荐。


基于不变量整合的推荐算法另一个突出的表现在于克服马太效应,实现多样化推荐。马太效应是社会学中的概念,意思是使得“强者更强,弱者更弱”。主流推荐模型,无论是基于人还是基于物,都无法避免马太效应。不变量整合算法深入挖掘隐形内驱力,通过引入人格内核连接各维度不变量,从而可避免主流推荐模型通过数据映射数据的不足,有效地克服了马太效应,使得预测和推荐的资源分布更均匀、更具多样性。


为了说明这一点,我们选取了203家商铺在一年时间内用户的购物行为,利用其中80%的数据进行训练,并在剩余的20%数据上进行推荐。下图是不变量整合算法、协同过滤算法、极大熵算法和热门推荐算法在店铺获得推荐席位上的Lorentz曲线。


研究报告 | 基于不变量整合的个性化推荐算法


Lorentz曲线是经济学中的概念,用于衡量贫富差距。对于研究报告 | 基于不变量整合的个性化推荐算法L(p)表示前p比例的推荐资源被多少比例的店铺占有。例如,L(0.5)=0.2表示前50%的推荐席位被20%的店铺占有。显然,当L(p)越靠近紫色的45度线时,推荐系统越多样化,资源分布越均匀;当L(p)越靠近x轴时,资源分布越不均匀,两极分化越严重。由图中可以看到不变量整合算法的推荐多样性最强,协同过滤和极大熵算法的推荐多样性次之,热门推荐的多样性最差。


为了进一步量化多样性,我们引入覆盖系数这一指标。假设p(i)是第i家店铺获得的推荐席位比例,且研究报告 | 基于不变量整合的个性化推荐算法定义系统的覆盖系数如下:

研究报告 | 基于不变量整合的个性化推荐算法


可以证明,,且C越大时,资源分布越均匀, 长尾覆盖程度也越大。



热门推荐算法

极大熵算法

协同过滤算法

不变量整合算法

覆盖系数

0.098

0.227

0.469

0.703


上表是几种算法的覆盖系数,由此可以看出,相较于主流的推荐算法,不变量整合算法具有更大的覆盖系数,对长尾覆盖效果最好,推荐资源的分布也最均匀。


以上是关于研究报告 | 基于不变量整合的个性化推荐算法的主要内容,如果未能解决你的问题,请参考以下文章

算法基于内容的个性化推荐算法

BAT大牛亲授 个性化推荐算法实战

个性化推荐是怎么做的?

推荐系统算法概览

个性化推荐系统推荐算法

个性化推荐系统推荐算法