CN106022869A - 一种消费对象的推荐方法及装置 - Google Patents

一种消费对象的推荐方法及装置 Download PDF

Info

Publication number
CN106022869A
CN106022869A CN201610312878.8A CN201610312878A CN106022869A CN 106022869 A CN106022869 A CN 106022869A CN 201610312878 A CN201610312878 A CN 201610312878A CN 106022869 A CN106022869 A CN 106022869A
Authority
CN
China
Prior art keywords
user
recommended
matrix
price
consumer objects
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
Application number
CN201610312878.8A
Other languages
English (en)
Inventor
石川
何博威
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN201610312878.8A priority Critical patent/CN106022869A/zh
Publication of CN106022869A publication Critical patent/CN106022869A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种消费对象的推荐方法及装置。所述方法包括:获得待推荐消费对象的第一用户;根据保存的每个用户对应的每个待推荐消费对象的第一分数,从所述第一分数中确定所述第一用户对应的每个待推荐消费对象的第二分数;其中,所述第一分数是根据保存的用户针对待推荐消费对象给出的用户评论中的总评分和消费价格,以及预设第一公式确定的;根据确定的第二分数,从所述待推荐消费对象中选择目标消费对象,并推荐给所述第一用户。本实施例能够使向用户推荐的消费对象更准确。

Description

