CN106951489A - 一种用于稀疏大数据的个性化推荐方法和装置 - Google Patents
一种用于稀疏大数据的个性化推荐方法和装置 Download PDFInfo
- Publication number
- CN106951489A CN106951489A CN201710147999.6A CN201710147999A CN106951489A CN 106951489 A CN106951489 A CN 106951489A CN 201710147999 A CN201710147999 A CN 201710147999A CN 106951489 A CN106951489 A CN 106951489A
- Authority
- CN
- China
- Prior art keywords
- commodity
- user
- cluster
- matrix
- vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种用于稀疏大数据的个性化推荐方法和装置,通过用户历史行为数据库可以获取到用户与商品之间产生的行为记录,所以能高效、全面的搜寻到相关数据,从而生成用户与商品之间的行为矩阵,在用户与商品之间产生的行为记录较为稀疏时,通过商品之间的相似性将行为矩阵中的所有商品划分到商品簇集中的相应商品簇内,计算用户对各个商品簇的归属度,因此可以使用归属度来刻画用户,用户对商品簇的归属度可以使得每个用户的特征更加显著,基于归属度计算的用户的相似性更加精确,提高协同过滤中基于相似用户推荐的准确性。由于归属度矩阵的商品簇维度远远小于行为矩阵中商品的维度,大大节省用户相似性计算的时间和空间资源,提高推荐效率。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种用于稀疏大数据的个性化推荐方法和装置。
背景技术
随着互联网的飞速发展,目前已经开始出现很多的个性化推荐服务,这些个性化推荐服务能够根据用户的历史行为记录推荐给用户最可能符合其兴趣的信息。
现有技术中存在一种协同过滤的个性化推荐方法,该方法认为用户的兴趣在一段时间内是不变的,据此可以向用户推荐与其兴趣相似的用户感兴趣的商品,所以通常的推荐过程包括相似性计算和推荐产生两个步骤。用户的历史行为作为特征被用来刻画用户,然后根据用户间的相似性进行推荐。但是在实际应用中,用户和内容的规模都异常庞大。其中,内容指在实际的系统中向用户推荐的商品、音乐、视频、电子书籍等。用户的行为分布很不均匀,通常遵循幂律分布或韦伯分布,大部分用户只有少量的行为,对于单个用户,有过相应行为的内容相对所有内容是非常稀疏的,当用户行为较稀疏时,用户之间的共同行为往往比较少或者根本没有共同行为,所给出的这些推荐数据只能从较少的维度来刻画和了解一个用户,很难充分判断出用户的属性、消费水平及兴趣爱好等,因此推荐的结果是不充分的,甚至不够准确。
在目前的个性化推荐方法中,数据稀疏性会降低基于用户共同行为的相似性计算的准确性,进而引起推荐误差,同时也会造成对计算资源的浪费。因此,现有技术的个性化推荐方法中因存在数据稀疏性而导致推荐结果不准确,对计算资源的浪费也很严重。
发明内容
本发明的目的在于提供一种用于稀疏大数据的个性化推荐方法和装置,用于提高推荐的准确性,减少对计算资源的浪费,适用于稀疏大数据的场景下向用户推荐商品。
为了达到上述目的,本发明采用这样的如下技术方案:
一方面,本发明提供一种用于稀疏大数据的个性化推荐方法,包括:
从用户历史行为数据库中获取用户与商品之间产生的行为记录;
根据所述用户与商品之间产生的行为记录生成行为矩阵,所述行为矩阵中的每个元素对应一个用户对一个商品产生的行为数据,所述行为矩阵中的每一行表示一个用户的特征向量,所述行为矩阵中的每一列表示一个商品的特征向量;
根据所述行为矩阵中所有商品之间的相似性将所述所有商品分别划分到商品簇集中相应的商品簇内,所述商品簇集中包括多个商品簇;
计算所述行为矩阵中所有用户对所述商品簇集的归属度矩阵,所述归属度矩阵中的每一行表示一个用户对所述商品簇集中所有商品簇的归属度向量,所述归属度向量中的各个归属度值分别表示一个用户对一个商品簇的喜好程度;
根据所述每个用户对应的归属度矩阵中的归属度向量计算所述行为矩阵中用户之间的相似性,并根据计算得到所述用户之间的相似性对所述行为矩阵中的用户进行个性化推荐。
另一方面,本发明提供一种用于稀疏大数据的个性化推荐装置,包括:
行为记录获取模块,用于从用户历史行为数据库中获取用户与商品之间产生的行为记录;
行为矩阵生成模块,用于根据所述用户与商品之间产生的行为记录生成行为矩阵,所述行为矩阵中的每个元素对应一个用户对一个商品产生的行为数据,所述行为矩阵中的每一行表示一个用户的特征向量,所述行为矩阵中的每一列表示一个商品的特征向量;
商品聚类模块,用于根据所述行为矩阵中所有商品之间的相似性将所述所有商品分别划分到商品簇集中相应的商品簇内,所述商品簇集中包括多个商品簇;
归属度矩阵计算模块,用于计算所述行为矩阵中所有用户对所述商品簇集的归属度矩阵,所述归属度矩阵中的每一行表示一个用户对所述商品簇集中所有商品簇的归属度向量,所述归属度向量中的各个归属度值分别表示一个用户对一个商品簇的喜好程度;
个性化推荐模块,用于根据所述用户对应的归属度矩阵中的归属度向量计算所述行为矩阵中用户之间的相似性,并根据计算得到所述用户之间的相似性对所述行为矩阵中的用户进行个性化推荐。
采用上述技术方案后,本发明提供的技术方案将有如下优点:
本发明实施例中,通过用户历史行为数据库可以获取用户与商品之间产生的行为记录,所以能高效、全面的搜寻到相关数据,从而生成用户与商品之间的行为矩阵,由于用户与商品之间产生的行为记录为稀疏大数据,通过商品之间的相似性将行为矩阵中的所有商品划分到商品簇集中的相应商品簇内,从而对商品进行聚类,计算每个用户对商品簇的归属度,因此可以使用归属度来刻画用户,相对于现有技术中使用用户对单个商品的行为,通过商品聚类后得到商品簇集,用户对商品簇的归属度可以使得每个用户的特征更加显著,基于归属度计算的用户的相似性更加精确,从而提高提高协同过滤中基于相似用户推荐的准确性。由于归属度矩阵的商品簇维度远远小于行为矩阵中商品的维度,大大节省用户相似性计算的时间和空间资源,提高推荐效率。
附图说明
图1为本发明实施例提供的用于稀疏大数据的个性化推荐装置的一种组成结构示意图;
图2为本发明实施例提供用于稀疏大数据的个性化推荐方法的技术框架示意图;
图3为本发明实施例提供一种用于稀疏大数据的个性化推荐方法的流程方框示意图;
图4为本发明实施例提供将商品划分到商品簇的实现场景示意图;
图5为本发明实施例提供的粗粒化处理模块的组成结构示意图;
图6为本发明实施例提供的自组织特征映射模块的实现场景示意图;
图7为本发明实施例提供的评分预测模块的组成结构示意图;
图8为本发明实施例提供的用于稀疏大数据的个性化推荐装置的另一种组成结构示意图。
具体实施方式
本发明实施例提供了一种用于稀疏大数据的个性化推荐方法和装置,用于提高推荐的准确性,减少对计算资源的浪费,用于稀疏大数据的场景下向用户推荐商品。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本发明的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
本发明实施例首先提供一种用于稀疏大数据的个性化推荐装置,如图1所示,用于稀疏大数据的个性化推荐装置包括:数据获取模块、数据处理模块、个性化推荐模块,其中,数据获取模块包括:数据爬取模块和数据预处理模块,数据处理模块包括:粗粒化处理模块、归属度计算模块和相似性计算模块,个性化推荐模块可以包括:预测推荐模块和推荐展示模块。该用于稀疏大数据的个性化推荐装置可以基于图2所示的技术框架来实现,该用于稀疏大数据的个性化推荐装置可以执行后续图3所示的方法实施例中描述的用于稀疏大数据的个性化推荐方法。其中,用于稀疏大数据的个性化推荐装置中包括的各个模块可以执行后续方法实施例中的各个步骤,接下来分别对用于稀疏大数据的个性化推荐装置中各个模块执行的方法步骤流程进行详细说明。
本发明实施例提供了用于稀疏大数据的个性化推荐装置,其功能模块如如图1所示,本装置主要利用粗粒化方法处理大数据环境下形成的稀疏数据,基于处理后的数据精确地计算用户间的相似性,从而消除稀疏数据带来的推荐误差,不仅以提高个性化推荐系统的推荐效果为目标,也注重提升推荐算法的性能和可解释性。以下分别进行详细说明,在本发明的一个实施例提供一种用于稀疏大数据的个性化推荐方法,可以通过用于稀疏大数据的个性化推荐装置来执行,如图3所示,该方法可以包括如下步骤:
步骤101、从用户历史行为数据库中获取用户与商品之间产生的行为记录。
在本发明实施例中,用户历史行为数据库中存储有用户与商品之间行为记录,先通过数据爬取的方式获取用户与商品之间产生的行为记录,用户历史行为数据库中保存的是大数据,该大数据可能存在稀疏性,大部分用户只有少量的行为,对于单个用户,有过相应行为的内容相对所有内容是非常稀疏的,当用户行为较稀疏时,用户之间的共同行为往往比较少或者根本没有共同行为,所给出的这些推荐数据只能从较少的维度来刻画和了解一个用户,很难充分判断出用户的属性、消费水平及兴趣爱好等,因此推荐的结果是不充分的,甚至不够准确。其中,用户对商品的行为可以包括:浏览、收藏、评论等,本发明实施例中所指的商品可以也称为内容,商品指在实际的系统中能接收到的信息,例如在电商网站上指商品,或者其他一些应用了推荐系统的地方也可以指音乐(如网易云、潘多拉)、视频、书籍。行为记录是指用户对商品产生行为的数据,例如用户a购买过某个商品,或者浏览过某个商品,或者用户对某个商品做出了评价,给出了打分值等。
步骤102、根据用户与商品之间产生的行为记录生成行为矩阵,行为矩阵中的每个元素对应一个用户对一个商品产生的行为数据,行为矩阵中的每一行表示一个用户的特征向量,行为矩阵中的每一列表示一个商品的特征向量。
在本发明实施例中,通过爬取用户历史行为数据库,可以提取出多个用户分别对商品产生的行为记录,使用用户与商品之间产生的行为记录可以生成行为矩阵,在行为矩阵中的每个元素对应一个用户对一个商品产生的行为数据,该行为矩阵的行表示用户,行为矩阵的列表示商品,则行为矩阵中的每一行表示一个用户的特征向量,行为矩阵中的每一列表示一个商品的特征向量,通过生成行为矩阵可以将用户与商品的行为记录准确的记录下来。
举例说明如下,步骤101和步骤102可以通过图1所示的数据获取模块来完成,该数据获取模块通过网络爬虫收集相关用户的行为信息,并对收集到的数据进行清洗,转换成后续计算所需的数据形式,此模块主要包括数据爬取和数据预处理模块。
首先对数据爬取模块进行说明,当爬取的用户行为的类型不同时所爬取的数据内容也不同。如果爬取的是用户的浏览(或收藏)行为,则每条浏览(或收藏)信息包含:用户UserID、商品ItemID、浏览(或收藏)时间。如果是用户的购买行为,则每条购买信息包括:用户UserID、商品ItemID、购买时间、购买数量。如果是评分行为,则每条评分信息包括:用户UserID、商品ItemID、评分时间、评分值。
接下来对数据预处理模块进行说明,为了后续计算的方便,需将爬取到的数据进行去噪、转换预处理,形成计算所需的统一的行为矩阵形式,这个行为矩阵即后续描述的W。不管是哪种类型的数据,首先需要清理数据中的冗余、不完整、非法字符等脏数据。举例说明,需要爬取用户的浏览信息,那么可能会出现数据重复的情况,例如有两条记录完全是一样的,这就需要进行去重处理。还有一些可能会出现爬取的数据有缺省的情况,比如在获取用户的评分数据时,只有用户和评分,但是没有对应的商品的情况,这就需要把这些缺省数据过滤掉,例如可以通过编程来过滤掉这些噪声数据。数据转换是将不同形式的数据转换成统一的形式,主要是根据后面算法的需要,将数据转成成算法计算需要的基础数据形式。其次,将处理后的数据转换成行为矩阵W,其中,对于行为矩阵中的元素Wij,若是浏览数据,则Wij表示用户i浏览商品j的次数;若是购买数据,则Wij表示购买数量;若是评分数据,则Wij表示具体评分值;若是收藏数据,则Wij=1表示用户收藏过商品,0则表示没有收藏过。行为矩阵中的每一行可以表示一个用户的特征向量,每一列可以表示一个商品的特征向量。
步骤103、根据行为矩阵中所有商品之间的相似性将所有商品分别划分到商品簇集中相应的商品簇内,商品簇集中包括多个商品簇。
在本发明实施例中,用户与商品之间产品的行为记录为稀疏大数据时,可以通过粗粒化发现被推荐商品之间的潜在关系,将每一个商品划分到相应的商品簇(后续实施例中也可以简称为簇)中,将原始用户对单个商品的行为转换成用户对商品簇的喜好,以解决数据稀疏性问题。使用粗粒化后的数据表征用户,相较于使用用户对商品的稀疏行为数据来表征一个用户进行相似性计算,本发明实施例中通过将商品归属到商品簇,从而得到的用户特征更加鲜明,相似性计算更加准确可靠,同时也可以降低推荐过程的时间复杂度。
举例说明如下,前述的步骤103可以通过如图1所示的数据处理模块来完成,拟使用粗粒化的方法对稀疏数据进行处理。粗粒化是通过不分明的关系、相似关系、邻近关系或功能关系等对一个论域进行划分形成子集、类或簇的过程。粗粒化是对原始论域的一个映射过程,粗粒化后的数据相对于原始数据特征更加鲜明、粒度间差异性更大。在本发明实施例提供的装置中,通过粗粒化发现被推荐商品之间的潜在关系,将每一个商品划分到相应的簇中,一个商品属于一个簇,每次取出一个商品,然后决定将这个商品划分到其中一个簇,直到所有商品都划分到簇中。将原始用户对单个商品的行为转换成用户对商品簇的喜好,以解决数据稀疏性问题。使用粗粒化后的数据表征用户,相较于使用用户对商品的稀疏行为数据来表征一个用户,进行相似性计算,前者用户特征更加鲜明,相似性计算更加准确可靠,同时也可以降低推荐过程的时间复杂度。
商品数据的粗粒化处理方式可以如图4所示。在本发明实施例中,行为矩阵中每个列单独表示一个商品的特征向量,若有多少种商品,行为矩阵中就会存在多少个列,商品在划分中商品簇时需要依据商品之间的相似性,举例说明如下,行为矩阵中共有8个商品,分别为商品1、商品2、….、商品8,最终行为的商品簇集共有两个,分别为簇1和簇2,则根据商品之间的相似性可以将商品1至商品4划分到商品簇1中,将商品5至商品8划分到商品簇2,则用户对商品之间产生的行为记录,就可以转换为用户对商品簇的归属度,从而减少因为数据稀疏性的影响造成的推荐结果不准确。本发明实施例中将多个商品分别划分到商品簇中可以有多种方式,接下来分别进行举例说明。
在本发明的一些实施例中,如图5所示,粗粒化处理模块可以包括:K均值聚类模块、自组织特征映射模块,首先对K均值聚类模块的实现方式进行举例说明。在本发明的一些实施例中,步骤103根据行为矩阵中所有商品之间的相似性将所有商品分别划分到商品簇集中相应的商品簇内,包括:
步骤a、获取商品簇集中k个商品簇的当前均值向量{μ1,μ2,...,μk},k表示商品簇集中的商品簇个数;
步骤b、计算行为矩阵中商品Ii分别与k个商品簇的当前均值向量之间的距离,将商品Ii归入与商品Ii之间距离取值最小的当前均值向量对应的商品簇,Ii表示行为矩阵中的任意一个商品的特征向量;
步骤c、当行为矩阵中所有商品都归入到商品簇集中的一个商品簇之后,通过如下计算方式重新计算商品簇集中k个商品簇的均值向量:
其中,μ′i表示重新计算得到的商品簇集中第i个商品簇的均值向量,|ci|表示第i个商品簇中的商品个数,Ij表示行为矩阵中第j个商品的特征向量;
步骤d、判断重新计算得到的均值向量μ′i和第i个商品簇的当前均值向量μi之间的差值是否大于预置的误差门限,若μ′i和μi之间的差值大于误差门限,将μi更新为重新计算得到的μ′i,否则不更新μi,通过步骤d的方式再次获取当前商品簇集中k个商品簇的均值向量;
步骤e、重复依次执行步骤a至步骤d,当商品簇集中k个商品簇的更新前后的均值向量之间的差值总和小于或等于预置的第一误差总门限时,停止执行前述步骤a至步骤d的迭代过程,确定商品簇集中k个商品簇的当前均值向量为k个商品簇的代表向量,输出最终形成的商品簇集,其中,最终形成的商品簇集中每个商品簇至少包括行为矩阵中的一个商品。
需要说明的是,步骤a至步骤d描述了一个具体的循环处理过程,步骤d中的误差门限可以根据具体的实现场景来确定其取值,步骤e中的第一误差总门限也是根据具体的实现场景确定其取值的,当商品簇集中k个商品簇的更新前后的均值向量之间的差值总和小于或等于预置的第一误差总门限时,步骤a至步骤d所描述的循环过程停止迭代,此时输出最终形成的商品簇集。
在前述的步骤a至步骤e中,记载了使用K均值(K-Means)聚类的方式将多个商品分别划分到相应的商品簇。进一步的,在本发明的一些实施例中,在所述步骤a执行之前,所述方法还包括:
从行为矩阵中随机选择k个商品的特征向量作为商品簇集中k个商品簇的初始均值向量,k个商品中的一个商品的特征向量作为商品簇集中一个商品簇的初始均值向量,在首次执行步骤a时,将k个商品簇的初始均值向量作为k个商品簇的当前均值向量。
其中,在步骤a至步骤d的循环过程中,可以采用k个商品的特征向量作为商品簇集中k个商品簇的初始均值向量。
在本发明实施例提供的装置中,可以有两种不同的粗粒化处理方法可供选择,K均值聚类算法和自组织特征映射,步骤a至步骤e记载了K均值(K-Means)聚类模块所执行的方法步骤,接下来对步骤a至步骤e进行详细说明。此模块的输入为用户的行为矩阵,处理的对象是该矩阵中代表商品的每一列向量,即每一个商品的特征向量,那么对于每一个商品,用矩阵中的一列向可以用I={w1I,w2I,...,wNI}来表示,处理的结果是彼此之间相似的商品聚为一簇,使不同簇的商品之间相似性较小。
在前述的步骤a中,从商品集中随机选择k个商品的特征向量作为初始均值向量{μ1,μ2,...,μk},k的取值可以根据应用场景灵活配置,一般最大值是50左右,最小是10左右。即从W矩阵中随机选择k列向量作为初始均值向量,每一个均值向量作为簇集C={c1,c2,...,ck}相应簇的代表向量,例如,c1这个簇的初始均值向量就用μ1来表示,初始的簇均为空集。
在前述的步骤b中,对于每一个商品Ii,计算商品Ii与每一个均值向量μj的距离dij=||Ii-μj||2,Ii是所有商品中的第i个商品。通过计算这个商品与每个簇中心的距离,将其归入到距离最近的那一簇,每个商品作这个计算就可以将所有商品归入到相应的簇了,所有商品这样计算计算后,每个簇里面就会包含一些商品。将商品Ii归入与其距离最近的均值向量代表的那一簇,商品Ii会分别计算与所有的均值向量的距离,找出这些距离中最小的,那么得到这个最小距离的均值向量代表的那一簇就是商品要归入的簇。
在前述的步骤c中,在所有的商品归入到相应的簇之后,对每一个簇,重新计算它的均值向量ci是第i个商品簇中的商品个数,可以说代表第i个簇,就相当于标记第i个簇的一个代表标签,μi是第i个簇的均值向量,它代表第i个簇与商品计算距离。如果μ′i≠μi或者这两者之间的距离大于某一个阈值,则将当前均值向量μi更新为μ′i,也就是说当前所有的均值向量为{μ1,μ2,...,μk},重新计算后的均值向量为{μ′1,μ′2,...,μ′k}。
在前述的步骤d中,一种可行的方式是,在均值向量更新后,计算更新前和更新后的均值向量之间的误差和,即使用公式另一种可行的方式是,当前述中计算的误差小于一个阈值时,停止上述迭代过程,此时形成的簇C={c1,c2,...,ck},最小化平方误差最小化平方误差表示当聚类结束,或者聚类趋于稳定。这个时候不管怎么进行重新计算,将商品分配到簇,簇里面的商品基本是不会变化的。这个平方误差的计算方式与之前的距离计算是一样的,所以也可以理解为,这个时候每个商品与它所在的簇的均值向量的距离是最小的,那样整体和就是最小的。
经过前述的K均值聚类模块,原来的M个商品最终分布在K个簇中,在同一个簇中的商品较相似,不同簇之间的商品相似性较小。
在本发明的另一些实施例中,步骤103根据行为矩阵中所有商品之间的相似性将所有商品分别划分到商品簇集中相应的商品簇内,包括:
步骤1、将行为矩阵中每个商品的特征向量依次输入自组织特征映射(Self-Organizing Mapping,SOM)模型的输入层中,SOM模型包括:输入层和输出层,输出层包括:k个原型节点,每个原型节点代表商品簇集中一个商品簇,每个原型节点具有相应的特征向量和空间的位置向量,k表示商品簇集中的商品簇个数;
步骤2、当SOM模型的输入层中输入商品I(t)的特征向量时,获取SOM模型的网络参数,SOM模型的网络参数,包括:第t次更新被激活的原型节点和其邻域内的其它原型节点时得到的学习率α(t)和高斯参数σ(t),t表示SOM模型的输入层中输入的商品个数,同时t也表示更新次数;
α(t)通过如下计算方式得到:
α(t)=α0exp(-t/τα),α0表示初始学习率,τα表示计算α(t)时使用的常量参数;
σ(t)通过如下计算方式得到:
σ0表示初始的高斯参数,τσ表示计算σ(t)时使用的常量参数;
步骤3、计算商品I(t)的特征向量分别与输出层中k个原型节点的特征向量之间的距离,从k个原型节点中选择与商品I(t)之间距离取值最小的原型节点作为当前的激活节点μi(t);
步骤4、根据输出层中除激活节点μi(t)以外的其它原型节点与被激活节点μi(t)之间的距离通过如下计算方式更新激活节点μi(t)的邻域内的其它原型节点:
μj(t+1)=μj(t)+hji(t)(I(t)-μj(t)),
其中,μj(t+1)表示激活节点μi(t)的邻域内在第t+1次更新时的其它原型节点,j表示输出层中的第j个原型节点,μj(t)表示激活节点μi(t)的邻域内在第t次更新时的其它原型节点,hji(t)表示激活节点μi(t)的邻域函数;
hji(t)通过如下计算公式得到:
hji(t)=α(t)exp(-dist(rj,ri)2/(2σ2(t))),
其中,α(t)表示第t次更新被激活的原型节点和其邻域内的其它原型节点时得到的学习率,σ(t)表示第t次更新被激活的原型节点和其邻域内的其它原型节点时得到的高斯参数,rj表示第j个原型节点的位置向量,ri表示第i个原型节点的位置向量;
步骤5、重复依次执行步骤1至步骤4,当第t+1次更新的k个原型节点特征向量与第t次更新的k个原型节点之间的特征向量之间的差值总和小于或等于预置的第二误差总门限时,停止执行前述步骤1至步骤4的迭代过程,确定商品簇集中k个原型节点的特征向量为k个商品簇的代表向量;
步骤6、计算行为矩阵中商品Ii分别与k个原型节点的特征向量的距离,将商品Ii归入与商品Ii之间距离取值最小的特征向量对应的商品簇,Ii表示行为矩阵中的任意一个商品的特征向量,其中,最终形成的商品簇集中每个商品簇至少包括行为矩阵中的一个商品。
在本发明实施例提供的装置中,除了采用K均值聚类算法进行粗粒化处理,还可以采用自组织特征映射算法进行粗粒化处理,步骤1至步骤6记载了自组织特征映射(SOM)模块所执行的方法步骤,接下来对步骤1至步骤6进行详细说明。由于高维数据很难直观地表示出来,如果可以将高维空间数据映射到低维(二维或三维)空间,并能在拓扑关系上保留原数据分布的情况,那么就可以从低维空间数据的分布了解它们在原数据空间中的关系。这种映射在神经元网络中的方法被称为自组织特征映射,如图6所示,SOM模型包括:输入层(Input Layer)和输出层(Output Layer),该模块的输入为用户的行为矩阵W中的一列向量,即商品的特征向量,最终输出的是每个商品的簇标签。输入层每次输入一个商品的特征向量,输出层则是由所有的原型节点形成,其中,原型节点的代表向量的作用与K-Means中代表簇的均值向量的作用是类似的,在聚类的最后,可以通过计算每个商品的特征向量与原型节点的代表向量的距离,将商品归入到相应的原型节点代表的簇中。
与K-Means算法不同的是,SOM不仅需要初始化原型为{μ1,μ2,...,μk},μi表示的是簇i的代表向量,也叫特征向量,还需初始化每个原型的n维特征向量和空间的位置向量每次训练一个商品,通过计算该商品与原型(使用特征向量计算)的距离,这个与前述的K-Means算法中的每个点与簇的均值向量的距离计算公式相类似,这里计算的是每个点与簇的代表向量的距离。通过计算商品与原型的距离,激活与该商品距离最近的原型节点,同时更新该被激活的原型节点和其邻域内的其他原型节点,使得输出层的这些原型节点与当前输入的商品节点更相似,邻域的其他输出节点与激活节点的距离决定了其它输出节点的代表向量的更新。如果一个二维平面有一个点,那么这个点既有坐标形成的位置向量,也有它对应的与位置无关的特征向量。
接下来对自组织特征映射模块执行的步骤1至步骤6进行举例说明,计算过程如下,其中的t均表示第t次更新,也可以表示输入商品节点的个数,因为每次输入一个节点,就会更新一次。首先在步骤1和步骤2中,确定SOM网格的拓扑结构,初始化参数α0、τα、σ0、τσ,其中,α0表示初始的学习率,α(t)在α0的基础上进行更新,它决定了激活节点的领域中的其他原型节点的代表向量的更新,可以控制算法最后停止的快慢。τα是一个常量参数,用于计算α(t),并且初始化原型向量(即质心){μ1,μ2,...,μk}。σ0是初始的高斯参数,它控制更新邻域的宽度,σ0是计算σ(t)时会用到的常量参数。
在步骤3中,选择当前输入的商品I(t),计算商品I(t)到各个原型节点的距离,选择距离最近的原型节点作为当前的激活点μi(t),μi(t)表示原型向量。
在步骤4中,根据输出层其他原型节点与当前被激活的原型节点之间的距离,使用下面的方法更新当前被激活的原型节点邻域内的其他原型节点:
μj(t+1)=μj(t)+hji(t)(I(t)-μj(t)),
其中,j表示当前质心领域内第j个质心,μj(t+1)表示第j个原型节点在第t+1轮的代表向量,hji(t)是领域函数,它决定了第j个原型节点与当前已经被激活的原型节点i的距离,对原型节点j的代表向量更新的影响,计算公式如下:
hji(t)=α(t)exp(-dist(rj,ri)2/(2σ2(t)))。
在步骤5中,依次输入每个商品,重复前述的步骤,直到聚类结果收敛,判断收敛的标准跟前面的K-Means算法类似,就是每个原型节点的代表向量的变化很小或者不变,即已经达到了设定的迭代次数,或者各个原型节点的代表向量变化很小或不变,则停止迭代。
对每一个商品,通过计算其与原型节点的距离,将商品指派到与其距离最近的原型节点所代表的那一簇。如果每一个原型节点有一个唯一的标签,将距离最近的那一个原型节点的标签赋予商品,最后标签相同的商品就归为一类。与K-Means聚类模块一样,经过自组织特征映射,原来的M个商品最终分布在K个簇中,每个簇中包含一定数目的商品。
步骤104、计算行为矩阵中所有用户对商品簇集的归属度矩阵,归属度矩阵中的每一行表示一个用户对商品簇集中所有商品簇的归属度向量,归属度向量中的各个归属度值分别表示一个用户对一个商品簇的喜好程度。
在本发明实施例中,行为矩阵中的所有商品分别划分到商品簇集中的一个商品簇,可以将用户对商品的喜好程度转换为用户对商品簇的喜好程度,从而解决用户行为数据稀疏性导致的推荐结果不准确的问题,本发明实施例中使用归属度向量阵来表征用户特征,其中,每个用户和各个商品簇之间的归属度关系可以形成归属度矩阵,所述归属度矩阵中的每一行代表一个用户的归属度向量,一个归属度矩阵可以包括:每个用户分别对商品簇集中所有商品簇的归属度,归属度向量中的各个归属度值分别表示一个用户对一个商品簇的喜好程度。
在本发明的一些实施例中,步骤104计算行为矩阵中所有用户对商品簇集的归属度矩阵,包括:
通过如下方式计算行为矩阵中用户u对商品簇c的归属度:
其中,βuc表示用户u对商品簇c的归属度矩阵,Nu表示用户u对商品簇c中产生过行为的商品个数,Nc表示商品簇c中的商品总个数。
举例说明如下,可以通过归属度计算模块来计算每个用户的归属度矩阵,基于粗粒化处理后的数据,归属度计算模块可以采用如下的归属度算法,计算用户u对某一商品簇c的归属度,用βuc表示,这个归属度与用户选择过的商品有关,可以表示用户对每一个商品簇的喜好程度,如果用户在某一商品簇中有过行为的商品越多,说明用户对这个商品簇的喜好度越大,|Nc∩Nu|是用户有过行为同时也在商品簇c中的商品的个数。用户有过行为的商品在某一簇中分布得越多,说明用户对该簇的关注度越高,对该簇的兴趣也越大。通过此归属度的计算,将原来用户对单个商品的行为转换成了用户对各个商品簇的喜好,转换后的喜好度矩阵相比于之前的行为矩阵更加稠密。举例说明,一般聚类之后的簇个数最大是50左右,而在用户的行为矩阵有n*m个元素,其中非零元素所占的比例就是该矩阵的密度,而经过聚类后的商品簇矩阵有n*50个元素,而m>>50,这样计算出来的密度的话,后者是要比前者稠密的。经过对商品的粗粒化处理,用户的行为向量维度会大大降低,也降低了用户间相似性计算的复杂度。商品的数量是远远大于簇的数量的,那么在计算用户的相似性时,用喜好度向量表征一个用户,相较于行为向量来表征一个用户,向量的维度是大大降低的。
步骤105、根据每个用户对应的归属度矩阵中的归属度向量计算行为矩阵中用户之间的相似性,并根据计算得到用户之间的相似性对行为矩阵中的用户进行个性化推荐。
在本发明实施例中,对于行为矩阵中的所有用户,与所有簇形成的归属度关系可以形成一个归属度矩阵,通过归属度矩阵中用户的归属度向量计算行为矩阵中用户之间的相似性,从而减少稀疏大数据对相似性计算的结果影响。具体的,步骤105中的根据每个用户对应的归属度矩阵中的归属度向量计算行为矩阵中用户之间的相似性,包括:
通过如下计算方式得到行为矩阵中两个用户之间的相似度:
其中,Suv表示用户u与用户v之间的相似性,βui表示用户u对商品簇c中的第i个商品簇的归属度向量,βvi表示用户v对商品簇c中的第i个商品簇的归属度向量。
举例说明如下,前述的计算过程可以通过相似性计算模块来完成,本发明实施例中提供的相似性计算区别于现有技术的相似性计算方法,本发明实施例中用归属度来表征用户,基于用户的特征,计算用户的相似性,为后面的推荐作铺垫,通过用户归属度的定义,将原本相似性计算的用户的m维数据转换成了k维数据,很好地解决了大数据稀疏性带来的相似性计算不准确的问题,并大大降低了计算的时间和空间成本。在真实的推荐系统中,用户对单个商品的行为是具有偶然性的,比如用户买一件商品,可能只是出于刚好需要,如果用这种偶然行为来表征一个用户的话,其实对用户的评估是有误差的,但是如果用户对某一簇商品有较多行为的话,可以说明用户对这一类商品比价关注,那么该用户再对这个簇里面的商品有行为的可能性就比其他簇大。本发明实施例中计算两个用户的相似性时不再使用单个的微观对象评分,这个评分具有偶然性,而是基于用户的宏观类别喜好来衡量用户的相似性。
在本发明的一些实施例中,步骤105中的根据计算得到用户之间的相似性对行为矩阵中的用户进行个性化推荐,包括:
步骤A1、根据计算得到用户之间的相似性为行为矩阵中的用户对行为矩阵中没有产生过行为的商品进行预测评分;或,
步骤A2、根据计算得到用户之间的相似性为行为矩阵中的用户生成商品推荐列表。
其中,向用户进行个性化推荐可以有多种方式,例如预测用户对未产生行为的商品的评分,或者向用户生成推荐列表,具体可以不同的场景来确定具体的实现方式。
在本发明的一些实施例中,步骤A1根据计算得到用户之间的相似性为行为矩阵中的用户对行为矩阵中没有产生过行为的商品进行预测评分,包括:
通过如下计算方式计算行为矩阵中用户u对行为矩阵中没有产生过行为的商品进行预测评分:
其中,ru,p表示对用户u对商品p的预测评分,表示用户u给出的平均评分值,L表示归一化因子,表示对商品p产生过行为的所有用户中与用户u最相似的前N个用户的集合,Suv表示用户u与用户u的相似用户v之间的相似性,rv,p表示对相似用户v对商品p的实际评分值;
其中,L通过如下计算方式计算得到:
v表示中的任意一个用户,Suv表示用户u与相似用户v之间的相似性。
在本发明的一些实施例中,步骤A2根据计算得到用户之间的相似性为行为矩阵中的用户生成商品推荐列表,包括:
通过如下计算方式预测行为矩阵中用户u对行为矩阵中的商品p产生行为的预测分值:
其中,ru,p表示对用户u对商品p的预测分值,表示对商品p产生过行为的所有用户中与用户u最相似的前N个用户的集合,Suv表示用户u与用户u的相似用户v之间的相似性,Wv,p的取值为1时,表示相似用户v对商品p产生过行为,Wv,p的取值为0时,表示相似用户v没有对商品p产生行为。
举例说明如下,步骤105可以通过个性化推荐模块来完成,本发明实施例根据不同的数据输入以及推荐需求,产生预测评分和推荐列表两种结果,针对用户的评分数据的输入,最终可以产生预测评分和推荐列表,而对于用户其他的行为,一般产生推荐列表。如图7所示,个性化推荐模块包括:预测评分模块和推荐列表模块。首先对预测评分模块进行举例说明,对于电影、音乐、书籍等这一类商品,用户会对这些商品做出评分以表示自己对其的喜欢程度,因此对用户的评分行为预测是本发明实施例的输出结果之一。通过归一化解决了用户的评分尺度不一致的问题。接下来对推荐列表模块进行举例说明,本发明实施例中也可以预测用户对其没有交互行为的商品的可能行为,比如在电商网站上的浏览、购买、收藏行为等,而这些行为代表着用户对商品的某种关注。通过前述的计算公式,可以预测用户对其没有历史行为的商品的喜好度,通过对用户所有有喜好度预测的商品的喜好度的排序,本发明实施例可以找出前L个用户最可能感兴趣的商品推荐给该用户。
在本发明的一些实施例中,还可以采用推荐展示模块将前述产生的个性化推荐结果在本模块展示,包括预测评分的展示和推荐列表的展示,如图3所示。本发明实施例中由于采取了数据爬取模块,所以能高效、全面的搜寻到相关数据。由于使用归属度来刻画用户,相对于使用用户对单个商品的行为,前者用户的特征更加显著,基于归属度计算的用户的相似性更加有说服力,从而提高提高协同过滤中基于相似用户推荐的准确性。由于归属度矩阵的商品簇维度远远小于行为矩阵中商品的维度,大大节省用户相似性计算的时间和空间资源,提高推荐效率。
前述实施例介绍本发明实施例提供的用于稀疏大数据的个性化推荐方法,接下来介绍本发明实施例提供的另一种用于稀疏大数据的个性化推荐装置,请参阅图8所示,包括:
行为记录获取模块,用于从用户历史行为数据库中获取用户与商品之间产生的行为记录;
行为矩阵生成模块,用于根据所述用户与商品之间产生的行为记录生成行为矩阵,所述行为矩阵中的每个元素对应一个用户对一个商品产生的行为数据,所述行为矩阵中的每一行表示一个用户的特征向量,所述行为矩阵中的每一列表示一个商品的特征向量;
商品聚类模块,用于根据所述行为矩阵中所有商品之间的相似性将所述所有商品分别划分到商品簇集中相应的商品簇内,所述商品簇集中包括多个商品簇;
归属度矩阵计算模块,用于分别计算所述行为矩阵中每个用户对所述商品簇集的归属度矩阵,所述归属度矩阵中包括:一个用户分别对所述商品簇集中所有商品簇的归属度向量,归属度向量中的各个归属度值分别表示一个用户对一个商品簇内各个商品的喜好程度;
个性化推荐模块,用于根据所述用户对应的归属度矩阵中的归属度向量计算所述行为矩阵中用户之间的相似性,并根据计算得到所述用户之间的相似性对所述行为矩阵中的用户进行个性化推荐。
在本发明的一些实施例中,商品聚类模块,具体用于执行如下步骤:
步骤a、获取商品簇集中k个商品簇的当前均值向量{μ1,μ2,...,μk},所述k表示商品簇集中的商品簇个数;
步骤b、计算所述行为矩阵中商品Ii分别与所述k个商品簇的当前均值向量之间的距离,将所述商品Ii归入与所述商品Ii之间距离取值最小的当前均值向量对应的商品簇,所述Ii表示所述行为矩阵中的任意一个商品的特征向量;
步骤c、当所述行为矩阵中所有商品都归入到所述商品簇集中的一个商品簇之后,通过如下计算方式重新计算所述商品簇集中k个商品簇的均值向量:
其中,所述μ′i表示重新计算得到的所述商品簇集中第i个商品簇的均值向量,所述|ci|表示第i个商品簇中的商品个数,所述Ij表示所述行为矩阵中第j个商品的特征向量;
步骤d、判断所述重新计算得到的均值向量μ′i和第i个商品簇的当前均值向量μi之间的差值是否大于预置的误差门限,若所述μ′i和所述μi之间的差值大于所述误差门限,将所述μi更新为重新计算得到的μ′i,否则不更新所述μi,通过步骤d的方式再次获取当前商品簇集中k个商品簇的均值向量;
步骤e、重复依次执行步骤a至步骤d,当所述商品簇集中k个商品簇的更新前后的均值向量之间的差值总和小于或等于预置的第一误差总门限时,停止执行前述步骤a至步骤d的迭代过程,确定所述商品簇集中k个商品簇的当前均值向量为k个商品簇的代表向量,输出最终形成的商品簇集,其中,最终形成的商品簇集中每个商品簇至少包括所述行为矩阵中的一个商品。
在本发明的另一些实施例中,商品聚类模块,还用于执行如下步骤:在所述步骤a执行之前,从所述行为矩阵中随机选择k个商品的特征向量作为商品簇集中k个商品簇的初始均值向量,所述k个商品中的一个商品的特征向量作为所述商品簇集中一个商品簇的初始均值向量,在首次执行步骤a时,将所述k个商品簇的初始均值向量作为k个商品簇的当前均值向量。
在本发明的一些实施例中,商品聚类模块,具体用于执行如下步骤:
步骤1、将所述行为矩阵中每个商品的特征向量依次输入自组织特征映射SOM模型的输入层中,所述SOM模型包括:所述输入层和输出层,所述输出层包括:k个原型节点,每个所述原型节点代表所述商品簇集中一个商品簇,每个所述原型节点具有相应的特征向量和空间的位置向量,所述k表示所述商品簇集中的商品簇个数;
步骤2、当所述SOM模型的输入层中输入商品I(t)的特征向量时,获取所述SOM模型的网络参数,所述SOM模型的网络参数,包括:第t次更新被激活的原型节点和其邻域内的其它原型节点时得到的学习率α(t)和高斯参数σ(t),所述t表示所述SOM模型的输入层中输入的商品个数以及表示输出层更新的次数;
所述α(t)通过如下计算方式得到:
α(t)=α0exp(-t/τα),所述α0表示初始学习率,所述τα表示计算所述α(t)时使用的常量参数;
所述σ(t)通过如下计算方式得到:
所述σ0表示初始的高斯参数,所述τσ表示计算所述σ(t)时使用的常量参数;
步骤3、计算所述商品I(t)的特征向量分别与所述输出层中k个原型节点的特征向量之间的距离,从所述k个原型节点中选择与所述商品I(t)之间距离取值最小的原型节点作为当前的激活节点μi(t);
步骤4、根据所述输出层中除所述激活节点μi(t)以外的其它原型节点与所述被激活节点μi(t)之间的距离,通过如下计算方式更新所述激活节点μi(t)的邻域内的其它原型节点:
μj(t+1)=μj(t)+hji(t)(I(t)-μj(t)),
其中,所述μj(t+1)表示所述激活节点μi(t)的邻域内在第t+1次更新时的其它原型节点,所述j表示所述输出层中的第j个原型节点,所述μj(t)表示所述激活节点μi(t)的邻域内在第t次更新时的其它原型节点,所述hji(t)表示所述激活节点μi(t)的邻域函数;
所述hji(t)通过如下计算公式得到:
hji(t)=α(t)exp(-dist(rj,ri)2/(2σ2(t))),
其中,所述α(t)表示第t次更新被激活的原型节点和其邻域内的其它原型节点时得到的学习率,所述σ(t)表示第t次更新被激活的原型节点和其邻域内的其它原型节点时得到的高斯参数,所述rj表示第j个原型节点的位置向量,所述ri表示第i个原型节点的位置向量;
步骤5、重复依次执行步骤1至步骤4,当第t+1次更新的k个原型节点特征向量与第t次更新的k个原型节点之间的特征向量之间的差值总和小于或等于预置的第二误差总门限时,停止执行前述步骤1至步骤4的迭代过程,确定所述商品簇集中k个原型节点的特征向量为k个商品簇的代表向量;
步骤6、计算所述行为矩阵中商品Ii分别与所述k个原型节点的特征向量的距离,将所述商品Ii归入与所述商品Ii之间距离取值最小的特征向量对应的商品簇,所述Ii表示所述行为矩阵中的任意一个商品的特征向量,其中,最终形成的商品簇集中每个商品簇至少包括所述行为矩阵中的一个商品。
在本发明的一些实施例中,归属度矩阵计算模块,具体用于执行如下步骤:
通过如下方式计算所述行为矩阵中用户u对所述商品簇c的归属度:
其中,所述βuc表示用户u对所述商品簇c的归属度,所述Nu表示所述用户u对所述商品簇c中产生过行为的商品个数,所述Nc表示所述商品簇c中的商品总个数。
在本发明的一些实施例中,个性化推荐模块,具体用于执行如下步骤:
通过如下计算方式得到所述行为矩阵中两个用户之间的相似度:
其中,所述Suv表示所述用户u与所述用户v之间的相似性,所述βui表示所述用户u对所述商品簇集c中的第i个商品簇的归属度向量,所述βvi表示所述用户v对所述商品簇集c中的第i个商品簇的归属度向量。
在本发明的一些实施例中,个性化推荐模块,具体用于执行如下步骤:
根据计算得到所述用户之间的相似性为所述行为矩阵中的用户对所述行为矩阵中没有产生过行为的商品进行预测评分;或,
根据计算得到所述用户之间的相似性为所述行为矩阵中的用户生成商品推荐列表。
进一步的,在本发明的一些实施例中,个性化推荐模块,具体用于执行如下步骤:
通过如下计算方式计算所述行为矩阵中用户u对所述行为矩阵中没有产生过行为的商品进行预测评分:
其中,所述ru,p表示对所述用户u对商品p的预测评分,所述表示所述用户u给出的平均评分值,所述L表示归一化因子,所述表示对商品p产生过行为的所有用户中与所述用户u最相似的前N个用户的集合,所述Suv表示所述用户u与所述用户u的相似用户v之间的相似性,所述rv,p表示对所述相似用户v对所述商品p的实际评分值;
其中,所述L通过如下计算方式计算得到:
L=1/Σv∈U|Suv|,
所述v表示所述中的任意一个用户,所述Suv表示所述用户u与所述相似用户v之间的相似性。
进一步的,在本发明的一些实施例中,个性化推荐模块,具体用于执行如下步骤:
通过如下计算方式预测所述行为矩阵中用户u对所述行为矩阵中的商品p产生行为的预测分值:
其中,所述ru,p表示对所述用户u对商品p的预测分值,所述表示对商品p产生过行为的所有用户中与所述用户u最相似的前N个用户的集合,所述Suv表示所述用户u与所述用户u的相似用户v之间的相似性,所述Wv,p的取值为1时,表示所述相似用户v对所述商品p产生过行为,所述Wv,p的取值为0时,表示所述相似用户v没有对所述商品p产生行为。
通过前述实施例对本发明的举例说明可知,通过用户历史行为数据库可以爬取到用户与商品之间产生的行为记录,所以能高效、全面的搜寻到相关数据,从而生成用户与商品之间的行为矩阵,由于用户与商品之间产生的行为记录为稀疏大数据,通过商品之间的相似性将行为矩阵中的所有商品划分到商品簇集中的相应商品簇内,从而对商品进行聚类,计算每个用户对商品簇的归属度,因此可以使用归属度来刻画用户,相对于现有技术中使用用户对单个商品的行为,通过商品聚类后得到商品簇集,用户对商品簇的归属度可以使得每个用户的特征更加显著,基于归属度计算的用户的相似性更加精确,从而提高提高协同过滤中基于相似用户推荐的准确性。由于归属度矩阵的商品簇维度远远小于行为矩阵中商品的维度,大大节省用户相似性计算的时间和空间资源,提高推荐效率。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种用于稀疏大数据的个性化推荐方法,其特征在于,包括:
从用户历史行为数据库中获取用户与商品之间产生的行为记录;
根据所述用户与商品之间产生的行为记录生成行为矩阵,所述行为矩阵中的每个元素对应一个用户对一个商品产生的行为数据,所述行为矩阵中的每一行表示一个用户的特征向量,所述行为矩阵中的每一列表示一个商品的特征向量;
根据所述行为矩阵中所有商品之间的相似性将所述所有商品分别划分到商品簇集中相应的商品簇内,所述商品簇集中包括多个商品簇;
计算所述行为矩阵中所有用户对所述商品簇集的归属度矩阵,所述归属度矩阵中的每一行表示一个用户对所述商品簇集中所有商品簇的归属度向量,所述归属度向量中的各个归属度值分别表示一个用户对一个商品簇的喜好程度;
根据所述每个用户对应的归属度矩阵中的归属度向量计算所述行为矩阵中用户之间的相似性,并根据计算得到所述用户之间的相似性对所述行为矩阵中的用户进行个性化推荐。
2.根据权利要求1所述的方法,其特征在于,所述根据所述行为矩阵中所有商品之间的相似性将所述所有商品分别划分到商品簇集中相应的商品簇内,包括:
步骤a、获取商品簇集中k个商品簇的当前均值向量{μ1,μ2,...,μk},所述k表示商品簇集中的商品簇个数;
步骤b、计算所述行为矩阵中商品Ii分别与所述k个商品簇的当前均值向量之间的距离,将所述商品Ii归入与所述商品Ii之间距离取值最小的当前均值向量对应的商品簇,所述Ii表示所述行为矩阵中的任意一个商品的特征向量;
步骤c、当所述行为矩阵中所有商品都归入到所述商品簇集中的一个商品簇之后,通过如下计算方式重新计算所述商品簇集中k个商品簇的均值向量:
其中,所述μ′i表示重新计算得到的所述商品簇集中第i个商品簇的均值向量,所述|ci|表示第i个商品簇中的商品个数,所述Ij表示所述行为矩阵中第j个商品的特征向量;
步骤d、判断所述重新计算得到的均值向量μ′i和第i个商品簇的当前均值向量μi之间的差值是否大于预置的误差门限,若所述μ′i和所述μi之间的差值大于所述误差门限,将所述μi更新为重新计算得到的μ′i,否则不更新所述μi,通过步骤d的方式再次获取当前商品簇集中k个商品簇的均值向量;
步骤e、重复依次执行步骤a至步骤d,当所述商品簇集中k个商品簇的更新前后的均值向量之间的差值总和小于或等于预置的第一误差总门限时,停止执行前述步骤a至步骤d的迭代过程,确定所述商品簇集中k个商品簇的当前均值向量为k个商品簇的代表向量,输出最终形成的商品簇集,其中,最终形成的商品簇集中每个商品簇至少包括所述行为矩阵中的一个商品。
3.根据权利要求2所述的方法,其特征在于,在所述步骤a执行之前,所述方法还包括:
从所述行为矩阵中随机选择k个商品的特征向量作为商品簇集中k个商品簇的初始均值向量,所述k个商品中的一个商品的特征向量作为所述商品簇集中一个商品簇的初始均值向量,在首次执行步骤a时,将所述k个商品簇的初始均值向量作为k个商品簇的当前均值向量。
4.根据权利要求1所述的方法,其特征在于,所述根据所述行为矩阵中所有商品之间的相似性将所述所有商品分别划分到商品簇集中相应的商品簇内,包括:
步骤1、将所述行为矩阵中每个商品的特征向量依次输入自组织特征映射SOM模型的输入层中,所述SOM模型包括:所述输入层和输出层,所述输出层包括:k个原型节点,每个所述原型节点代表所述商品簇集中一个商品簇,每个所述原型节点具有相应的特征向量和空间的位置向量,所述k表示所述商品簇集中的商品簇个数;
步骤2、当所述SOM模型的输入层中输入商品I(t)的特征向量时,获取所述SOM模型的网络参数,所述SOM模型的网络参数,包括:第t次更新被激活的原型节点和其邻域内的其它原型节点时得到的学习率α(t)和高斯参数σ(t),所述t表示所述SOM模型的输入层中输入的商品个数以及表示所述输出层更新的次数;
所述α(t)通过如下计算方式得到:
α(t)=α0exp(-t/τα),所述α0表示初始学习率,所述τα表示计算所述α(t)时使用的常量参数;
所述σ(t)通过如下计算方式得到:
所述σ0表示初始的高斯参数,所述τσ表示计算所述σ(t)时使用的常量参数;
步骤3、计算所述商品I(t)的特征向量分别与所述输出层中k个原型节点的特征向量之间的距离,从所述k个原型节点中选择与所述商品I(t)之间距离取值最小的原型节点作为当前的激活节点μi(t);
步骤4、根据所述输出层中除所述激活节点μi(t)以外的其它原型节点与所述被激活节点μi(t)之间的距离,通过如下计算方式更新所述激活节点μi(t)的邻域内的其它原型节点:
μj(t+1)=μj(t)+hji(t)(I(t)-μj(t)),
其中,所述μj(t+1)表示所述激活节点μi(t)的邻域内在第t+1次更新时的其它原型节点,所述j表示所述输出层中的第j个原型节点,所述μj(t)表示所述激活节点μi(t)的邻域内在第t次更新时的其它原型节点,所述hji(t)表示所述激活节点μi(t)的邻域函数;
所述hji(t)通过如下计算公式得到:
hji(t)=α(t)exp(-dist(rj,ri)2/(2σ2(t))),
其中,所述α(t)表示第t次更新被激活的原型节点和其邻域内的其它原型节点时得到的学习率,所述σ(t)表示第t次更新被激活的原型节点和其邻域内的其它原型节点时得到的高斯参数,所述rj表示第j个原型节点的位置向量,所述ri表示第i个原型节点的位置向量;
步骤5、重复依次执行步骤1至步骤4,当第t+1次更新的k个原型节点特征向量与第t次更新的k个原型节点之间的特征向量之间的差值总和小于或等于预置的第二误差总门限时,停止执行前述步骤1至步骤4的迭代过程,确定所述商品簇集中k个原型节点的特征向量为k个商品簇的代表向量;
步骤6、计算所述行为矩阵中商品Ii分别与所述k个原型节点的特征向量的距离,将所述商品Ii归入与所述商品Ii之间距离取值最小的特征向量对应的商品簇,所述Ii表示所述行为矩阵中的任意一个商品的特征向量,其中,最终形成的商品簇集中每个商品簇至少包括所述行为矩阵中的一个商品。
5.根据权利要求1所述的方法,其特征在于,所述计算所述行为矩阵中所有用户对所述商品簇集的归属度矩阵,包括:
通过如下方式计算所述行为矩阵中用户u对商品簇c的归属度:
其中,所述βuc表示用户u对所述商品簇c的归属度,所述Nu表示所述用户u对所述商品簇c中产生过行为的商品个数,所述Nc表示所述商品簇c中的商品总个数。
6.根据权利要求1所述的方法,其特征在于,所述根据所述每个用户对应的归属度矩阵中的归属度向量计算所述行为矩阵中用户之间的相似性,包括:
通过如下计算方式得到所述行为矩阵中两个用户之间的相似度:
其中,所述Suv表示所述用户u与所述用户v之间的相似性,所述βui表示所述用户u对所述商品簇集c中的第i个商品簇的归属度向量,所述βvi表示所述用户v对所述商品簇集c中的第i个商品簇的归属度向量。
7.根据权利要求1所述的方法,其特征在于,所述根据计算得到所述用户之间的相似性对所述行为矩阵中的用户进行个性化推荐,包括:
根据计算得到所述用户之间的相似性为所述行为矩阵中的用户对所述行为矩阵中没有产生过行为的商品进行预测评分;或,
根据计算得到所述用户之间的相似性为所述行为矩阵中的用户生成商品推荐列表。
8.根据权利要求7所述的方法,其特征在于,所述根据计算得到所述用户之间的相似性为所述行为矩阵中的用户对所述行为矩阵中没有产生过行为的商品进行预测评分,包括:
通过如下计算方式计算所述行为矩阵中用户u对所述行为矩阵中没有产生过行为的商品进行预测评分:
其中,所述ru,p表示对所述用户u对商品p的预测评分,所述表示所述用户u给出的平均评分值,所述L表示归一化因子,所述表示对商品p产生过行为的所有用户中与所述用户u最相似的前N个用户的集合,所述Suv表示所述用户u与所述用户u的相似用户v之间的相似性,所述rv,p表示对所述相似用户v对所述商品p的实际评分值;
其中,所述L通过如下计算方式计算得到:
所述v表示所述中的任意一个用户,所述Suv表示所述用户u与所述相似用户v之间的相似性。
9.根据权利要求7所述的方法,其特征在于,所述根据计算得到所述用户之间的相似性为所述行为矩阵中的用户生成商品推荐列表,包括:
通过如下计算方式预测所述行为矩阵中用户u对所述行为矩阵中的商品p产生行为的预测分值:
其中,所述ru,p表示对所述用户u对商品p的预测分值,所述表示对商品p产生过行为的所有用户中与所述用户u最相似的前N个用户的集合,所述Suv表示所述用户u与所述用户u的相似用户v之间的相似性,所述Wv,p的取值为1时,表示所述相似用户v对所述商品p产生过行为,所述Wv,p的取值为0时,表示所述相似用户v没有对所述商品p产生行为。
10.一种用于稀疏大数据的个性化推荐装置,其特征在于,包括:
行为记录获取模块,用于从用户历史行为数据库中获取用户与商品之间产生的行为记录;
行为矩阵生成模块,用于根据所述用户与商品之间产生的行为记录生成行为矩阵,所述行为矩阵中的每个元素对应一个用户对一个商品产生的行为数据,所述行为矩阵中的每一行表示一个用户的特征向量,所述行为矩阵中的每一列表示一个商品的特征向量;
商品聚类模块,用于根据所述行为矩阵中所有商品之间的相似性将所述所有商品分别划分到商品簇集中相应的商品簇内,所述商品簇集中包括多个商品簇;
归属度矩阵计算模块,用于计算所述行为矩阵中所有用户对所述商品簇集的归属度矩阵,所述归属度矩阵中的每一行表示一个用户对所述商品簇集中所有商品簇的归属度向量,所述归属度向量中的各个归属度值分别表示一个用户对一个商品簇的喜好程度;
个性化推荐模块,用于根据所述用户对应的归属度矩阵中的归属度向量计算所述行为矩阵中用户之间的相似性,并根据计算得到所述用户之间的相似性对所述行为矩阵中的用户进行个性化推荐。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710147999.6A CN106951489A (zh) | 2017-03-13 | 2017-03-13 | 一种用于稀疏大数据的个性化推荐方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710147999.6A CN106951489A (zh) | 2017-03-13 | 2017-03-13 | 一种用于稀疏大数据的个性化推荐方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106951489A true CN106951489A (zh) | 2017-07-14 |
Family
ID=59468296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710147999.6A Pending CN106951489A (zh) | 2017-03-13 | 2017-03-13 | 一种用于稀疏大数据的个性化推荐方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106951489A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108491490A (zh) * | 2018-03-14 | 2018-09-04 | 南京易好信息技术有限公司 | 电商平台商品标签化区分识别系统及其方法 |
CN108596695A (zh) * | 2018-05-15 | 2018-09-28 | 口口相传(北京)网络技术有限公司 | 实体推送方法及系统 |
CN108665345A (zh) * | 2018-05-07 | 2018-10-16 | 北京科码先锋互联网技术股份有限公司 | 标签映射方法 |
CN108804491A (zh) * | 2018-03-27 | 2018-11-13 | 优视科技新加坡有限公司 | 项目推荐方法、装置、计算设备及存储介质 |
CN108876444A (zh) * | 2018-05-25 | 2018-11-23 | 平安科技(深圳)有限公司 | 客户类别分析方法、装置、计算机设备和存储介质 |
CN109474703A (zh) * | 2018-12-24 | 2019-03-15 | 杭州云纪网络科技有限公司 | 个性化产品组合推送方法、装置及系统 |
CN109640189A (zh) * | 2018-12-19 | 2019-04-16 | 聚好看科技股份有限公司 | 信息显示方法及装置 |
CN109685561A (zh) * | 2018-12-17 | 2019-04-26 | 北京字节跳动网络技术有限公司 | 基于用户行为的电子凭证推送方法、装置及电子设备 |
WO2019165944A1 (zh) * | 2018-02-28 | 2019-09-06 | 中国银联股份有限公司 | 基于转移概率网络的商户推荐方法及其系统 |
CN110795619A (zh) * | 2019-09-18 | 2020-02-14 | 贵州广播电视大学(贵州职业技术学院) | 一种融合多目标的教育资源个性化推荐系统及方法 |
CN111159555A (zh) * | 2019-12-30 | 2020-05-15 | 北京每日优鲜电子商务有限公司 | 商品推荐方法、装置、服务器和存储介质 |
CN111340601A (zh) * | 2020-03-30 | 2020-06-26 | 贝壳技术有限公司 | 商品信息的推荐方法和装置、电子设备和存储介质 |
CN111695917A (zh) * | 2019-03-11 | 2020-09-22 | 北京京东尚科信息技术有限公司 | 商品推荐方法、系统、电子设备和存储介质 |
CN112650946A (zh) * | 2020-12-30 | 2021-04-13 | 中国联合网络通信集团有限公司 | 产品信息的推荐方法、装置、系统及存储介质 |
CN112905591A (zh) * | 2021-02-04 | 2021-06-04 | 成都信息工程大学 | 一种基于机器学习的数据表连接顺序选择方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609523A (zh) * | 2012-02-10 | 2012-07-25 | 上海视畅信息科技有限公司 | 基于物品分类和用户分类的协同过滤推荐算法 |
CN103412948A (zh) * | 2013-08-27 | 2013-11-27 | 北京交通大学 | 基于聚类的协同过滤的商品推荐方法及系统 |
CN106326483A (zh) * | 2016-08-31 | 2017-01-11 | 华南理工大学 | 一种用户上下文信息聚合的协同推荐方法 |
-
2017
- 2017-03-13 CN CN201710147999.6A patent/CN106951489A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609523A (zh) * | 2012-02-10 | 2012-07-25 | 上海视畅信息科技有限公司 | 基于物品分类和用户分类的协同过滤推荐算法 |
CN103412948A (zh) * | 2013-08-27 | 2013-11-27 | 北京交通大学 | 基于聚类的协同过滤的商品推荐方法及系统 |
CN106326483A (zh) * | 2016-08-31 | 2017-01-11 | 华南理工大学 | 一种用户上下文信息聚合的协同推荐方法 |
Non-Patent Citations (5)
Title |
---|
BIN XU、JIAJUN BU、CHUN CHEN、DENG CAI: "An exploration of improving collaborative recommender systems via user-item subgroups", 《WWW "12 PROCEEDINGS OF THE 21ST INTERNATIONAL CONFERENCE ON WORLD WIDE WEB》 * |
CHUN ZENG,CHUN-XIAO XING,LI-ZHU ZHOU: "Similarity measure and instance selection for collaborative filtering", 《WWW "03 PROCEEDINGS OF THE 12TH INTERNATIONAL CONFERENCE ON WORLD WIDE WEB》 * |
PAUL RESNICK,NEOPHYTOS IACOVOU,MITESH SUCHAK,PETER BERGSTROM..: "GroupLens: An Open Architecture for Collaborative Filtering of Netnews", 《CSCW "94 PROCEEDINGS OF THE 1994 ACM CONFERENCE ON COMPUTER SUPPORTED COOPERATIVE WORK》 * |
邓爱林、左子叶、朱扬勇: "基于项目聚类的协同过滤推荐算法", 《小型微型计算机系统》 * |
郁雪: "基于协同过滤技术的推荐方法研究", 《中国博士学位论文全文数据库 信息科技辑(月刊)2010年》 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019165944A1 (zh) * | 2018-02-28 | 2019-09-06 | 中国银联股份有限公司 | 基于转移概率网络的商户推荐方法及其系统 |
CN108491490A (zh) * | 2018-03-14 | 2018-09-04 | 南京易好信息技术有限公司 | 电商平台商品标签化区分识别系统及其方法 |
CN108804491A (zh) * | 2018-03-27 | 2018-11-13 | 优视科技新加坡有限公司 | 项目推荐方法、装置、计算设备及存储介质 |
CN108665345A (zh) * | 2018-05-07 | 2018-10-16 | 北京科码先锋互联网技术股份有限公司 | 标签映射方法 |
CN108665345B (zh) * | 2018-05-07 | 2021-11-09 | 北京科码先锋互联网技术股份有限公司 | 标签映射方法 |
CN108596695B (zh) * | 2018-05-15 | 2021-04-27 | 口口相传(北京)网络技术有限公司 | 实体推送方法及系统 |
CN108596695A (zh) * | 2018-05-15 | 2018-09-28 | 口口相传(北京)网络技术有限公司 | 实体推送方法及系统 |
CN108876444A (zh) * | 2018-05-25 | 2018-11-23 | 平安科技(深圳)有限公司 | 客户类别分析方法、装置、计算机设备和存储介质 |
WO2019223082A1 (zh) * | 2018-05-25 | 2019-11-28 | 平安科技(深圳)有限公司 | 客户类别分析方法、装置、计算机设备和存储介质 |
CN109685561A (zh) * | 2018-12-17 | 2019-04-26 | 北京字节跳动网络技术有限公司 | 基于用户行为的电子凭证推送方法、装置及电子设备 |
CN109640189A (zh) * | 2018-12-19 | 2019-04-16 | 聚好看科技股份有限公司 | 信息显示方法及装置 |
CN109474703A (zh) * | 2018-12-24 | 2019-03-15 | 杭州云纪网络科技有限公司 | 个性化产品组合推送方法、装置及系统 |
CN109474703B (zh) * | 2018-12-24 | 2021-08-31 | 浙江鲸腾网络科技有限公司 | 个性化产品组合推送方法、装置及系统 |
CN111695917A (zh) * | 2019-03-11 | 2020-09-22 | 北京京东尚科信息技术有限公司 | 商品推荐方法、系统、电子设备和存储介质 |
CN110795619A (zh) * | 2019-09-18 | 2020-02-14 | 贵州广播电视大学(贵州职业技术学院) | 一种融合多目标的教育资源个性化推荐系统及方法 |
CN110795619B (zh) * | 2019-09-18 | 2022-02-18 | 贵州开放大学(贵州职业技术学院) | 一种融合多目标的教育资源个性化推荐系统及方法 |
CN111159555A (zh) * | 2019-12-30 | 2020-05-15 | 北京每日优鲜电子商务有限公司 | 商品推荐方法、装置、服务器和存储介质 |
CN111340601A (zh) * | 2020-03-30 | 2020-06-26 | 贝壳技术有限公司 | 商品信息的推荐方法和装置、电子设备和存储介质 |
CN112650946A (zh) * | 2020-12-30 | 2021-04-13 | 中国联合网络通信集团有限公司 | 产品信息的推荐方法、装置、系统及存储介质 |
CN112650946B (zh) * | 2020-12-30 | 2023-06-09 | 中国联合网络通信集团有限公司 | 产品信息的推荐方法、装置、系统及存储介质 |
CN112905591A (zh) * | 2021-02-04 | 2021-06-04 | 成都信息工程大学 | 一种基于机器学习的数据表连接顺序选择方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106951489A (zh) | 一种用于稀疏大数据的个性化推荐方法和装置 | |
CN107330115B (zh) | 一种信息推荐方法及装置 | |
CN110717098B (zh) | 基于元路径的上下文感知用户建模方法、序列推荐方法 | |
CN110866181B (zh) | 资源推荐的方法、装置及存储介质 | |
CN110728317A (zh) | 决策树模型的训练方法、系统、存储介质及预测方法 | |
CN111444394A (zh) | 获取实体间关系表达的方法、系统和设备、广告召回系统 | |
CN110175895B (zh) | 一种物品推荐方法及装置 | |
CN111488385B (zh) | 基于人工智能的数据处理方法、装置和计算机设备 | |
Zou et al. | Reinforcement learning to diversify top-n recommendation | |
CN104778237A (zh) | 一种基于关键用户的个性化推荐方法和系统 | |
CN110795613B (zh) | 商品搜索方法、装置、系统及电子设备 | |
Concolato et al. | Data science: A new paradigm in the age of big-data science and analytics | |
CN110321492A (zh) | 一种基于社区信息的项目推荐方法及系统 | |
CN108733669A (zh) | 一种基于词向量的个性化媒体内容推荐系统及方法 | |
CN110674178B (zh) | 构建用户画像标签的方法及其系统 | |
Rabbi et al. | An Approximation For Monitoring The Efficiency Of Cooperative Across Diverse Network Aspects | |
Liu et al. | Deep learning and collaborative filtering-based methods for students’ performance prediction and course recommendation | |
CN111339435A (zh) | 一种基于潜在因子的矩阵分解补全混合推荐方法 | |
CN109214882A (zh) | 一种商品推荐方法 | |
CN110717089A (zh) | 一种基于网络日志的用户行为分析系统及方法 | |
Bourhim et al. | Towards a Novel Graph-based collaborative filtering approach for recommendation systems | |
CN111445280A (zh) | 模型生成方法、餐馆排序方法、系统、设备和介质 | |
Liraki et al. | Predicting the Users' Navigation Patterns in Web, using Weighted Association Rules and Users' Navigation Information | |
Petrozziello et al. | Data analytics for online travelling recommendation system: a case study | |
Fewster et al. | Similarity indices for spatia I ecological data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170714 |
|
RJ01 | Rejection of invention patent application after publication |