您好, 访客   登录/注册

移动电商平台推荐系统及关键技术研究

来源:用户上传      作者:

  摘要:在介绍推荐系统的概念与内涵、推荐系统分类的基础上,重点阐述移动电商平台推荐系统研究过程中涉及的几项关键技术,主要包括:数据预处理技术、相似度计算技术、K最近邻分类算法技术、矩阵分解算法技术等,这是移动电商平台推荐系统开发设计过程中不可逾越的问题,
  关键词:移动电商;平台;推荐系统;关键技术
  0引言
  移动互联网迅猛发展的趋势不可阻挡,PC互联网正在日渐式微。据中国互联网信息中心(CNNIC)2019年2月所发布的第43次《中国互联网络发展状况统计报告》显示,截至2018年12月,中国网民规模已经达到8.29亿,手机网民规模为8.17亿,占比98.6%。可见,手机在上网设备中已占據了绝对的主导地位与优势。所以,针对移动电商平台的推荐系统是一件非常有意义的工作。本文主要对推荐系统的概念与内涵、推荐系统的分类进行了介绍,并在此基础上对推荐系统的关键技术进行了阐释,
  1 推荐系统的概念与内涵
  推荐系统(Recommender System.RS)主要是在“信息过载”背景下出现的一新技术,是互联网迅猛发展过程中一种个性化信息服务的重要表现形式,这种个性化服务得以实现的重要理论基础就是“信息检索”和“信息过滤”两大技术。Resnick认为“在日常生活中,人类经常需要在对事物没有充分个人体验之前进行决策,在这种情况下,人们只能根据他人的口头意见、推荐信、影评、书评或者中立机构的调查结果做出判断”。认为推荐系统就是通过对用户提供的相关信息,进行综合分析和处理后,为用户提供有针对性的信息,推荐的过程其实是把“推荐信息”匹配给“寻求信息”的用户。Burke认为“推荐系统泛指任何可以制造并输出个性化推荐信息的系统,或者是能够在大信息对象空间中以个性化的方式引导用户找到符合兴趣或有价值的信息对象的系统”,这个定义把推荐系统的内涵进行了更准确地概括与表达。Niblock站在电子商务应用的角度对推荐系统进行考察,指出了推荐系统其实就是传统“定制营销策略”(Mass Customization)在电子商务平台上的应用与实现。推荐系统是电商平台的有机成分,通过对客户历史购买行为的综合分析与处理,以此为基础预测客户未来的购买行为,从而为具有不同兴趣和习惯的顾客提供个性化推荐与服务。
  由此可见,在不同领域,推荐系统就会有不一样的表达,很难对其作出统一的定义。不过,可以从各种不同的定义中找到其核心的内涵。从对象上看,推荐系统主要涉及两大部分:一是寻找信息的用户,二是在互联网上的海量信息。由于每个用户所要找的信息都不同,要实现电商平台上精准的信息推荐,就必须分析、研究用户的行为、兴趣、习惯和兴趣偏好等个性化的信息。通过构建用户的知识模型、兴趣模型等,能推算用户特征的模型,最终把符合用户特征与用户兴趣的信息准确地提供给客户,这就是推荐系统最为本质的内涵。
  2 推荐系统的分类
  2.1 基于内容过滤的推荐
  基于内容推荐算法(Content-Based Filtering.CBF)最关键的就是“信息检索技术”,信息检索领域中的重要技术和成果都被这种推荐算法采用。这种算法最基本的思想就是根据用户在网站或平台上留下的历史操作记录(如购买记录、浏览历史、收藏记录、分享行为等)分析与预测用户的兴趣与偏好,在此基础上进行建模,深入挖掘用户的相关数据,进而准确推测用户可能会做出的行为,从而把用户感兴趣的信息精准推荐给用户。基于内容的推荐算法,最关键的步骤就是要计算出:项目信息和用户兴趣的相似度,然后把相似度的计算结果进行比较和鉴别,最终把相似度最高的项目,精准地推荐给目标客户。例如,在电商平台上,基于内容推荐的系统就会通过对用户浏览记录、收藏记录、购买记录、分享行为的综合分析,有针对性地给客户推荐评价最好的商品项目。
  基于内容推荐算法的计算如公式(1)所示:
  基于内容推荐算法的关键技术就是如何准确、有效地抽取商品项目的共同特征。普通文本值项目共同特征的抽取相对容易,通过文本项目关键字特征的提取,然后利用F-IDF(Ternl Frequency-InverseDocument Frequency)计算并确定关键字的权重即可。
  计算公式(1)中,假设电商平台上总项目数为n.第j个项目为Ij,该项目的第i个关键字就是Ki,Ki的权重为ωij。总项目数N的关键字为ni。关键字Ki在Ij中出现的次数为fij,出现的词频为TFij,在项目总数N中的出现的频率IDFi,fij反映出来的就是Ki在项目Ij的权重,关键字k.出现频率的最大值为maxzfzj。
  2.2 基于协同过滤的推荐
  基于协同过滤推荐(Collaborative Filtering.CF)是所有算法中应用最广的一种。“协同过滤”的概念是Goldberg在1992年最早提出来的。如果说CBF关键技术是“信息检索技术”,那么CF的关键技术就是“信息过滤技术”。CF与CBF两种推荐技术最本质的区别在于:CBF的推荐依据是用户的信息需求和项目信息内容的匹配关系,而CF的推荐依据是邻居用户与目标用户的匹配关系。也就是说,基于协同过滤推荐技术是把邻居用户感兴趣的项目信息,推荐与邻居用户具有相似兴趣的目标用户。也可以看作是现实生活中“口口相传”(word-of—mouth)的网络信息化的实现。所以,有的文献也把基于协同过滤推荐称之为社会推荐(SocialRecommendation)或社会过滤(Social Filtering)。   目标用户的邻居用户如何确定,这是基于协同过滤推荐系统的关键问题,也是最大的难点,更是最重要的目标。在基于协同过滤推荐的初期,邻居用户的确定是手工完成的,但随着访问平台用户的爆发式增长,手工已无法完成这么庞大的数据处理。所以,现在的CF系统一般通过建模与计算的方法来实现目标用户与邻居用户的相关性。于是,诞生了具有智能化特征的自动协同过滤推荐系统(Automatic
  Collaborative
  Recommender
  System.ACRS)。
  2.3 基于关联规则的推荐
  基于关联规则的推荐即关联规则的挖掘,又称为“知识的发现”(Knowledge Discovery inDatabase.KDD)。通过海量的、庞杂的数据挖掘与分析,把有价值的知识、有价值关联的数据挖掘出来,在商业决策中,这些关联性的知识和数据就可以提供很大的智力支持。
  在电商平台的推荐实践中,基于关联规则的推荐技术,主要是对每个用户购买记录、购买习惯进行分析,寻找不同服务、不同产品的内在逻辑与相互关系,根据这些内在的逻辑与联系,制定相关的关联规则,从而实现精准推荐,最终达到提高产品销量,增加经营效益的目的。
  只要是符合内在逻辑、符合关联规则的项目与产品,都可以为客户提供相对准确的推荐服务。但是,这种算法在运行过程中容易出现三个方面的问题:一是当数据量非常大的时候,为了关联规则的提取,系统将会被长时间占用,资源也将会被大量耗费:二是当关联规则非常多的时候,关联规则给整个系统带来的压力也是很大的;三是出现同名商品时,系统就很难判断用户与商品之间的联系与逻辑。
  2.4 基于网络结构的推荐
  基于网络结构的推荐又称“基于结构图的推荐”,这种推荐算法关键的技术就是构建“用户+项目”二维网络图。这个“用户+项目”的二维网络图,只考虑用户与项目的关系,而对于用户之间的关系,或者项目之间的关系不予考虑。这种推荐技术与协同过滤推荐技术相比,基于网络结构的推荐比较简单,并且也有一定的准确性。
  例如,Focus等人根据二维网络图的特性,测量相关两个节点间的相关度,提出了平均通勤时间(CT)、拉普拉斯矩阵的伪逆运算(L+)、卡茨矩阵(Katz)等几种具有较强代表性的相关度算法。无论哪种基于网络结构的算法,都是为了测量用户节点与项目节点的相关度,从而给目标用户推荐具有更高相关度的项目。很多研究者认为,只有二维的网络结构图虽然简单,但是缺陷还是很明显的。为此,Zhang L等人在用户一项目这个二维结构图上添加了“偏好”作为第三维,该算法创新性地提出了基于网络结构算法“用户-项目-兴趣”三维特性分析的思路。Hang CW等人则提出了基于网络结构算法“用户-项目-社交关系”的三维特性分析模型。这种三维结构网又被称为增强二维结构网。Shang M S等人还提出了一种将推荐过程转换为复杂网络中大规模扩散问题的方法,这种方法被称为基于网络结构的概率传播推荐方法,该算法精确度比二维与三维的推荐算法都高,原因就在于其考虑的因素最多、最复杂。各种推荐算法优劣势比较结果见表1。
  由于任何一种推荐算法都有优势与不足,因此当前的研究基本上都是采用几种算法相结合,以实现优势互补,从而使推荐系统更具个性化、更加智能化。
  2.5 混合推荐算法
  混合型推荐算法的基本思路人们可以用“1+1”的思维去理解,类似于集成学习的模式。通过几种常用算法的融合,实现不同算法的优势互补。因为协同过滤推荐算法无论是从科学性、适用性及解读性等方面都相对较好,所以一般情况下都是以协同过滤推荐算法作为基础,再融合其它算法的一些优势,实现优势互补。混合推荐算法可分为整体式、并行式、流水线式三大类。
  (1)整体式混合推荐算法。该算法又可以分为特征组合与特征补充两种方式,如图1所示,其中,推荐1代表该混合推荐算法中的第一种算法、推荐n代表的是该混合推荐算法中的第n种算法。
  (2)并行式混合推荐算法。该算法又分为加权、交叉和切换三种方式,如图2所示。其中,推荐1代表混合推荐算法中的第一种算法,推荐n所代表的是该混合推荐算法中的第n种算法。
  (3)流水线式混合推荐算法:分串联混合式、分级混合式两种。这种混合算法所得到的结果,可以作为另一种算法的输入。还可以用一种算法先作粗疏的过滤,然后再用另一种算法进行具体的推荐,如图3所示。其中,推荐1代表该混合推荐算法中的第一种算法,推荐n所代表的是该混合推荐算法中的第n种算法。
  3 推荐系统的关键技术
  推荐系统的关键技术主要包括:数据预处理、相似度计算、邻居选择算法、矩阵分解算法等。特别是邻居选择算法和矩阵分解算法两种算法是推荐系统中最为典型的协同过滤算法。
  3.1 数据预处理
  數据预处理主要解决两方面的问题,一是消除干扰性的信息因素,另一方面是消除用户原始数据中存在的各种问题。通常情况下是把经常使用的数据,按照用户对项目的评分,转换成不同的等级制度。这只是简单的划分,其中还会存在一些干扰推荐的信息因素或问题。例如,用户甲对一件购买过的商品评了4分,而实质上甲对同类商品的评分通常是3分。因为甲对这件商品非常喜欢,所以对这件商品的评分就超过了常规的尺度。其实这就是一种噪声,是干扰推荐决策的影响因素。所以,必须在进行推荐预测之前,要对用户的原始数据进行预处理。经常采用的方法有数据清洗、数据集成、数据变换和数据规约四种,
  为了便于分析与计算,首先要做的工作,就是用文字或数字表达用户对项目的喜好程度,见表2。
  从表2中可以看出,直接用评分的方式可以很好地体现用户对项目的兴趣与偏好程度。本文提出的推荐系统其实就是基于已有评分的项目或商品,对未评分的项目或商品做评分预测和推荐。这只是用户原始数据的初始化,推荐算法在处理的过程中,所要处理的数据往往是百万级别,甚至是亿万级别。如淘宝网推荐系统的数据,从2014年的数据来看,淘宝网有5亿多注册用户,每天有6000多万的固定访客,每天在线商品数8亿多件,平均每分钟售出4.8万件商品。在这么庞大的数据中,不可避免会存在数据的时间性、稀疏性、长尾性、主观性等问题。所以,如果要提高推荐系统的准确性,那就必须从不同方面、不同视角对原始数据进行分析和处理。   3.1.1 数据的时间性
  “世界上唯一不变的就是变”,用户的偏好与兴趣,也会发生变化,兴趣与偏好永远不变的用户是不存在的。当然,用户的兴趣与偏好变化是有一个过程的,这个过程就给研究分析用户在某一时间段的兴趣与偏好提供了可能。所以,推测用户的兴趣大概会在什么时候变化,会发生怎样的变化,这就是要研究的时间性问题之关键。时间性问题,主要有以下三个方面:
  (1)用户年龄的时间性。也就是说,用户关注感兴趣的商品会随着年龄的增长而发生改变。这是基于用户年龄变化的维度必须考虑的时间性问题。
  (2)项目、商品在生命周期上的时间性。通过分析并准确发现用户当下的兴趣时,也不能把任何相关的商品都盲目推荐给用户,还必须观察项目、商品所处的生命周期,而且还要准确判断项目的周期性有多长,进而准确判断项目大概会在什么时候过时。相对来说,新闻信息的生命周期短,名著、电影的生命周期长。只有明确项目的生命周期,才可根据用户的兴趣,有针对性地把相应的商品或项目应用到移动推荐服务中去。
  (3)季节变化上的时间性。季节的更替,四季的循环,一样会对用户的兴趣产生非常重要的影响。比如,在春、夏、秋、冬这四个不同的季节里,人们想购买的商品肯定是不太一样的。总之,只有符合季节与时令的推荐,才能更精准、更有效、更贴心。
  3.1.2数据的稀疏性
  数据稀疏性问题是传统的推荐系统普遍存在的问题。数据的稀疏性主要是指已知的用户偏好远远小于需要预测的用户偏好,造成这种情况主要原因是信息不断更新。因为信息过载等问题的存在,从而极大地影响了推荐的质量。总之,数据稀疏性问题是推荐系统研究领域的一大难题,经常采用数据填充和离线聚类等方法处理这一难题。
  3.1.3 数据的长尾性
  “长尾”(Long Tail)是指“畅销”产品,在统计图上只占前面的“头部”,后面还有一条很长的“尾巴”。也就是那些用户不重视、关注少、评分低的产品或项目。数据的长尾性就是如果只从项目评分的维度来推荐产品,就会出现一些本来质量与性能都很好的产品或项目,可用户却很少关注,而且所得的评分也很低,这就严重影响了推荐的准确性,
  3.1.4评价的主观性
  用户对任何一个项目进行评分,或多或少都会受到用户主观意识的影响。所说的主观意识,主要是指用户评分时所表现的性格因素、习惯行为等,与用户对项目的喜好程度关系不大。例如,有的用户对世界上的任何事物都感觉良好,所以其对任何项目的评分,基本上都会出现整体偏高的情况:而有的用户对任何事物都比较苛求,所以,对任何项目的评分,基本上都会出现整体偏低的情况。由表3可知,用户甲和用户乙在对相同项目的评分中,用户甲的评分普遍偏高,而用户乙的评分却普遍偏低。虽然评分是极具主观特点的个人行为,但是如果这样的数据趋势没有考虑进来,将会严重影响推荐模型的鉴别能力。
  为了解决评价中的主观性问题,引入了“全局作用”(简称GE)的概念,把由于用户本身极具主观特点的行为导致的数据趋势,考虑到模型的全局中,并引入全局作用公式:ru.m=θuXu.m+error
  在全局作用公式中,用户的原始评分值为ru.m,用户的个性参数为θu真正体现用户态度的评分值为Xu.m,在此用error参数,把用户评分的总体趋势考虑进来,
  如果用户评分的项目很多,可以先用公式(2),把Qu无偏估计算出来:
  由于采集到的数据往往都具有稀疏性特点,所以,用公式(2)计算得到的无偏估计也会出现偏差,在此必须引入公式(3):
  在公式(3)中,将用户的评价向量Pu作为一个重要因素考虑进来,并引入α这个指定的压缩参数,最终经过交叉验证,计算的结果具有更强的可靠性、更高的可信度。
  3.2 相似度计算
  通常用到的计算方法有五种:皮尔森相似度(Pearson Correlation)、余弦相似度、欧式距离相似度、Jaccard相似度和对数似然相似度。
  (1)皮尔森相似度(Pearson Correlation)。在推荐中应用最为广泛,可以利用公式(4)来计算。
  (2)余弦相似度(cosine similarity),又称为余弦相似性,是评价二维空间两个向量相似性的一种计算方法,用公式(5)表示为:
  假设向量α、b的坐标分别为(x1,y1)和(x2,y2),其表達式可以用公式(6)表示如下:
  在推荐系统实际应用中,其元素往往具有多维性,即向量A=(A1.A2.…,An),B=(B1.B2.…,Bn),公式(7)可以实现从二维推广到多维的计算。
  余弦COSθ的取值范围在[-1.1]之间,当余弦值越趋近1.两个向量就越趋近0.这表明两者相似度就越高。
  (3)欧氏距离相似度。如果用m来定义欧氏距离的相似度,那么欧氏距离相似度可用公式(8)表示:
  s=1/(1+m),(8)
  在公式(8)中,m的取值范围通常为[0.1],当s的值越大,两者的距离越近,当然其相似度也越高。
  (4)Jaccard相似度,可用公式(9)进行计算:EJ(a.B)=(A*B)/(||A||2+||B||2-A*B),
  (9)
  其中:A、B是Jaccard相似度的两个向量。集合中的每个元素,都代表着向量中的一个维度,每个维度的取值范围通常为[0.1],A*B则代表向量的乘积,||A||2表示向量的模,即:||A||2=sqrt(a12+a22+a32……)   (5)对数相似度。对于用户一项目、项目一项目这种二元关系的评估,最好采用对数相似度计算方法。用这种方法处理重叠的个数,处理无评分的数据,比其它计算方法更灵活、更智能。可用公式(10)进行计算。
  3.3 K最近邻分类算法
  K最近邻分类算法(k-Nearest Neighbor.kNN),又称邻居选择算法或邻近算法,这种算法是数据挖掘分类技术中最简单、最常用的推荐算法。因为其推荐效果较为精准,所以也是被最早使用于协同过滤推荐中的一种重要算法。K最近邻所表达的意思就是k个最近的邻居,原始数据中任何一个样本都可以用k个最近的邻居来代表。所以,kNN模型是一个基于“相似用户都具有相似兴趣”这样的假设或逻辑。如果利用kNN进行建模,其步骤分以下三步:
  (2)选取用户的邻居。首先设定k值,k是选取用户最近邻居的个数。利用皮尔森相似度计算公式进行相似度计算,其计算结果是一个按大小顺序排列的等级队列,k值可以根据模型的需要与特点进行调整。因为影响最终预测结果是k值,如果选取的用户太少,那么k值将偏小,如果把不相似的用户也选进来了,那么k值就会偏大,无论k值偏大还是偏小,都会影响到最后预测的准确精度。因此,k值的选取要适当。
  (3)通过公式(11)对用户评分进行预测。
  在K最近邻分类算法中,如果第一步相似度计算方法不同,或者第三步预测评分时所选取的公式不同,所获得的kNN推荐模型的最终结果就会不同。
  3.4 矩阵分解算法
  在推荐应用与实践中,数据稀疏性问题是一个大的技术挑战。为了更好地解决这个难题,本文引入了矩阵分解算法模型,这个模型不但简单有效,且较好地解决了数据的稀疏性问题,是基于协同过滤推荐中被广泛应用的算法。
  矩陣分解(Matrix decomposition)是《线性代数》“矩阵行列变换”中一个非常重要的概念,分为“矩阵行变换”与“矩阵列变换”。如果以矩阵A为例,单位矩阵A的行变换和列变换就可以表示为:A=PEQ=PQ。这种“矩阵行列变换”的概念应用到推荐系统中,就可以把矩阵A看作是用户对商品或对项目的评分,由A=PQ可知,P和Q就是用户对商品评分矩阵A的两个分矩阵,即用户因子矩阵、商品因子矩阵。那么“用户评分矩阵A”就变换成了“用户因子矩阵P”与“商品因子矩阵Q”两个分矩阵的乘积,如图4所示。
  由此可知,矩阵分解最基本的思想就是把一个矩阵拆分为几个矩阵的乘积。其分解的方法很多,一般情况下分为SVD(奇异值)分解、QR分解、三角分解、Jordan分解、满秩分解等。在推荐系统应用中,应用最多的方法就是SVD(奇异值)分解。如SVD算法就是在这种方法的基础上改进之后提出的。SVD算法最大的优势就是建立矩阵分解模型,挖掘用户隐形的数据信息,从技术上补充了显性数据信息的不足,运用公式(12)可进行计算。
  在公式(12)中,u代表用户对商品的平均评分,bu,bi所代表的都是用户对商品评分的偏置量。通过矩阵分解之后,pu代表用户向量;qi则是商品向量;I(u)是用户评分之后的商品集合;而yj是SVD分解算法的关键点,因为这是对隐形因素进行挖掘分析重要组成部分。
  在SVD分解算法深度挖掘用户隐形信息并分析的基础上,通过随机梯度下降算法,同时引入正则化因子,对矩阵分解模型进行迭代训练,使优化目标值更接近理想效果,从而建立预测模型。其优化之后的公式(13)如下:
  4 结束语
  针对移动电商平台的推荐系统是一件非常有意义的工作,但也是一件非常复杂、非常具有挑战性工作。本文主要对推荐系统的概念与内涵、推荐系统的分类进行了介绍,并在此基础上对推荐系统的关键技术进行了阐释。重点介绍了推荐算法中的关键要点与关键技术。数据预处理技术可以消除用户原始数据存在的各种问题,同时尽量减少对推荐决策产生干扰的影响因素。相似度计算技术是数据挖掘分类技术中最简单、最常用的推荐算法,也是推荐系统至关重要的关键技术,K最近邻分类算法技术不但可以简单有效地解决数据稀疏性问题,而且是一种基于协同过滤推荐中被广泛应用的算法与技术。
转载注明来源:https://www.xzbu.com/8/view-15125597.htm