一种消费对象的推荐方法及装置
技术领域
本发明涉及网络技术领域,特别涉及一种消费对象的推荐方法及装置。
背景技术
随着万维网的高速发展,特别是第二代互联网Web 2.0的到来,人们被各种信息包围着。为了去解决信息过载的问题,推荐类客户端中被用于帮助用户快速、准确地找到他们感兴趣的消费对象,提高用户体验。这里,消费对象可以包括餐厅、宾馆等商户,也可以包括笔记本电脑、手机等物品。推荐类客户端被广泛利用在电子商户中,并且变成了一个万维网上的基本工具。举个例子,亚马逊购物网站可以向用户推荐物品,以便帮助用户找到他们想买的物品;美国的点评网站Yelp可以向用户推荐餐厅,以便帮助用户找到一个餐厅去消费。
推荐客户端的一个基本问题是预测用户对于可选消费对象的评分,并根据评分对用户进行推荐。现有技术中,很多研究利用各种信息去改善推荐结果,所利用的信息包括用户的地理位置、用户的情感信息或用户之间的社交关系信息等。例如,当用户搜索电饭煲时,亚马逊购物网站可以根据用户的喜好信息来为用户推荐各种样式的电饭煲,以帮助用户快速、准确地找到他们想要的电饭煲。但是,现有研究中为用户推荐消费对象时采用的信息还不够全面,得到的推荐结果即消费对象还不够准确,用户的体验不高。
发明内容
本发明实施例的目的在于提供了一种消费对象的推荐方法及装置,能够使向用户推荐的消费对象更准确。
为了达到上述目的,本发明公开了一种消费对象的推荐方法,应用于客户端,所述方法包括:
获得待推荐消费对象的第一用户;
根据保存的每个用户对应的每个待推荐消费对象的第一分数,从所述第一分数中确定所述第一用户对应的每个待推荐消费对象的第二分数;其中,所述第一分数是根据保存的用户针对待推荐消费对象给出的用户评论中的总评分和消费价格,以及预设第一公式确定的;
根据确定的第二分数,从所述待推荐消费对象中选择目标消费对象,并推荐给所述第一用户。
较佳的,所述第一分数是采用以下步骤确定的:
根据保存的用户针对待推荐消费对象给出的用户评论中的总评分和消费价格,以及确定每个用户对应的每个待推荐消费对象的第一分数;
其中,中的元素表示第i个用户对第j个待推荐消费对象的第一分数,Pm×k为m个用户在k个方面的第一评分矩阵,Qn×k为n个待推荐消费对象在k个方面的第二评分矩阵,Wm×T为m个用户与T个价格区间的第一相关度矩阵,Dn×T为n个待推荐消费对象与T个价格区间的第二相关度矩阵,k和T均为预设的整数。
较佳的,所述第二相关度矩阵Dn×T中的第j个待推荐消费对象与第t个价格区间的相关度tjt是采用下述步骤确定的:
根据保存的用户针对待推荐消费对象给出的用户评论中的总评分和消费价格,确定评分矩阵Rm×n和价格矩阵Cm×n,其中m为用户的数量,n为待推荐消费对象的数量,Rm×n中的元素rij表示第i个用户对第j个待推荐消费对象的总评分,Cm×n中的元素cij表示第i个用户在第j个待推荐消费对象上的消费价格;
根据所述Cm×n以及预设的价格区间的数量T,采用最大期望算法EM算法,确定与每个价格区间对应的混合高斯函数;根据所述Cm×n,确定n个待推荐消费对象的平均消费价格;针对第j个待推荐消费对象,根据确定的T个价格区间对应的混合高斯函数以及所述第j个待推荐消费对象的平均消费价格,确定所述第j个待推荐消费对象与第t个价格区间的相关度tjt
较佳的,所述第一评分矩阵Pm×k、第二评分矩阵Qn×k和第一相关度矩阵Wm×T是采用以下步骤确定的:
根据确定的第二相关度矩阵Dn×T、评分矩阵Rm×n和价格矩阵Cm×n,以及预设第二公式,确定所述第一评分矩阵Pm×k、第二评分矩阵Qn×k和第一相关度矩阵Wm×T
较佳的,所述根据确定的第二相关度矩阵Dn×T、评分矩阵Rm×n和价格矩阵Cm×n,以及预设第二公式,确定所述第一评分矩阵Pm×k、第二评分矩阵Qn×k和第一相关度矩阵Wm×T包括:
根据确定的第二相关度矩阵Dn×T、评分矩阵Rm×n和价格矩阵Cm×n,以及确定所述第一评分矩阵Pm×k、第二评分矩阵Qn×k和第一相关度矩阵Wm×T;其中,所述Pm×k、Qn×k和Wm×T为采用随机梯度下降算法迭代得到的当L(P,Q,W)取最小值时对应的Pm×k、Qn×k和Wm×T,γ和β为权衡参数,||·||F为弗罗贝尼乌斯范数,T为矩阵的转置,⊙为矩阵的点积,Im×n为指示矩阵,Im×n中的元素Iij取0或1,当第i个用户对第j个待推荐消费对象给出总评分时,Iij取1,当第i个用户没有对第j个待推荐消费对象给出总评分时,Iij取0。
为了达到上述目的,本发明公开了一种消费对象的推荐装置,应用于客户端,所述装置包括:
获得模块,用于获得待推荐消费对象的第一用户;
确定模块,用于根据保存的每个用户对应的每个待推荐消费对象的第一分数,从所述第一分数中确定所述第一用户对应的每个待推荐消费对象的第二分数;其中,所述第一分数是根据保存的用户针对待推荐消费对象给出的用户评论中的总评分和消费价格,以及预设第一公式确定的;
推荐模块,用于根据确定的第二分数,从所述待推荐消费对象中选择目标消费对象,并推荐给所述第一用户。
较佳的,所述确定模块还用于采用以下步骤确定所述第一分数:
根据保存的用户针对待推荐消费对象给出的用户评论中的总评分和消费价格,以及确定每个用户对应的每个待推荐消费对象的第一分数;
其中,中的元素表示第i个用户对第j个待推荐消费对象的第一分数,Pm×k为m个用户在k个方面的第一评分矩阵,Qn×k为n个待推荐消费对象在k个方面的第二评分矩阵,Wm×T为m个用户与T个价格区间的第一相关度矩阵,Dn×T为n个待推荐消费对象与T个价格区间的第二相关度矩阵,k和T均为预设的整数。
较佳的,所述确定模块还用于采用下述步骤确定第二相关度矩阵Dn×T中的第j个待推荐消费对象与第t个价格区间的相关度tjt
根据保存的用户针对待推荐消费对象给出的用户评论中的总评分和消费价格,确定评分矩阵Rm×n和价格矩阵Cm×n,其中m为用户的数量,n为待推荐消费对象的数量,Rm×n中的元素rij表示第i个用户对第j个待推荐消费对象的总评分,Cm×n中的元素cij表示第i个用户在第j个待推荐消费对象上的消费价格;
根据所述Cm×n以及预设的价格区间的数量T,采用最大期望算法EM算法,确定与每个价格区间对应的混合高斯函数;根据所述Cm×n,确定n个待推荐消费对象的平均消费价格;针对第j个待推荐消费对象,根据确定的T个价格区间对应的混合高斯函数以及所述第j个待推荐消费对象的平均消费价格,确定所述第j个待推荐消费对象与第t个价格区间的相关度tjt
较佳的,所述确定模块还用于采用以下步骤确定第一评分矩阵Pm×k、第二评分矩阵Qn×k和第一相关度矩阵Wm×T
根据确定的第二相关度矩阵Dn×T、评分矩阵Rm×n和价格矩阵Cm×n,以及预设第二公式,确定所述第一评分矩阵Pm×k、第二评分矩阵Qn×k和第一相关度矩阵Wm×T
较佳的,所述确定模块具体用于:
根据确定的第二相关度矩阵Dn×T、评分矩阵Rm×n和价格矩阵Cm×n,以及确定所述第一评分矩阵Pm×k、第二评分矩阵Qn×k和第一相关度矩阵Wm×T;其中,所述Pm×k、Qn×k和Wm×T为采用随机梯度下降算法迭代得到的当L(P,Q,W)取最小值时对应的Pm×k、Qn×k和Wm×T,γ和β为权衡参数,||·||F为弗罗贝尼乌斯范数,T为矩阵的转置,⊙为矩阵的点积,Im×n为指示矩阵,Im×n中的元素Iij取0或1,当第i个用户对第j个待推荐消费对象给出总评分时,Iij取1,当第i个用户没有对第j个待推荐消费对象给出总评分时,Iij取0。
由上述技术方案可见,本发明实施例,在获得待推荐消费对象的第一用户之后,根据保存的每个用户对应的每个待推荐消费对象的第一分数,从该第一分数中确定第一用户对应的每个待推荐消费对象的第二分数,根据确定的第二分数,从待推荐消费对象中选择目标消费对象并推荐给第一用户。其中,第一分数是根据保存的用户针对待推荐消费对象给出的用户评论中的总评分和消费价格,以及预设第一公式确定的。
也就是说,本实施例中,第一分数是根据多个用户评论中的总评分和消费价格以及预设第一公式确定的,从保存的第一分数中确定第一用户对应的每个待推荐消费对象的第二分数,根据第二分数向第一用户推荐消费对象。由于用户评论中的总评分和消费价格中蕴含了能够体现用户的消费价格以及待推荐消费对象的消费价格的关系的信息,因此,应用本实施例的推荐方法能够使向用户推荐的消费对象更准确。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的消费对象的推荐方法的一种流程示意图;
图2为用户评论的一个例子;
图3a为数据集D1中总评分与用户评论的数量的关系示意图;
图3b为数据集D2中总评分与用户评论的数量的关系示意图;
图3c为数据集D1中消费价格与用户评论的数量的关系示意图;
图3d为数据集D2中消费价格与用户评论的数量的关系示意图;
图4a为数据集D1中每个消费价格区间内的平均总评分示意图;
图4b为数据集D2中每个消费价格区间内的平均总评分示意图;
图4c为经过预处理之后数据集D1中每个消费价格区间内的平均总评分示意图;
图4d为经过预处理之后数据集D2中每个消费价格区间内的平均总评分示意图;
图5为根据EM算法获得混合高斯函数的一个例子;
图6为本发明实施例的EARP-M模型在不同数量的价格区间上得到的推荐结果示意图;
图7a为所有用户在5个价格区间均值上的平均第一相关度示意图;
图7b为不同类型的用户在5个价格区间均值上的平均第一相关度示意图;
图7c为特定类型的用户的平均第一相关度示意图;
图7d为不同类型的待推荐消费对象的平均第二相关度示意图;
图8a为本发明实施例的三个EARP模型中消费价格在不同缺失比例下的RMSE误差示意图;
图8b为本发明实施例的三个EARP模型中消费价格在不同缺失比例下的MAE误差示意图;
图9为本发明实施例提供的消费对象的推荐装置的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种消费对象的推荐方法及装置,能够使向用户推荐的消费对象更准确。
现有技术中,很多评分预测算法利用用户和物品的交互信息,预测用户对于消费对象的评分,根据该评分向用户推荐消费对象。在推荐时,除了评分信息以外,很多附加信息被用于提升推荐结果,比如社交关系和地理位置信息等。但是,大量的电子商务网站都有用户交易的消费价格,这类信息一般和用户的评分一起出现,但是目前还没有研究工作研究评分和消费价格的关系。
本发明实施例中根据用户评论中的总评分和消费价格之间的关系,预测出用户对待推荐消费对象的评分即第一分数,根据第一分数向用户推荐消费对象。
下面通过具体实施例,对本发明进行详细说明。
图1为本发明实施例提供的消费对象的推荐方法的一种流程示意图,应用于客户端,所述方法包括如下步骤:
步骤S101:获得待推荐消费对象的第一用户;
其中,所述第一用户可以包括在所述客户端中发表过用户评论的用户,待推荐消费对象可以包括在所述客户端中存在用户评论的消费对象。
具体的,获得待推荐消费对象的第一用户,可以是获得第一用户的用户名、用户ID或预先设置的用户编号等能够唯一地标识该第一用户的信息。当然,还可以获得第一用户的其他信息,本发明对此不做限定。
在本发明实施例中,待推荐消费对象可以包括所有商品,可以是餐厅、宾馆一类的商家,也可以是电饭煲、空调一类的电器,当然还可以是其他种类的商品。只要是用于流通的商品,都可以是本实施例中的待推荐消费对象,都可以应用本发明实施例。
在实际应用中,应用本发明实施例的时机,也就是获得待推荐消费对象的第一用户的时机,可以是用户登录了客户端,或用户完成了一次购买行为,或用户进行了一次搜索操作,或按照预设时间间隔进行等,当然,还可以包括其他时机,本发明对此不做限定。另外,获得第一用户的方式可以包括将已经登录客户端并且正在进行搜索行为的用户确定为第一用户,进而获得第一用户,或根据用户的输入操作获得第一用户,当然还可以包括其他获得方式,本发明对此不做具体限定。
步骤S102:根据保存的每个用户对应的每个待推荐消费对象的第一分数,从所述第一分数中确定所述第一用户对应的每个待推荐消费对象的第二分数。
假设,客户端中保存的每个用户对应的每个待推荐消费对象即商品的第一分数可以见表1,假设第一用户为B,则可以从表1中确定用户B对应的每个商品的第二分数见表2。
表1
表2
用户 商品1 商品2 商品3 商品4 商品n 商品n+1
B 0.5 0.8 0.9 0.2 0.4 0.4
在本步骤中,所述第一分数是根据保存的用户针对待推荐消费对象给出的用户评论中的总评分和消费价格,以及预设第一公式确定的。其中,总评分是用户对待推荐消费对象的总体评分,其表征了用户对消费对象的喜好程度;消费价格是指用户的人均消费价格。图2为用户评论的一个例子,其中包括用户、总评分、消费价格和待推荐消费对象等。
需要说明的是,在客户端中保存的用户评论中,通常情况是一个用户针对部分待推荐消费对象给出了用户评论,一个待推荐消费对象被部分用户发表过用户评论。例如,用户A购买过商品1、商品3和商品5,并给出了关于商品1、商品3和商品5的用户评论,用户B购买过商品1、商品3、商品6、商品7和商品21,并给出了关于商品1、商品3、商品6、商品7和商品21的用户评论。
也就是说,部分用户已经对部分待推荐消费对象给出了评分信息即总评分和消费价格,如何根据这部分评分信息和消费价格,得到所有待推荐消费对象的用户对所有待推荐消费对象的评分信息即第一分数,是步骤S102所需要解决的一个重要问题。
为了解决上述问题,本发明研究了大量用户评论,研究所采用的数据集为大众点评上的用户评论数据。大众点评是著名的社交媒体平台,该平台允许用户发表针对商家和娱乐场的用户评论。通过爬取技术可以从大众点评上爬取到大量的用户评论。
在大众点评上,用户在一商家接受了服务以后,可以发表一个用户评论。用户评论包括总评分(1分到5分)和人均消费价格(简称消费价格)。研究中分别采集了大众点评上5个具有代表性的大城市中(例如,北京,上海和广州等)的用户评论,分别得到了5个数据集,分别称为Data1、Data2、Data3、Data4和Data5(缩写为D1、D2、D3、D4和D5)。因为用户评论中非常高的消费价格(例如大于1000元)是非常稀疏的,研究中删除了消费价格大于1000元的用户评论。5个数据集的详细统计信息在表3中列出。
表3
D1 D2 D3 D4 D5
用户数量 176,959 314,355 73,949 103,353 53,239
商家数量 194,835 205,307 167,734 151,227 148,977
用户评论数量 2,335,068 3,956,688 1,114,203 947,060 696,767
平均总评分 3.78 3.77 3.72 3.64 3.68
平均消费价格 70.00 75.96 68.50 61.63 63.71
用户平均点评数 13.20 12.59 15.07 9.16 13.09
商户平均点评数 11.98 19.27 6.64 6.26 4.68
通过表3中的这些统计可以发现,这些数据集虽然有不同的规模,但是它们都有类似的平均总评分和平均消费价格。除此之外,评分信息是非常稀疏的,其中D3、D4和D5数据集比D1和D2更稀疏。
图3a和图3b中分别列出了数据集D1和D2中总评分与用户评论的数量的关系,从图中可以看出,大多数的总评分集中在3分到5分,其中4分的数量是最多的。图3c和图3d中分别列出了数据集D1和D2中消费价格与用户评论的数量的关系,从图中可以看出,消费价格与用户评论的数量的关系分布有明显的长尾现象,也就是说,大多数消费价格小于100元,并且很少有大于300元的消费价格出现;还可以发现,用户的消费价格具有几个明显的峰值。
一个用户可能从多个商家接受服务,同时一个商家会向很多用户提供服务,用户和商家之间是典型的多对多关系。
对于数据集D1和D2,以20元为间隔将这两个数据集中的消费价格划分成多个价格区间,并计算每个价格区间内的平均总评分。图4a和图4b中分别列出了数据集D1和D2中划分价格区间之后每个消费价格区间内的平均总评分。从图中可以清晰地看到,平均总评分正比于消费价格。也就是说,如果用户在商家消费了比较高的价格,他更有可能给一个比较高的总评分;如果用户在商家消费了比较低的价格,他更有可能给出一个比较低的评分。这个观察结果很少被提及,但是可以很清晰地理解它的实际意义,即当用户在商家中消费了比较高的费用时,他通常会得到更好的服务,因此他更可能给出比较高的总评分;相反,当用户在商家中消费了比较低的费用时,他可能获得不了让他满意的服务,他就更有可能给出比较低的总评分。
为了进一步地研究用户评论中总评分和消费价格的关系,先将每个用户的每个消费价格做预处理,即,针对每个用户,计算该用户的平均消费价格,将该用户的每个用户评论中的消费价格减去该平均消费价格,获得该用户经过预处理之后的每个消费价格。上述过程可以用以下公式表示:
针对用户i,采用公式计算该用户的平均消费价格将该用户的每个用户评论中的消费价格减去该平均消费价格,获得该用户经过预处理之后的每个消费价格
对两个数据集中的所有数据都进行上述预处理,并以20元为间隔将这两个经过预处理的数据集中的消费价格划分成多个价格区间,然后计算每个价格区间内的平均总评分。图4c和图4d中分别列出了经过预处理之后的数据集D1和D2中,划分价格区间之后每个消费价格区间内的平均总评分。从图中可以看出,预处理之后的消费价格与平均总评分成正相关。也就是说,如果用户花了比他的平均消费价格更多的钱,他倾向于给出比较高的总评分;如果一个用户花了比他的平均消费价格更少的钱,他倾向于给出比较低的总评分。这是可解释的,因为当用户花了比他的平均消费价格更多的钱时,他享受的服务一般会高于他的预期。在这样的情况下,用户也更容易给出高的评分。从统计结果中也可以看出,如果两个用户在同一个商家中消费了相同的钱,具有更高的平均消费价格的用户更容易给出比较低的分数。这种现象也是可以理解的。有着更高平均消费价格的用户对于商家的服务有更高的要求和心理预期,因此会对商家的服务有更严格的要求。然而,对于低平均消费价格用户,他们的心理预期可能没有那么高,比较容易获得高于他们心理预期的服务。所以,通过平均消费价格,也可以发现消费价格和总评分之间的关系。
从图4c和图4d中还可以发现,消费价格的分布有多个不同的峰值。也就是说,用户在商家中的消费价格分布在不同的价格区间中。特别是,对于一个平均消费价格较低的用户来说,例如他的消费价格主要集中在50元附近,那么他也会消费100元或是200元的价格。对于一个平均消费价格较高的用户来说,例如他主要的消费区间在150元上下,但他同时也会消费50元的价格。类似的,一个平均消费价格比较高的商家,例如它的主要消费价格是300元左右,但是也有用户在这家商家消费150元或者500元。同样的,对于一个平均消费价格较低的商户来说,例如它的主要消费集中在30元左右,但是同时也会有50元左右的消费存在。从这里可以看出,用户或者商家的消费价格分别主要集中在一个价格区间中,同时在也有少数的消费价格分布在不同的价格区间中。
综上,通过上述研究,可以得到关于用户评论中总评分和消费价格的下列关系:
A.一次交易的消费价格越高,总评分也越高;
B.当用户的消费价格高于他的消费习惯时,用户通常会给更高的总评分;
C.消费价格有多区域性。
基于上述研究结果,本发明实施例构建了消费对象的评分预测模型EARP,该模型用于根据用户评论中的总评分和消费价格,计算得到每个用户对每个待推荐消费对象的第一分数。
在所述EARP模型中,即在本实施例中,第一分数是采用以下步骤确定的:根据保存的用户针对待推荐消费对象给出的用户评论中的总评分和消费价格,以及确定每个用户对应的每个待推荐消费对象的第一分数;
其中,中的元素表示第i个用户对第j个待推荐消费对象的第一分数,Pm×k为m个用户在k个方面的第一评分矩阵,Qn×k为n个待推荐消费对象在k个方面的第二评分矩阵,Wm×T为m个用户与T个价格区间的第一相关度矩阵,Dn×T为n个待推荐消费对象与T个价格区间的第二相关度矩阵,k和T均为预设的整数。
在本实施例中,第二相关度矩阵Dn×T中的第j个待推荐消费对象与第t个价格区间的相关度tjt是采用下述步骤确定的:
步骤1:根据保存的用户针对待推荐消费对象给出的用户评论中的总评分和消费价格,确定评分矩阵Rm×n和价格矩阵Cm×n
其中,m为用户的数量,n为待推荐消费对象的数量,Rm×n中的元素rij表示第i个用户对第j个待推荐消费对象的总评分,Cm×n中的元素cij表示第i个用户在第j个待推荐消费对象上的消费价格。
需要说明的是,由于通常情况下每个用户购买的待推荐消费对象即商品不完全一致,也就是说每个用户都针对了部分待推荐消费对象给出了用户评论。因此,评分矩阵Rm×n中的部分元素rij是没有数值的,价格矩阵Cm×n中的部分元素cij也是没有数值的。
以下为评分矩阵Rm×n和价格矩阵Cm×n的一个例子:
(单位为:分),(单位为:元)
可以理解的是,评分矩阵中的数值是在一定范围内的数值,例如用户评论中的总评分取值为1分~5分,而价格矩阵中的数值通常没有一定的范围,即用户的消费价格可以是任意数值。
步骤2:根据所述Cm×n以及预设的价格区间的数量T,采用最大期望算法EM算法,确定与每个价格区间对应的混合高斯函数;根据所述Cm×n,确定n个待推荐消费对象的平均消费价格;针对第j个待推荐消费对象,根据确定的T个价格区间对应的混合高斯函数以及所述第j个待推荐消费对象的平均消费价格,确定所述第j个待推荐消费对象与第t个价格区间的相关度tjt
其中,T可以取值为5或其他值,本发明对此不做具体限定。
需要说明的是,在上述价格矩阵中,从用户角度看,每个用户可以在多个不同的价格区间中消费,从待推荐消费对象的角度看,一个待推荐消费对象的消费价格也可以涵盖不同的价格区间。更多的是,较高的价格之间的差距对于用户的影响比较小,而较低的价格之间的差距对于用户的影响比较大。例如,消费价格300元和350元之间没有明显的区别,但是50元和100元之间有很大的区别。通常,50元意味着低档消费,而100元则意味着中档消费。所以需要把连续的消费价格分到不同的区间内。
那么如何将消费价格分到不同的区间内,最简单的做法是将消费价格以固定的价格分隔成不同的价格区间。例如,消费价格被分成(0,50]、(50,100]、(100,150]等。但是这个方法是不公平的。例如,用户在一个零食店消费10元,在一个普通的餐厅消费了50元,这种消费价格分类方法把两个消费价格放在了同一个区间内,这显然不够合理。
为了使划分的价格区间更加合理,在本步骤中,根据所述Cm×n以及预设的价格区间的数量T,采用最大期望算法EM算法,确定与每个价格区间对应的混合高斯函数。也就是说,每个价格区间对应一个混合高斯函数。采用这种方式划分价格区间时,划分的价格区间中的每个区间的范围可能是不均匀的。具体的,EM算法的架构设计可以见表4。
表4
根据表4中列出的EM算法的细节,可以得到T个混合高斯函数G=(N(μ,Σ),φ),这里μ是混合高斯函数的均值,Σ是混合高斯函数的均方差,φ是多项式分布概率。在得到T个混合高斯函数之后,针对第j个待推荐消费对象M,可以将该M的平均消费价格υj代入第z个混合高斯函数,确定该M与第z个价格区间的相关度tjz,用公式可以表示为
t jz = N ( υ j ; μ z , Σ z ) · φ z Σ i = 1 T N ( υ j ; μ i , Σ i ) · φ i
例如,经过EM算法得到的5个混合高斯函数如图5所示,图中列出了每个混合高斯函数的均值和均方差。将每个待推荐消费对象的平均消费价格分别代入这5个混合高斯函数,即可以得到该待推荐消费对象与5个价格区间的5个相关度的值。
也就是说,经过上述步骤,确定了第二相关度矩阵Dn×T中的每个元素tjt,即每个待推荐消费对象与每个价格区间的相关度。
在本实施例中,第一评分矩阵Pm×k、第二评分矩阵Qn×k和第一相关度矩阵Wm×T可以是采用以下步骤确定的:
根据确定的第二相关度矩阵Dn×T、评分矩阵Rm×n和价格矩阵Cm×n,以及预设第二公式,确定所述第一评分矩阵Pm×k、第二评分矩阵Qn×k和第一相关度矩阵Wm×T
具体的,所述根据确定的第二相关度矩阵Dn×T、评分矩阵Rm×n和价格矩阵Cm×n,以及预设第二公式,确定所述第一评分矩阵Pm×k、第二评分矩阵Qn×k和第一相关度矩阵Wm×T包括:
根据确定的第二相关度矩阵Dn×T、评分矩阵Rm×n和价格矩阵Cm×n,以及确定所述第一评分矩阵Pm×k、第二评分矩阵Qn×k和第一相关度矩阵Wm×T;其中,所述Pm×k、Qn×k和Wm×T为采用随机梯度下降算法迭代得到的当L(P,Q,W)取最小值时对应的Pm×k、Qn×k和Wm×T,γ和β为权衡参数,||·||F为弗罗贝尼乌斯范数,T为矩阵的转置,⊙为矩阵的点积,Im×n为指示矩阵,Im×n中的元素Iij取0或1,当第i个用户对第j个待推荐消费对象给出总评分时,Iij取1,当第i个用户没有对第j个待推荐消费对象给出总评分时,Iij取0。
步骤S103:根据确定的第二分数,从所述待推荐消费对象中选择目标消费对象,并推荐给所述第一用户。
由上述内容可知,本实施例中,第一分数是根据多个用户评论中的总评分和消费价格以及预设第一公式确定的,从保存的第一分数中确定第一用户对应的每个待推荐消费对象的第二分数,根据第二分数向第一用户推荐消费对象。由于用户评论中的总评分和消费价格中蕴含了能够体现用户的消费价格以及待推荐消费对象的消费价格的关系的信息,因此,应用本实施例的推荐方法能够使向用户推荐的消费对象更准确。
需要说明的是,根据本发明实施例得到每个用户对每个待推荐消费对象的第一分数之后,由于所述待推荐消费对象包括不同种类的待推荐消费对象,因此,在本发明的另一实施例中,图1所示实施例中,根据保存的每个用户对应的每个待推荐消费对象的第一分数,从所述第一分数中确定所述第一用户对应的每个待推荐消费对象的第二分数,具体可以包括:确定第一用户对应的待推荐消费对象的目标种类,从第一分数中确定第一用户对应的每个目标种类的待推荐消费对象的第二分数。其中,目标种类可以包括至少一种。
为了更容易理解本发明提供的EARP模型,下面结合实验详细说明该模型的建立过程。
首先,明确要解决的问题——基于总评分和消费价格进行评分预测,即得到第一分数,是指根据用户评论中的总评分和消费价格去预测用户对每个待推荐消费对象的打分即第一分数。和传统的评分问题相似,这里首先存在一个描述用户和待推荐消费对象之间关系的评分矩阵除此之外,还存在一个价格矩阵其用来描述用户在不同待推荐消费对象中的消费价格。
对于这个问题,一个直接的解决方案是同时分解评分矩阵和价格矩阵,并共享相同的隐分子。但是,直接分解消费价格矩阵会为算法带来很多的问题。
评分矩阵和价格矩阵有不同的规模。总评分是离散的正整数,评分区间为1分到5分。但是消费价格是连续的整数,而且价格区间是一个相对宽泛的空间。直接分解价格矩阵将使得它们的隐空间有不同的规模,从而造成学习的模型无法很好地反映它们二者之间的深层关系。
更重要的是,与评分矩阵相比,消费价格不仅是稀疏的而且充满噪声。在实际的应用中,一些用户并没有标注消费价格或者是随机标注消费价格,所以直接分解价格矩阵将会引入更多的误差,从而影响整个推荐模型的表现。
除了直接分解消费价格矩阵,本方面还引入了消费信息项。这个消费信息项可以当做与用低秩矩阵分解得到的评分矩阵的一个联系。
这个消费信息项充分利用了总评分与消费价格之间的关联。除此之外,消费信息项尝试利用概率分布去表示用户和待推荐消费对象对于不同价格区间的关联度。这种方法可以很好地控制消费价格的规模和带来的噪声。
其次,通常采用低秩矩阵分解算法解决上述问题。在获得用户与待推荐消费对象的评分矩阵之后,低秩矩阵分解算法将用户和待推荐消费对象映射到一个联合隐空间中,该隐空间的维数为k<<min(m,n),m为用户的数量,n为待推荐消费对象的数量。而用户对待推荐消费对象的总评分可以看成它们之间隐空间的内积。这种方法是一个典型的机器学习算法,算法主要需要解决一个最大化评分矩阵的优化问题,即
其中,这里分别是用户隐分子和待推荐消费对象隐分子。||·||F是弗罗贝尼乌斯范数,T为矩阵或者向量的转置。⊙为矩阵的点积,I为指示矩阵,I中的元素Iij取0或1,当第i个用户对第j个待推荐消费对象给出总评分时,Iij取1,当第i个用户没有对第j个待推荐消费对象给出总评分时,Iij取0。为了有效地减少泛化误差,本发明在上述最优化公式中加入了规则化项,通过规则化项来限制隐向量的大小。
本发明中,经过统计研究得到了关于用户评论中总评分和消费价格的下列关系即规则:
A.一次交易的消费价格越高,总评分也越高;
B.当用户的消费价格高于他的消费习惯时,用户通常会给更高的总评分;
C.消费价格有多区域性。
将上述的三条规则与低秩矩阵分解算法相结合,可以得到本发明的EARP模型,该模型又可以包括三个子模型:EARP-E,EARP-U和EARP-M。
在EARP-E模型中整合了规则A,即总评分是正比于消费价格的。也就是说,用户在商家消费的金额越高,就越有可能给出较高的总评分。将这条规则与低秩矩阵分解算法相结合,一个基本的做法是引入消费信息项,通过消费信息项来反映消费价格对于总评分的影响。从另一个角度看,引入消费信息项,可以看成对于低秩矩阵分解结果的一个修正。在该模型中,利用待推荐消费对象的平均消费价格υ作为消费信息项。其中,待推荐消费对象的平均消费价格由价格矩阵C得出,公式如下:
υ j = C · , j ‾ = Σ i = 1 m C i , j | { C i , j | C i , j ≠ 0 , i = 1 , ... , m } |
由于在上文中提到过,消费价格高于1000元的用户评论被舍弃了,所以υj∈[0,1000]元。该模型中,利用归一化处理缩小待推荐消费对象的平均消费价格区间,使其规模和评分矩阵规模相当。特别是,因为消费价格的特殊性,还要利用log函数和最小最大归一化处理来将υ压缩到[0,1]之间。在此之后,算法通过复制多个行向量υT,将行向量υT扩展到一个m×n的矩阵V。简单来说,EARP-E模型就是通过增加一个消费信息项,将消费价格融合到低秩矩阵分解的结果中,可以得到
其中,ω是一个权值参数,该参数表示所有用户对于消费价格的敏感程度。与基础的低秩矩阵分解相比,加入了消费信息项的EARP-E模型强迫隐分子P、Q去适应消费价格。
在上述模型中,对于不同的用户,其对于消费价格的权值都是一样的。然而,将规则B再整合到EARP-E模型中,可以得到EARP-U模型。规则B表明,具有不同平均消费价格的用户,对于相同的消费价格,会给出不同的总评分。所以,EARP-U模型需要为每一个用户计算一个独特的权值。这里定义一个权值向量它表示了每个用户对于消费价格都有一个单独的权重。EARP-U模型的形式如下:
这里γ和β是权衡参数,该模型可以通过控制这两个参数,防止模型过拟合,达到更好的泛化效果。
上述EARP-U模型基于一个假设,即对于所有用户和所有待推荐消费对象只有一个价格区间。然而,将规则C整合到EARP-U模型中,可以得到EARP-M模型。也就是说,EARP-M模型中将消费价格划分到了不同的价格区间。这是由于,上文提到的规则C说明,用户可以在多个不同的价格区间中消费,而一个待推荐消费对象的消费价格也可以涵盖不同的价格区间。并且,较高的价格之间的差距对于用户的影响比较小,而较低的价格之间的差距对于用户的影响比较大。例如,300元和350元之间没有明显的区别,但是50元和100元之间有很大的区别。50元意味着低档消费,而100元则意味着中档消费。所以需要把连续的消费价格划分到不同的价格区间内。
在EARP-M模型中,将价格区间的划分当做一个一维的聚类问题。假设这些价格区间由混合高斯函数生成。根据给定的价格矩阵C,可以利用EM算法得到每个混合高斯函数的均值和均方差。EM算法的细节已经在表4中列出,最终可以得到第二相关度矩阵Dn×TD表示不同待推荐消费对象对于不同价格区间的关联程度。
除此之外,考虑到用户对于不同的价格区间也有不同的反应。这里,定义第一相关度矩阵W表示不同用户对于不同价格区间的关联程度。D和W矩阵的建立有诸多优点。
定义第二相关度矩阵D去表示待推荐消费对象对于不同价格区间的联系。这里没有用到具体的消费价格,所以它消除了价格区间规模与评分区间规模不一致对第一分数的影响。除此之外,不同的价格区间是由整个消费价格统计、用EM算法推演出的。并且这些相关度是概率值,而不是特定的消费价格,这样的方式有利于削减价格矩阵的噪声对于第一分数的影响。
在EARP-M模型中,利用W和D矩阵去分别表示用户和待推荐消费对象对于价格区间的关联程度。具体的EARP-M模型如下:
在EARP-M模型中,将三条观察规则A、B、C均整合到了低秩矩阵分解的优化函数中去了。为了更好地求解以上公式,把上式重写进行改写,得到目标公式
随机梯度下降算法是一个很好的求解上述公式的最优化解的方法。这里有三个变量,其中包括第一评分矩阵即用户隐分子P、第二评分矩阵即待推荐消费对象隐分子Q和第一相关度矩阵W。利用随机梯度下降算法,局部最小化上述目标公式,可以得到
∂ L ∂ P i = Σ j = 1 n I i , j ( P i Q j T + W i D j T - R i , j ) · Q j T + γP i
∂ L ∂ Q j = Σ i = 1 m I i , j ( P i Q j T + W i D j T - R i , j ) · P i + γQ j
∂ L ∂ W i = Σ j = 1 n I i , j ( P i Q j T + W i D j T - R i , j ) · D j T + βW i
关于EARP-M框架的实现细节,在表5中进行了详细的展示。
表5
当利用随机梯度下降算法,最终得到P,Q和W的解之后,可以利用本发明提供的EARP-M模型得到最终的估计矩阵
R ~ = PQ T + WD T
其中,中的元素表示第i个用户对第j个待推荐消费对象的第一分数。
对于上述三个模型,本发明尝试通过这三个模型有效地将三条观察规则A、B、C与低秩矩阵分解算法相融合,以得到更好的评分结果。三个模型可以看成一个串联的关系,前面的模型可以看成是后面模型的一个特例。当价格区间数量为1时,EARP-M模型可以转化为EARP-U模型。当所有用户的第一相关度W相同时,EARP-U模型可以转化去EARP-E模型。本发明提出的三个模型,层层递进,不断地将更多的观察规则融合到基础的低秩矩阵分解算法中,从而达到更好的评分结果。
可见,在整个模型中,本发明尝试引入消费信息项来表示消费价格对于总评分的影响。这里提出了两个有意义的矩阵:D矩阵意味着待推荐消费对象对于不同价格区间的关联程度,W矩阵意味着用户对于不同价格区间的关联程度。矩阵D通过价格矩阵C和EM算法直接计算得出。矩阵W和P、Q一起通过随机梯度下降算法迭代学习得到。除此之外,D矩阵和W矩阵有明显的物理特征,这些特征可以深入地表现待推荐消费对象和用户的特点。矩阵D反映了待推荐消费对象的消费价格的分布和覆盖区域。图5显示了一个混合高斯分布的例子,这个例子是通过EM算法在数据集D1中得到的。当设置价格区间的数量为5时,可以看出图5中混合高斯模型的图形表示与图3c中消费价格的分布很相近,这说明混合高斯函数模型可以很好地表现消费价格的分区。矩阵W反映了用户的消费行为和他们对于消费价格的响应。
另外,本发明中的EARP-M模型在计算时,时间主要消耗在利用EM算法计算混合高斯函数和采用随机梯度下降算法迭代优化P,Q和W矩阵上。用N来表示矩阵R中的非零总评分数量,k表示隐分子的数量,T是价格区间的数量。那么,在EM算法中,每一次迭代对应的算法复杂度是O(N×T)。随机梯度下降算法的主要算法复杂度集中在计算目标公式以及它相对应的梯度上,从目标公式可以得出算法复杂度是O(N×(T+k))。其中,梯度的计算复杂度为O(N×k),梯度的计算复杂度是O(N×T)。总结来说,EARP模型的算法复杂度是O(N×(T+k))。与矩阵R中的非零总评分数量呈现线性关系。
为了进一步说明本发明实施例的有效性,下面结合具体的实验结果进行说明。
实验采集了大众点评上5个具有代表性的大城市中(例如,北京,上海和广州等)的用户评论,分别得到了5个数据集,分别称为Data1、Data2、Data3、Data4和Data5(缩写为D1、D2、D3、D4和D5)。
为了去展示本发明提出的EARP模型的有效性,下面将三个版本的EARP与多个经典的评分预测方法进行对比。在这几种经典算法中,前四种方法只利用了评分信息。后三种方法(cPMF,FM和CoMF)除了利用了评分信息之外,还利用了消费价格信息。
UserMean:这个方法利用每个用户的平均评分作为预测结果。
ItemMean:这个方法利用每个物品的平均评分作为预测结果。
PMF:这是一种基本的矩阵分解方法,实验中利用用户和物品的评分矩阵进行推荐。
LLORMA:这是一种最新的矩阵分解方法,这种方法基于局部低秩假设。它也是主要利用用户和物品的评分矩阵进行推荐。
cPM:这是一种价格敏感的旅行推荐方法,利用商户的价格信息作为价格。
FM:这是一种通用的矩阵分解方法,通过特征工程的方式去模仿大多数的矩阵分解模型,本实验利用它的评分矩阵上,并把商户价格信息作为一个特征使用。
CoMF:这是一种联合矩阵分解的方法,同时分解评分矩阵和消费价格信息矩阵,并共享同一个用户隐空间。
EARP-E:这是只使用了第一个关于消费信息和评分有正相关关系的观察的矩阵分解方法。
EARP-U:这是将第一相关度矩阵W拓展为一个向量,并利用了第二个观察规则的矩阵分解方法。
EARP-M:这是将消费信息延伸到多个价格区间,并使用EM算法去获得每个区间的均值的矩阵分解方法。
对于EARP,本实验把价格区间的数量定为5,就像实验中建议的那样,这样的参数结果在实际的数据集中有比较好的效果。规则化系数γ设为0.08,规则化系数β设为0.1。其他方法的参数设定是利用交叉验证的方法,在各个数据集中找到最优的效果,作为最终的参数设定的。
为了量化各种方法结果的好坏,这里引入两个广泛使用的评分预测标准,平均平方根误差(RMSE)和平均绝对值误差(MAE)。通过这两个指标,可以去衡量各种不同的评分预测算法结果的质量。RMSE的定义如下:
R M S E = Σ ( p , q ) ∈ R ( r p , q - r ^ p , q ) 2 | R |
其中,rp,q代表用户p给待推荐消费对象q的真实评分,表示推荐模型对其的预测评分,R表示整个评分集合。
MAE的定义如下:
更小的MAE或者RMSE意味着更好的结果。相比于MAE,RMSE对于大的误差的敏感度更高。
对于每一个数据集,实验随机从评分矩阵中抽样不同比例的训练数据,从60%的训练数据到90%训练数据,每10%为一个间隔,剩下的作为测试数据。每一个随机抽样过程独立重复10次,在表6和表7中分别展示10次有效性实验的RMSE和MAE的平均结果。
表6
表7
从表6和表7中可以看出:
本发明的EARP-E、EARP-U、EARP-M三种方法在大多数情况下比别的方法都好。特别是,EARP-M在各种情况下,总有最优的结果。这个现象验证了消费价格是可以有效提升评分的准确性的。
在LLORMA和PMF方法中只利用了总评分,忽略了消费价格,这两种方法在预测评分时并没有较好的结果。
cPMF,FM和CoMF三种方法同时利用了总评分和消费价格,虽然这些方法混合了消费价格,但它们只是很简单地将消费价格作为一个属性,而不是考虑消费价格独有的特性。所以它们比EARP的效果要差。CoMF中直接分解价格矩阵,引入了更多的误差,这导致了更差的效果。本发明提出的EARP模型不仅能有效地利用消费信息和评分的关系,而且可以很好地融合这些关联。所以EARP在多数情况下有更好的表现。
对比本发明的三个EARP方法,发现它们也有不同的表现。EARP-U比EARP-E表现更好,EARP-M表现最好。这三种EARP的表现验证了之前的观察和假设。EARP-E证明消费价格可以有效提升评分预测的表现,EARP-U说明了个性化用户权重的有效性。EARP-M则表明考虑多个价格区间的有效性。
在价格区间的数量方面,实验中研究了不同数量的消费价格区间对于EARP结果的影响。图6为基于80%的数据集D1,采用EARP-M模型在不同数量的价格区间上得到的推荐结果表现。同时,表8中展示了不同价格区间的均值。从图6中可以清楚地看到EARP-M的表现先是上升,然后随着区间数量的增加在不断下降。当消费价格区间的数量是4、5和6的时候,EARP-M有最好的表现。
表8
价格区间个数 各个价格区间的均值
2 [38,179]
4 [30,71,165,413]
5 [29,68,149,289,584]
6 [29,67,136,213,397,838]
8 [28,66,68,137,160,291,450,803]
这样的结果是有原因的:
当价格区间的数量比较少时,价格区间对于待推荐消费对象的价格区间分布的反映比较粗略,例如,在表8中,当只有2个价格区间[38,179]时,该价格区间很难反映实际的情况。
当价格区间的数量比较大时,可能有很多冗余的消费价格区间。例如,在表8中,当价格区间的数量为8时,区间[66,68]是非常接近的,区间[137,160]也是非常接近的。
当价格区间的数量适中时,价格区间的划分比较合理、可信,能有效地反映待推荐消费对象的消费价格的不同分布。例如,在表8中,当价格区间的数量为5时,29元一般是小吃的消费价格,68元是普通餐厅的消费水平,149元和289元是中档和高档餐厅的消费水平,584元是最高的价格区间。在本发明使用的数据集中,5个价格区间反映了真实的待推荐消费对象的消费价格的分布,并且EARP有最好的表现。所以,在下面的实验中,把消费价格区间的数量定为5。
下面结合具体实验说明构建第一相关度矩阵W和第二相关度矩阵D的意义。
实验方法采用本发明中的EARP-M模型,实验数据仍然采用上述5个数据集D1~D5,并选取每个数据集的80%作为训练数据。
首先,将表征用户在消费价格方面的权值的第一相关度矩阵W作为实验观察对象进行实验。
图7a为每个数据集中的所有用户在5个价格区间均值上的平均第一相关度。从图中可以很明显地看出,价格区间的均值越高,用户的平均第一相关度越高。从这个图中可以发现,第一相关度反映了用户对于价格信息的响应,这也间接印证了规则A。也就是说,用户在较高的价格区间有较高的权重,这意味着用户对高消费价格有更强烈的响应。
图7b为不同类型的用户在5个价格区间均值上的平均第一相关度。具体地说,实验中选定了三种类型的用户:用户的平均消费价格分别是20元、70元和120元的用户,其分别表示了低消费用户、中档消费用户和高档消费用户。然后,实验统计了每一类型用户在5个不同消费价格区间的平均第一相关度。从图7b中可以看出,该实验除了具有与图7a中相似的观察,还可以发现高平均消费价格的用户有较低的权值。也就是说,一个具有高平均消费价格的用户对于同等消费价格的响应更弱。这是可以理解的。当一个具有高平均消费价格的用户在一家餐厅接受服务的时候,他通常关心的是服务质量而不是消费价格。
图7c为特定类型的用户的平均第一相关度。实验将不同用户按平均消费价格分为7个区间,每一个区间间隔是20元,然后计算不同区间内用户的平均第一相关度。从图中可以很清晰地看出,具有更高平均消费价格的用户有更低的平均第一相关度。这个结果证明了图7b中的结果。图7c也能解释规则B,即用户的总评分和用户的真实消费价格与平均消费价格之间的差是成正相关的。当消费价格相同时,例如消费了149元,一个有高平均消费价格的用户更可能去给一个较低的总评分,而一个有低平均消费价格的用户更可能给一个高的总评分。
其次,将表征待推荐消费对象在消费价格方面的权值的第二相关度矩阵D作为实验观察对象进行实验。
图7d为不同类型的待推荐消费对象的平均第二相关度。实验中展示了三种不同类型的待推荐消费对象的平均第二相关度,即平均消费价格在20元左右、150元左右和300元左右的待推荐消费对象。从图7d中可以看到,待推荐消费对象和与其最接近的消费价格区间的关联更紧密,这个可以验证基于EM算法的价格区间划分的有效性。
总体来说,第二相关度矩阵D覆盖了待推荐消费对象的价格分布,第一相关度矩阵W显示了用户对于消费价格的响应。
在本发明提出的模型EARP中,假设每一个用户评论中都存在消费价格的信息。然而,在很多实际的应用中,这些消费价格是缺失的。下面结合实验说明在这种情况下本发明也能够很好地进行评分预测。在数据集D1中随机删除从10%到90%的消费价格数据,以10%为间隔,分别设置实验,测试EARP算法的有效性。图8a和图8b中分别展示了三个EARP模型中消费价格在不同缺失比例下的RMSE误差和MAE误差,这三个模型包括EARP-E、EARP-U和ARP-M。从两图中可以看出,三个EARP模型对于消费价格的缺失都有一定的容忍度。并且,当消费价格缺失得较少时,EARP有较好的表现。以EARP-M为例,当消费价格缺失比例达到80%的时候,该算法依然有不错的表现,并且可以看到EARP-E对于消费价格缺失并不敏感。这个现象的原因是,EARP-E模型中所有用户的第一相关度W相同,其可以从已有的消费价格中学到第一相关度。
图9为本发明实施例提供的消费对象的推荐装置的一种结构示意图,与图1所示方法实施例相对应,应用于客户端,所述装置包括:获得模块901、确定模块902和推荐模块903;
其中,获得模块901,用于获得待推荐消费对象的第一用户;
确定模块902,用于根据保存的每个用户对应的每个待推荐消费对象的第一分数,从所述第一分数中确定所述第一用户对应的每个待推荐消费对象的第二分数;其中,所述第一分数是根据保存的用户针对待推荐消费对象给出的用户评论中的总评分和消费价格,以及预设第一公式确定的;
推荐模块903,用于根据确定的第二分数,从所述待推荐消费对象中选择目标消费对象,并推荐给所述第一用户。
在本实施例中,所述确定模块902还可以用于采用以下步骤确定所述第一分数:
根据保存的用户针对待推荐消费对象给出的用户评论中的总评分和消费价格,以及确定每个用户对应的每个待推荐消费对象的第一分数;
其中,中的元素表示第i个用户对第j个待推荐消费对象的第一分数,Pm×k为m个用户在k个方面的第一评分矩阵,Qn×k为n个待推荐消费对象在k个方面的第二评分矩阵,Wm×T为m个用户与T个价格区间的第一相关度矩阵,Dn×T为n个待推荐消费对象与T个价格区间的第二相关度矩阵,k和T均为预设的整数。
在本实施例中,所述确定模块902还可以用于采用下述步骤确定第二相关度矩阵Dn×T中的第j个待推荐消费对象与第t个价格区间的相关度tjt
根据保存的用户针对待推荐消费对象给出的用户评论中的总评分和消费价格,确定评分矩阵Rm×n和价格矩阵Cm×n,其中m为用户的数量,n为待推荐消费对象的数量,Rm×n中的元素rij表示第i个用户对第j个待推荐消费对象的总评分,Cm×n中的元素cij表示第i个用户在第j个待推荐消费对象上的消费价格;
根据所述Cm×n以及预设的价格区间的数量T,采用最大期望算法EM算法,确定与每个价格区间对应的混合高斯函数;根据所述Cm×n,确定n个待推荐消费对象的平均消费价格;针对第j个待推荐消费对象,根据确定的T个价格区间对应的混合高斯函数以及所述第j个待推荐消费对象的平均消费价格,确定所述第j个待推荐消费对象与第t个价格区间的相关度tjt
在本实施例中,所述确定模块902还可以用于采用以下步骤确定第一评分矩阵Pm×k、第二评分矩阵Qn×k和第一相关度矩阵Wm×T
根据确定的第二相关度矩阵Dn×T、评分矩阵Rm×n和价格矩阵Cm×n,以及预设第二公式,确定所述第一评分矩阵Pm×k、第二评分矩阵Qn×k和第一相关度矩阵Wm×T
在本实施例中,所述确定模块902具体可以用于:
根据确定的第二相关度矩阵Dn×T、评分矩阵Rm×n和价格矩阵Cm×n,以及确定所述第一评分矩阵Pm×k、第二评分矩阵Qn×k和第一相关度矩阵Wm×T;其中,所述Pm×k、Qn×k和Wm×T为采用随机梯度下降算法迭代得到的当L(P,Q,W)取最小值时对应的Pm×k、Qn×k和Wm×T,γ和β为权衡参数,||·||F为弗罗贝尼乌斯范数,T为矩阵的转置,⊙为矩阵的点积,Im×n为指示矩阵,Im×n中的元素Iij取0或1,当第i个用户对第j个待推荐消费对象给出总评分时,Iij取1,当第i个用户没有对第j个待推荐消费对象给出总评分时,Iij取0。
由于上述装置实施例是基于方法实施例得到的,与该方法具有相同的技术效果,因此装置实施例的技术效果在此不再赘述。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解,上述实施方式中的全部或部分步骤是能够通过程序指令相关的硬件来完成的,所述的程序可以存储于计算机可读取存储介质中。这里所称存储介质,是指ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种消费对象的推荐方法,其特征在于,应用于客户端,所述方法包括:
获得待推荐消费对象的第一用户;
根据保存的每个用户对应的每个待推荐消费对象的第一分数,从所述第一分数中确定所述第一用户对应的每个待推荐消费对象的第二分数;其中,所述第一分数是根据保存的用户针对待推荐消费对象给出的用户评论中的总评分和消费价格,以及预设第一公式确定的;
根据确定的第二分数,从所述待推荐消费对象中选择目标消费对象,并推荐给所述第一用户。
2.根据权利要求1所述的推荐方法,其特征在于,所述第一分数是采用以下步骤确定的:
根据保存的用户针对待推荐消费对象给出的用户评论中的总评分和消费价格,以及确定每个用户对应的每个待推荐消费对象的第一分数;
其中,中的元素表示第i个用户对第j个待推荐消费对象的第一分数,Pm×k为m个用户在k个方面的第一评分矩阵,Qn×k为n个待推荐消费对象在k个方面的第二评分矩阵,Wm×T为m个用户与T个价格区间的第一相关度矩阵,Dn×T为n个待推荐消费对象与T个价格区间的第二相关度矩阵,k和T均为预设的整数。
3.根据权利要求2所述的推荐方法,其特征在于,所述第二相关度矩阵Dn×T中的第j个待推荐消费对象与第t个价格区间的相关度tjt是采用下述步骤确定的:
根据保存的用户针对待推荐消费对象给出的用户评论中的总评分和消费价格,确定评分矩阵Rm×n和价格矩阵Cm×n,其中m为用户的数量,n为待推荐消费对象的数量,Rm×n中的元素rij表示第i个用户对第j个待推荐消费对象的总评分,Cm×n中的元素cij表示第i个用户在第j个待推荐消费对象上的消费价格;
根据所述Cm×n以及预设的价格区间的数量T,采用最大期望算法EM算法,确定与每个价格区间对应的混合高斯函数;根据所述Cm×n,确定n个待推荐消费对象的平均消费价格;针对第j个待推荐消费对象,根据确定的T个价格区间对应的混合高斯函数以及所述第j个待推荐消费对象的平均消费价格,确定所述第j个待推荐消费对象与第t个价格区间的相关度tjt
4.根据权利要求2所述的推荐方法,其特征在于,所述第一评分矩阵Pm×k、第二评分矩阵Qn×k和第一相关度矩阵Wm×T是采用以下步骤确定的:
根据确定的第二相关度矩阵Dn×T、评分矩阵Rm×n和价格矩阵Cm×n,以及预设第二公式,确定所述第一评分矩阵Pm×k、第二评分矩阵Qn×k和第一相关度矩阵Wm×T
5.根据权利要求4所述的推荐方法,其特征在于,所述根据确定的第二相关度矩阵Dn×T、评分矩阵Rm×n和价格矩阵Cm×n,以及预设第二公式,确定所述第一评分矩阵Pm×k、第二评分矩阵Qn×k和第一相关度矩阵Wm×T包括:
根据确定的第二相关度矩阵Dn×T、评分矩阵Rm×n和价格矩阵Cm×n,以及确定所述第一评分矩阵Pm×k、第二评分矩阵Qn×k和第一相关度矩阵Wm×T;其中,所述Pm×k、Qn×k和Wm×T为采用随机梯度下降算法迭代得到的当L(P,Q,W)取最小值时对应的Pm×k、Qn×k和Wm×T,γ和β为权衡参数,||·||F为弗罗贝尼乌斯范数,T为矩阵的转置,⊙为矩阵的点积,Im×n为指示矩阵,Im×n中的元素Iij取0或1,当第i个用户对第j个待推荐消费对象给出总评分时,Iij取1,当第i个用户没有对第j个待推荐消费对象给出总评分时,Iij取0。
6.一种消费对象的推荐装置,其特征在于,应用于客户端,所述装置包括:
获得模块,用于获得待推荐消费对象的第一用户;
确定模块,用于根据保存的每个用户对应的每个待推荐消费对象的第一分数,从所述第一分数中确定所述第一用户对应的每个待推荐消费对象的第二分数;其中,所述第一分数是根据保存的用户针对待推荐消费对象给出的用户评论中的总评分和消费价格,以及预设第一公式确定的;
推荐模块,用于根据确定的第二分数,从所述待推荐消费对象中选择目标消费对象,并推荐给所述第一用户。
7.根据权利要求6所述的推荐装置,其特征在于,所述确定模块还用于采用以下步骤确定所述第一分数:
根据保存的用户针对待推荐消费对象给出的用户评论中的总评分和消费价格,以及确定每个用户对应的每个待推荐消费对象的第一分数;
其中,中的元素表示第i个用户对第j个待推荐消费对象的第一分数,Pm×k为m个用户在k个方面的第一评分矩阵,Qn×k为n个待推荐消费对象在k个方面的第二评分矩阵,Wm×T为m个用户与T个价格区间的第一相关度矩阵,Dn×T为n个待推荐消费对象与T个价格区间的第二相关度矩阵,k和T均为预设的整数。
8.根据权利要求7所述的推荐装置,其特征在于,所述确定模块还用于采用下述步骤确定第二相关度矩阵Dn×T中的第j个待推荐消费对象与第t个价格区间的相关度tjt
根据保存的用户针对待推荐消费对象给出的用户评论中的总评分和消费价格,确定评分矩阵Rm×n和价格矩阵Cm×n,其中m为用户的数量,n为待推荐消费对象的数量,Rm×n中的元素rij表示第i个用户对第j个待推荐消费对象的总评分,Cm×n中的元素cij表示第i个用户在第j个待推荐消费对象上的消费价格;
根据所述Cm×n以及预设的价格区间的数量T,采用最大期望算法EM算法,确定与每个价格区间对应的混合高斯函数;根据所述Cm×n,确定n个待推荐消费对象的平均消费价格;针对第j个待推荐消费对象,根据确定的T个价格区间对应的混合高斯函数以及所述第j个待推荐消费对象的平均消费价格,确定所述第j个待推荐消费对象与第t个价格区间的相关度tjt
9.根据权利要求7所述的推荐装置,其特征在于,所述确定模块还用于采用以下步骤确定第一评分矩阵Pm×k、第二评分矩阵Qn×k和第一相关度矩阵Wm×T
根据确定的第二相关度矩阵Dn×T、评分矩阵Rm×n和价格矩阵Cm×n,以及预设第二公式,确定所述第一评分矩阵Pm×k、第二评分矩阵Qn×k和第一相关度矩阵Wm×T
10.根据权利要求9所述的推荐装置,其特征在于,所述确定模块具体用于:
根据确定的第二相关度矩阵Dn×T、评分矩阵Rm×n和价格矩阵Cm×n,以及确定所述第一评分矩阵Pm×k、第二评分矩阵Qn×k和第一相关度矩阵Wm×T;其中,所述Pm×k、Qn×k和Wm×T为采用随机梯度下降算法迭代得到的当L(P,Q,W)取最小值时对应的Pm×k、Qn×k和Wm×T,γ和β为权衡参数,||·||F为弗罗贝尼乌斯范数,T为矩阵的转置,⊙为矩阵的点积,Im×n为指示矩阵,Im×n中的元素Iij取0或1,当第i个用户对第j个待推荐消费对象给出总评分时,Iij取1,当第i个用户没有对第j个待推荐消费对象给出总评分时,Iij取0。
CN201610312878.8A 2016-05-12 2016-05-12 一种消费对象的推荐方法及装置 Pending CN106022869A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610312878.8A CN106022869A (zh) 2016-05-12 2016-05-12 一种消费对象的推荐方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610312878.8A CN106022869A (zh) 2016-05-12 2016-05-12 一种消费对象的推荐方法及装置

Publications (1)

Publication Number Publication Date
CN106022869A true CN106022869A (zh) 2016-10-12

Family

ID=57100147

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610312878.8A Pending CN106022869A (zh) 2016-05-12 2016-05-12 一种消费对象的推荐方法及装置

Country Status (1)

Country Link
CN (1) CN106022869A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649748A (zh) * 2016-12-26 2017-05-10 深圳先进技术研究院 信息推荐方法及装置
CN107016118A (zh) * 2017-04-20 2017-08-04 上海喆之信息科技有限公司 一种用于网站的安全搜索系统
CN107578270A (zh) * 2017-08-03 2018-01-12 中国银联股份有限公司 一种金融标签的构建方法、装置及计算设备
CN107679945A (zh) * 2017-09-27 2018-02-09 北京小度信息科技有限公司 建立消费对象推荐模型的方法以及相关方法及装置
CN108073578A (zh) * 2016-11-07 2018-05-25 阿里巴巴集团控股有限公司 一种进行对象推荐的方法和系统
WO2018095049A1 (zh) * 2016-11-22 2018-05-31 华为技术有限公司 生成推荐结果的方法和装置
CN108520450A (zh) * 2018-03-21 2018-09-11 电子科技大学 基于隐式反馈信息的局部低秩矩阵近似的推荐方法及系统
WO2019037622A1 (zh) * 2017-08-22 2019-02-28 阿里巴巴集团控股有限公司 一种订购处理方法、提供预约服务方法及设备
CN110263257A (zh) * 2019-06-24 2019-09-20 北京交通大学 基于深度学习的多源异构数据混合推荐模型
CN110473043A (zh) * 2018-05-11 2019-11-19 北京京东尚科信息技术有限公司 一种基于用户行为的物品推荐方法和装置
CN111859188A (zh) * 2020-07-03 2020-10-30 美味不用等(上海)信息科技股份有限公司 基于大规模矩阵的层次分析的餐厅推荐的方法和系统
CN112800329A (zh) * 2021-01-29 2021-05-14 深圳维创乐科技有限公司 信息推送方法、装置、电子设备及存储介质
CN116204688A (zh) * 2023-05-04 2023-06-02 量子数科科技有限公司 一种基于键入搜索词推荐用户搜索词的方法

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108073578B (zh) * 2016-11-07 2021-08-17 阿里巴巴集团控股有限公司 一种进行对象推荐的方法和系统
CN108073578A (zh) * 2016-11-07 2018-05-25 阿里巴巴集团控股有限公司 一种进行对象推荐的方法和系统
WO2018095049A1 (zh) * 2016-11-22 2018-05-31 华为技术有限公司 生成推荐结果的方法和装置
CN106649748A (zh) * 2016-12-26 2017-05-10 深圳先进技术研究院 信息推荐方法及装置
CN107016118A (zh) * 2017-04-20 2017-08-04 上海喆之信息科技有限公司 一种用于网站的安全搜索系统
CN107578270A (zh) * 2017-08-03 2018-01-12 中国银联股份有限公司 一种金融标签的构建方法、装置及计算设备
WO2019037622A1 (zh) * 2017-08-22 2019-02-28 阿里巴巴集团控股有限公司 一种订购处理方法、提供预约服务方法及设备
CN107679945A (zh) * 2017-09-27 2018-02-09 北京小度信息科技有限公司 建立消费对象推荐模型的方法以及相关方法及装置
CN108520450A (zh) * 2018-03-21 2018-09-11 电子科技大学 基于隐式反馈信息的局部低秩矩阵近似的推荐方法及系统
CN108520450B (zh) * 2018-03-21 2021-09-24 电子科技大学 基于隐式反馈信息的局部低秩矩阵近似的推荐方法及系统
CN110473043A (zh) * 2018-05-11 2019-11-19 北京京东尚科信息技术有限公司 一种基于用户行为的物品推荐方法和装置
CN110263257B (zh) * 2019-06-24 2021-08-17 北京交通大学 基于深度学习处理多源异构数据的推荐方法
CN110263257A (zh) * 2019-06-24 2019-09-20 北京交通大学 基于深度学习的多源异构数据混合推荐模型
CN111859188B (zh) * 2020-07-03 2024-03-12 美之味(上海)信息技术有限公司 基于大规模矩阵的层次分析的餐厅推荐的方法和系统
CN111859188A (zh) * 2020-07-03 2020-10-30 美味不用等(上海)信息科技股份有限公司 基于大规模矩阵的层次分析的餐厅推荐的方法和系统
CN112800329A (zh) * 2021-01-29 2021-05-14 深圳维创乐科技有限公司 信息推送方法、装置、电子设备及存储介质
CN116204688A (zh) * 2023-05-04 2023-06-02 量子数科科技有限公司 一种基于键入搜索词推荐用户搜索词的方法
CN116204688B (zh) * 2023-05-04 2023-06-30 量子数科科技有限公司 一种基于键入搜索词推荐用户搜索词的方法

Similar Documents

Publication Publication Date Title
CN106022869A (zh) 一种消费对象的推荐方法及装置
Mulet-Forteza et al. A bibliometric research in the tourism, leisure and hospitality fields
Dong et al. Predicting neighborhoods’ socioeconomic attributes using restaurant data
US7774227B2 (en) Method and system utilizing online analytical processing (OLAP) for making predictions about business locations
EP2304619B1 (en) Correlated information recommendation
Zhai et al. Mapping the popularity of urban restaurants using social media data
CN107633430A (zh) 一种基于群体社区的商品推荐方法
Pan et al. User activity measurement in rating-based online-to-offline (O2O) service recommendation
CN106251174A (zh) 信息推荐方法及装置
CN106294758A (zh) 基于用户认知度变化的协同推荐方法
CN103246681A (zh) 一种搜索方法及装置
CN106610970A (zh) 基于协同过滤的内容推荐系统与方法
CN102339448B (zh) 团购平台信息处理方法及装置
CN110276012A (zh) 一种可视化用户画像的生成方法、装置和计算设备
Fan et al. Consumer clusters detection with geo-tagged social network data using DBSCAN algorithm: a case study of the Pearl River Delta in China
CN103365842B (zh) 一种页面浏览推荐方法及装置
CN105894310A (zh) 一种个性化推荐方法
Zhang et al. FM-based: algorithm research on rural tourism recommendation combining seasonal and distribution features
CN106030627A (zh) 真实世界位置的基于位置的评级
CN105808541A (zh) 一种信息匹配处理方法和装置
CN104050243A (zh) 一种将搜索与社交相结合的网络搜索方法及其系统
CN103353865A (zh) 一种基于位置的易货电子交易商品推荐方法
CN107274247A (zh) 基于云计算的智慧感知推荐方法
CN107545457A (zh) 汽车竞品车型确定方法及装置
CN106777069A (zh) 基于矩阵因子分解的个性化推荐方法及推荐系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20161012