一种用户推荐方法、装置、电子设备及存储介质
文献发布时间:2024-04-18 19:58:26
技术领域
本说明书一个或多个实施例涉及电子信息技术,尤其涉及一种用户推荐方法、装置、电子设备及存储介质。
背景技术
随着计算机技术的飞速发展,用户可以通过应用来完成日常的生活行为,如付款、转账、乘坐公交等。同时,用户的生活行为还可以在应用中累积虚拟资产,用户通过收集特定的虚拟资产组合可以完成应用上的活动。为了完成特定的虚拟资产组合,用户可以将自身多余的虚拟资产与好友多余的虚拟资产进行互换。
然而,目前用户较难快速找到拥有用户缺少资产的好友,和好友的互换效率不佳。
发明内容
本说明书一个或多个实施例描述了一种用户推荐方法、装置、电子设备及存储介质,能够提高好友资产的互换效率。
根据第一方面,提供了一种用户推荐方法,包括:
获取目标用户和各关联用户的资产数据;
基于所述资产数据生成第一矩阵和第二矩阵;其中,所述第一矩阵为用户和特征向量的评分矩阵,所述第二矩阵为目标资产和所述特征向量的评分矩阵,所述目标资产包括需求资产和多余资产;
基于所述特征向量分别计算各所述关联用户对于目标需求资产的第一相似度;其中,所述目标需求资产为所述目标用户的需求资产;
确定第一预设数量的目标关联用户,向所述目标用户推荐所述目标关联用户;其中,所述目标关联用户的第一相似度均小于非目标关联用户的第一相似度。
相应地,所述获取目标用户和各关联用户的资产数据,包括:
接收推荐请求指令,响应所述推荐请求指令并获取目标用户和各关联用户的资产数据。
相应地,所述基于所述资产数据生成第一矩阵和第二矩阵,包括:
基于所述资产数据生成第三矩阵;其中,所述资产数据包括用户名称、资产名称和资产数量,所述第三矩阵为用户和目标资产的评分矩阵,所述目标资产对应的所述资产数量不等于第二预设数量;
对所述第三矩阵进行矩阵分解,得到第一矩阵和第二矩阵。
相应地,所述基于所述资产数据生成第三矩阵,包括:
在所述资产数据中确定第一资产数据;其中,所述第一资产数据为所述资产数量不等于所述第二预设数量的所述资产数据;
在所述第一资产数据中确定第二资产数据;其中,所述第二资产数据为资产种类与所述目标用户对应目标资产的资产种类匹配的所述第一资产数据;
基于所述第二资产数据生成第三矩阵;其中,所述第三矩阵中所述需求资产对应的第三矩阵元素被赋予第一数值,所述多余资产对应的第三矩阵元素被赋予第二数值,所述第一数值大于第二数值。
相应地,所述第一矩阵的第一矩阵元素和第二矩阵中的第二矩阵元素的初始值均为随机赋值;
所述基于所述资产数据生成第一矩阵和第二矩阵之后,还包括:
对所述第一矩阵元素和第二矩阵元素进行点集相乘,得到乘积结果;
比较所述乘积结果与所述第三矩阵元素,根据比较结果校准所述第一矩阵元素和/或第二矩阵元素;其中,进行比较的所述乘积结果和第三矩阵元素对应的用户和需求资产均相同。
相应地,所述比较所述乘积结果与所述第三矩阵元素,根据比较结果校准所述第一矩阵元素和/或第二矩阵元素,包括:
比较所述乘积结果与所述第三矩阵元素;
当所述乘积结果与第三矩阵元素之差大于预设差值时,校准所述第一矩阵元素和/或第二矩阵元素,用以使校准后的所述乘积结果与第三矩阵元素之差不大于所述预设差值;
重复所述比较所述乘积结果与所述第三矩阵元素的步骤,直至任意所述乘积结果与第三矩阵元素之差均不大于所述预设差值。
相应地,所述基于所述特征向量分别计算各所述关联用户对于目标需求资产的第一相似度,包括:
基于协同过滤算法计算所述特征向量,得到各所述关联用户对于目标需求资产的第一相似度。
相应地,所述基于协同过滤算法计算所述特征向量,得到各所述关联用户对于目标需求资产的第一相似度,包括:
在所述第一矩阵中获取所述关联用户对应的第一特征向量,并在所述第二矩阵中获取目标需求资产对应的第二特征向量;
基于协同过滤算法计算所述第一特征向量和第二特征向量,得到各所述关联用户对于所述目标需求资产的第一相似度。
相应地,所述基于所述特征向量分别计算各所述关联用户对于目标需求资产的第一相似度之后,还包括:
基于所述特征向量分别计算各所述关联用户对于目标多余资产的第二相似度;其中,所述目标多余资产为所述目标用户的多余资产;
所述向所述目标用户推荐所述目标关联用户,包括:
基于所述第二相似度由高到低的顺序对所述目标关联用户排序,并根据排序顺序向所述目标用户推荐所述目标关联用户。
相应地,针对至少两个所述目标需求资产,每个所述目标关联用户的各第一相似度之和均小于每个非目标关联用户的各第一相似度之和。
根据第二方面,提供了一种用户推荐装置,所述装置包括:
资产数据获取模块,用于获取目标用户和各关联用户的资产数据;
矩阵生成模块,用于基于所述资产数据生成第一矩阵和第二矩阵;其中,所述第一矩阵为用户和特征向量的评分矩阵,所述第二矩阵为目标资产和所述特征向量的评分矩阵,所述目标资产包括需求资产和多余资产;
第一相似度计算模块,用于基于所述特征向量分别计算各所述关联用户对于目标需求资产的第一相似度;其中,所述目标需求资产为所述目标用户的需求资产;
用户推荐模块,用于确定第一预设数量的目标关联用户,向所述目标用户推荐所述目标关联用户;其中,所述目标关联用户的第一相似度均小于非目标关联用户的第一相似度。
根据第三方面,提供了一种电子设备,包括处理器以及存储器;
所述处理器与所述存储器相连;
所述存储器,用于存储可执行程序代码;
所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行如第一方面或第一方面的任意一种可能的实现方式提供的方法的步骤。
根据第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机可读存储介质中存储有指令,当所述指令在计算机或处理器上运行时,使得所述计算机或处理器执行如第一方面或第一方面的任意一种可能的实现方式提供的方法。
本说明书实施例提供的方法及装置,能够通过第一矩阵和第二矩阵中特征向量的计算第一相似度,查找与目标用户负相关的目标关联用户,进而查找到能够换取目标用户所需资产的好友。计算的数据维度只需要用户和资产的关系,无需多维数据计算,数据计算量级小,能快速找到符合条件的好友,资产互换效率高。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书一个实施例所应用的系统架构的示意图。
图2是本说明书一个实施例中在一种用户推荐方法的流程图。
图3是本说明书一个实施例中用户进行推荐操作的示意图。
图4是本说明书一个实施例中第三矩阵的举例示意图。
图5是本说明书一个实施例中第一矩阵的举例示意图。
图6是本说明书一个实施例中第二矩阵的举例示意图。
图7是本说明书一个实施例中好友推荐后的示意图。
图8是本说明书一个实施例中在一种用户推荐装置的结构示意图。
图9是本说明书一个实施例中在一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在下述介绍中,术语“第一”、“第二”仅为用于描述的目的,而不能理解为指示或暗示相对重要性。下述介绍提供了本申请的多个实施例,不同实施例之间可以替换或者合并组合,因此本申请也可认为包含所记载的相同和/或不同实施例的所有可能组合。因而,如果一个实施例包含特征A、B、C,另一个实施例包含特征B、D,那么本申请也应视为包括含有A、B、C、D的一个或多个所有其他可能的组合的实施例,尽管该实施例可能并未在以下内容中有明确的文字记载。
下面的描述提供了示例,并且不对权利要求书中阐述的范围、适用性或示例进行限制。可以在不脱离本申请内容的范围的情况下,对描述的元素的功能和布置做出改变。各个示例可以适当省略、替代或添加各种过程或组件。例如所描述的方法可以以所描述的顺序不同的顺序来执行,并且可以添加、省略或组合各种步骤。此外,可以将关于一些示例描述的特征组合到其他示例中。
为了方便对本说明书提供的方法进行理解,首先对本说明书所涉及和适用的系统架构进行描述。如图1中所示,该系统架构中主要包括两个网络节点:终端设备10、检测方20。
其中终端设备10中安装并执行有各种应用、第三方代码等。检测方20可以是检测终端设备10中应用数据,并对应用数据进行响应或控制的一方,比如该检测方20可以是服务器。
应该理解,图1中的终端设备10及检测方20的数目仅仅是示意性的。根据实现需要,可以选择和布设任意数目。
图2是本说明书一个实施例中在终端设备中实现一种用户推荐方法的流程图。该方法的执行主体可以是上述图1中的检测方。可以理解,该方法也可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。参见图2,该方法包括:
步骤201:获取目标用户和各关联用户的资产数据。
步骤203:基于所述资产数据生成第一矩阵和第二矩阵。
步骤205:基于所述特征向量分别计算各所述关联用户对于目标需求资产的第一相似度。
步骤207:确定第一预设数量的目标关联用户,向所述目标用户推荐所述目标关联用户。
可见,在上述图2所示的流程中,检测方可以通过获取终端设备中需要进行好友推荐的目标用户和与其相关的各个关联用户的资产数据,并根据资产数据生成用户与特征向量的第一矩阵和目标资产和特征向量的第二矩阵。根据第一矩阵和第二矩阵中的特征向量,检测方可以计算确定出各个关联用户对于目标用户需求的目标需求资产的第一相似度。可以与目标用户进行资产互换的关联用户,应该对目标需求资产没有需求,即可以进行资产互换的关联用户的第一相似度表征的数值趋势应该与目标用户相反,这些关联用户可以为目标关联用户。检测方可以确定出第一预设数量(一般可以至少设置有2个)的目标关联用户,并可以将这些目标关联用户推荐给目标用户,使目标用户可以快速找到符合资产互换条件的好友,资产互换效率高。
下面结合具体的例子及实施例对图2中的每一个步骤分别进行说明。
首先,对于步骤201:获取目标用户和各关联用户的资产数据。
在本步骤201中,目标用户可以是终端设备的应用中已经登陆的账号对应的用户。关联用户可以是与目标用户具有关联关系的其他用户,关联关系可以是好友关系,也可以是目标用户根据自身需求而指定设置的与相应用户的关系,还可以是与曾经跟目标用户具有过交互的用户的关系,还可以是其他任意能够将其他用户与目标用户关联起来的关系。资产数据可以是用户在应用中的数字资产,根据应用和应用中活动的不同,数字资产的形式也可以不同,例如卡片、碎片、徽章等。
在本说明书实施例中,检测方为了对目标用户进行可互换资产的用户的推荐,其可以先识别目标用户和与目标用户具有关联关系的关联用户,接着在数据库中可以查找获取目标用户和各个关联用户的资产数据。根据资产数据,检测方可以确定出每个用户具有哪些资产、需要哪些资产、可以互换哪些资产。
接下来,对于步骤203:基于所述资产数据生成第一矩阵和第二矩阵。
在本步骤203中,第一矩阵可以是用户和特征向量的评分矩阵,第二矩阵可以是目标资产和所述特征向量的评分矩阵。目标资产可以包括需求资产和多余资产。对于应用中的某个资产收集活动而言,一般可以收集多个不同种类的资产,且每个种类的资产满足指定数量,较多数情况为一个,便可以完成资产收集活动。可见,根据用户对于各个种类的资产的收集情况大体可以分为三类,一类是用户还完全没有该种类的资产,一类是用户正好拥有满足收集条件对应数量的资产,一类是用户拥有超过收集条件对应数量的资产。考虑到用户在第二类情况下,将很少具有将该种类资产互换出去,或者需求该种类资产的意愿,对目标用户进行用户推荐时,可以避免推荐处于第二类情况下的用户。因此,检测方可以将用户第一类和第三类情况下的资产作为判断数据,即需求资产和多余资产。
其中,评分矩阵是在协同过滤推荐系统中使用的一种表示一个对象与另一个对象之间交互行为的矩阵。它以一个对象为行,以另一个对象为列,矩阵中的每个元素表示一个对象对另一个对象的评分或交互行为。
在本说明书实施例中,为了便于后续对各个用户之间对于某一个资产的相似度进行计算,以判断各个用户对于同一资产的需求情况,可以在从各个用户的资产数据中确定出目标资产后,检测方可以引入特征向量来分别构建用户和特征向量的第一矩阵、目标资产和特征向量的第二矩阵。具体而言,特征向量可以使用LFM模型确定。
LFM模型是一种用于推荐系统的模型,全称为Latent Factor Model,中文名为潜在因子模型。该模型假设每个用户和每个物品都可以用一个向量表示,其中向量的维度是潜在因子的数量。这些潜在因子代表了用户和物品在不同方面的特点,比如音乐推荐中的流派、歌手、节奏等。
通过对LFM模型的训练,可以确定各个特征向量的具体数值。LFM模型的训练过程就是通过学习用户和物品的向量表示来预测用户的行为。具体来说,LFM模型通过最小化真实评分与预测评分之间的差距来更新用户和物品的向量表示。常见的更新方法可以包括梯度下降法和随机梯度下降法。
接下来,对于步骤205:基于所述特征向量分别计算各所述关联用户对于目标需求资产的第一相似度。
在本步骤205中,目标需求资产可以是目标用户的资产数据中的需求资产,即目标用户需要互换得到的资产。
在本说明书实施例中,本次推荐过程的推荐对象可以是目标用户,因此可以根据目标用户所没有的资产,即目标需求资产来进行用户推荐,向目标用户推荐出拥有多余资产,且多余资产的资产种类与目标需求资产的资产种类相同的关联用户。检测方可以通过相似度计算的方式来确定各个关联用户对于目标需求资产的持有情况。具体而言,在矩阵中,可以设置不同的两个向量数值表示用户对于需求资产和多余资产的需求情况,例如,可以在矩阵中用1来表示用户的需求资产,用0来表示用户的多余资产。那么,对于某个关联用户而言,其可以通过对第一矩阵和第二矩阵中的特征向量计算得到第一相似度的数值,若更加接近1,则说明对于该关联用户而言,该目标需求资产对其来说更可能是需求资产。若更加接近0,则说明对于该关联用户而言,该目标需求资产对其来说更可能是多余资产。
在本说明书实施例中,第一相似度可以通过余弦相似度(Cosine Similarity)、欧几里得距离(Euclidean Distance)、曼哈顿距离(Manhattan Distance)等方式计算得到。其中,余弦相似度是用来衡量两个向量方向的相似程度,而不考虑其长度。欧几里得距离是计算两个向量之间的欧几里得空间距离,即两个向量的各个维度之间差值的平方和的平方根。曼哈顿距离是计算两个向量之间的各个维度差值之和。
接下来,对于步骤207:确定第一预设数量的目标关联用户,向所述目标用户推荐所述目标关联用户。
在步骤207中,可以以更高的向量数值来表示用户的需求资产,以更低的向量数值来表示用户的多余资产,故计算得到的第一相似度越小,则可以说明目标需求资产更可能是该关联用户的多余资产,这些关联用户可以是适合推荐给目标用户的目标关联用户。
在本说明书实施例中,检测方会根据第一相似度的大小,可以从关联用户中确定出第一相似度最小的一批目标关联用户,这些目标关联用户可以看作是与目标用户的相似性差距最大的关联用户,更可能拥有多余的且目标用户需求的资产。因此,检测方可以将向目标用户推荐这些目标关联用户。具体而言,推荐方式可以是在终端设备的应用中的关联用户界面中,优先排序展示目标关联用户,也可以是在目标关联用户处展示推荐标识,还可以是任意向目标用户展示目标关联用户的方式。
相应地,步骤201中获取目标用户和各关联用户的资产数据的一种实现方式包括:
步骤2011:接收推荐请求指令,响应所述推荐请求指令并获取目标用户和各关联用户的资产数据。
在本说明书实施例中,如图3所示,终端设备的使用者如果想要与关联用户进行资产互换,且希望应用能够自动推荐一些合适的关联用户,其可以打开终端设备的应用中的关联用户界面,并在标识有“推荐排序”字样的图标处进行点击/按压/触碰操作。终端设备根据使用者的点击/按压/触碰操作而产生的电信号,可以向检测方发送推荐请求指令。检测方在接收到推荐请求指令后,会对推荐请求指令进行响应,并开始执行本实施例的关联用户推荐流程。具体而言,检测方可以开始获取目标用户和各个关联用户的资产数据。
相应地,步骤203中基于所述资产数据生成第一矩阵和第二矩阵的一种实现方式包括:
步骤2031:基于所述资产数据生成第三矩阵。
步骤2033:对所述第三矩阵进行矩阵分解,得到第一矩阵和第二矩阵。
在步骤2031中,资产数据中可以包括有用户的用户名称、用户拥有的各个资产对应的资产种类名称、每种资产的持有数量。为了更好的生成第一矩阵和第二矩阵,在本实施例中,检测方可以首先根据资产数据生成第三矩阵,即用户-目标资产评分矩阵,且矩阵中每个目标资产对应的资产数量不等于第二预设数量。第二预设数量可以是正好满足资产收集条件的资产数量。矩阵中,行表示用户,列表示物品,矩阵中的每个元素可以表示用户对物品的评分。示例性的,如图4所示,图中矩阵R即为第三矩阵,用户的多余资产会标为0,用户的需求资产会标为1。
在本说明书实施例中,构建矩阵的目的可以是为了寻找到与目标用户相似度最低的关联用户,使得目标用户能够与寻找到的关联用户进行资产互换。那么,若关联用户对于某一种类资产的资产数量刚好满足第二预设数量,即该关联用户既不需求该种类的资产,也没有多余的该种类资产,则该关联用户进行资产互换的意愿是较低的。因此,这些关联用户或者关联用户的某些资产在构建评分矩阵时可以被排除,不然可能会增加矩阵的计算复杂度,且最终的推荐效果也不佳。
示例性的,由于本实施例是为了对目标用户进行推荐,在构建第三矩阵时,可以优先以目标用户对应的目标资产作为矩阵构建的标准。具体而言,假设资产种类共有A、B、C、D四类,而对于目标用户来说,其目标资产对应的种类是资产A和资产B,那么在构建第三矩阵时,可以优先以资产A和资产B作为矩阵元素,进而以此对关联用户进行筛选,以排除掉资产A和/或资产B不是自身目标资产的关联用户。可以预见的是,这样的筛选方式,会将仅有资产A或资产B中的一种资产不是目标资产,但另一个是目标资产的关联用户也筛除掉。但是在本实施例中,考虑到仅有一项资产满足条件的关联用户,其相对于多项均满足条件的关联用户而言,与目标用户的相似度差距会更小,而本实施例是为了寻找到相似度差距最大的一批关联用户,故这样的方式不太会影响最终结果的准确性。当然,在其他实施例中,也可以根据各用户全部的资产数据来构建第三矩阵,在矩阵中,满足第二预设数量的资产可以以一个额外的向量数值表示,或者在相似度计算时满足第二预设数量的资产的特征向量以0来表示。只要能够根据第三矩阵分解确定出第一矩阵和第二矩阵,都应该属于本申请的一种可实施方式。
在本说明书实施例中,对第三矩阵的矩阵分解过程可以使用LFM(Funk SVD),LFM(Funk SVD)是利用矩阵分解的推荐算法:R=P*Q。其中,P矩阵是用户-LF矩阵,即用户和隐含的特征向量的第一矩阵;Q矩阵是LF-目标资产矩阵,即隐含的特征向量和目标资产的第二矩阵;R矩阵是用户-目标资产矩阵,由P*Q得来。根据第三矩阵R,可以反推第一矩阵P和第二矩阵Q的数据。示例性的,第一矩阵可以如图5所示,第二矩阵可以如图6所示。
相应地,步骤2031中基于所述资产数据生成第三矩阵的一种实现方式,包括:
步骤20311:在所述资产数据中确定第一资产数据。
步骤20313:在所述第一资产数据中确定第二资产数据。
步骤20315:基于所述第二资产数据生成第三矩阵。
其中,第一资产数据为资产数量不等于第二预设数量的资产数据。第二资产数据为资产种类与目标用户对应目标资产的资产种类匹配的第一资产数据。第三矩阵中需求资产对应的第三矩阵元素被赋予第一数值,多余资产对应的第三矩阵元素被赋予第二数值,第一数值大于第二数值。
在本说明书实施例中,检测方可以以目标资产来构建第三矩阵,因此可以在资产数据中确定出第一资产数据,其余数据可以不作为构建第三矩阵的数据。虽然第一资产数据均满足本实施例构建第三矩阵的条件,但考虑到本实施例是为了向目标用户进行关联用户推荐,应该优先考虑目标用户的资产情况。因此,可以从第一资产数据中,确定能够与目标用户的目标资产的资产种类匹配的第二资产数据,其余数据对于目标用户的此次推荐过程是没有帮助的,将被筛除。最终,检测方可以以第二资产数据生成第三矩阵。示例性的,如图4所示,第一数值可以是1,第二数值可以是0。
相应地,所述第一矩阵的第一矩阵元素和第二矩阵中的第二矩阵元素的初始值均为随机赋值;
在步骤203之后,还进一步包括:
步骤2031:对所述第一矩阵元素和第二矩阵元素进行点集相乘,得到乘积结果。
步骤2033:比较所述乘积结果与所述第三矩阵元素,根据比较结果校准所述第一矩阵元素和/或第二矩阵元素。
其中,进行比较的乘积结果和第三矩阵元素对应的用户和需求资产均相同。
在本说明书实施例中,对于根据第三矩阵分解得到的第一矩阵和第二矩阵,检测方首先可以为第一矩阵中的用户和第二矩阵中的目标资产随机初始化一个固定长度的隐向量作为特征向量。由于矩阵中的元素的初始值是随机赋值的,故矩阵中的元素可能并不能较好的反映出第三矩阵的情况。因此,可以对第一矩阵和第二矩阵进行LFM模型训练过程。训练过程具体可以为通过迭代的方式优化隐向量。在每一次迭代中,模型根据用户的评分数据和当前的隐向量进行预测,并计算预测值与实际评分之间的差距(如均方差)。然后使用梯度下降法来更新隐向量,使得预测值逐渐接近实际评分。重复上述训练过程,直到达到预定的迭代次数或收敛条件。在训练完成后,每个用户和目标资产都有了一个确定的隐向量表示。
示例性的,结合图4、图5和图6对该过程进行举例。检测方可以对第一矩阵元素和第二矩阵元素进行点击相乘的计算,以得到多个乘积结果。接着,将每个乘积结果与其对应的第三矩阵元素进行比较,并根据比较结果,使用梯度下降法来更新隐向量对应的元素值。例如,图中P11*Q11+P12*Q12=0.268,将该乘积结果与R11相比较,二者越接近,说明矩阵P和矩阵Q对于用户A和资产A预测的准确性高。以此类推来P11*Q21+P12*Q22和R12项比较,可得出针对资产B的准确性。
由于LFM模型的隐向量是在训练过程中学习得到的,而不是事先给定的。这使得模型能够根据用户和目标资产的实际评分数据进行个性化的学习,从而更好地预测用户对目标资产的喜好程度。
相应地,步骤2033中比较所述乘积结果与所述第三矩阵元素,根据比较结果校准所述第一矩阵元素和/或第二矩阵元素的一个实施方式,包括:
步骤20331:比较所述乘积结果与所述第三矩阵元素。
步骤20333:当所述乘积结果与第三矩阵元素之差大于预设差值时,校准所述第一矩阵元素和/或第二矩阵元素,用以使校准后的所述乘积结果与第三矩阵元素之差不大于所述预设差值。
步骤20335:重复所述比较所述乘积结果与所述第三矩阵元素的步骤,直至任意所述乘积结果与第三矩阵元素之差均不大于所述预设差值。
在本说明书实施例中,可以设置有一个预设差值,乘积结果与第三矩阵元素之差不大于预设差值,即可以认为满足要求,可以停止训练。如果二者之差大于预设差值,则将使用梯度下降法来更新隐向量对应的元素值,然后根据更新后的元素值重复乘积结果的计算和比较过程,直到第一矩阵和第二矩阵中的所有元素均满足要求。
相应地,步骤205中基于所述特征向量分别计算各所述关联用户对于目标需求资产的第一相似度的一种实现方式包括:
步骤2051:基于协同过滤算法计算所述特征向量,得到各所述关联用户对于目标需求资产的第一相似度。
在本说明书实施例中,可以使用协同过滤算法中计算用户u对物品i的兴趣度的公式对特征向量进行计算。具体公式如下:
其中,S(u,i)表示用户u对物品i的兴趣度,p
公式中的分子部分表示用户特征向量与物品特征向量的内积,表示用户u与物品i之间的相关性。分母部分表示用户特征向量和物品特征向量的模长的乘积,用来对相关性进行归一化处理,避免受到向量模长的影响。
整个公式的目的是通过计算用户特征向量和物品特征向量的相似度,来评估用户对物品的兴趣程度,以便进行推荐。两个用户对于同一个物品的兴趣程度完全相反则说明,一个用户拥有另一个用户缺少的资产。
相应地,步骤2051中基于协同过滤算法计算所述特征向量,得到各所述关联用户对于目标需求资产的第一相似度的一种实现方式包括:
步骤20511:在所述第一矩阵中获取所述关联用户对应的第一特征向量,并在所述第二矩阵中获取目标需求资产对应的第二特征向量。
步骤20513:基于协同过滤算法计算所述第一特征向量和第二特征向量,得到各所述关联用户对于所述目标需求资产的第一相似度。
在本说明书实施例中,为便于理解,可以将第一矩阵中关联用户对应的特征向量看作是第一特征向量,将第二矩阵中目标需求资产对应的特征向量看作是第二特征向量。检测方可以通过协同过滤算法,每次分别选择一个第一特征向量和第二特征向量,计算得出对应的关联用户对目标需求资产的第一相似度。
相应地,在步骤205中基于所述特征向量分别计算各所述关联用户对于目标需求资产的第一相似度之后,还进一步包括:
步骤2051:基于所述特征向量分别计算各所述关联用户对于目标多余资产的第二相似度。
步骤205中向所述目标用户推荐所述目标关联用户的一种实现方式包括:
步骤2052:基于所述第二相似度由高到低的顺序对所述目标关联用户排序,并根据排序顺序向所述目标用户推荐所述目标关联用户。
其中,目标多余资产为目标用户的多余资产。
在本说明书实施例中,考虑到资产是需要互换的,在确定了拥有目标用户所需要的目标需求资产的目标关联用户后,为了提高互换的成功率,还可以尝试保证目标用户自身的目标多余资产是目标关联用户所需要的需求资产。因此,在计算完第一相似度后,检测方还可以根据特征向量对各个关联用户对于目标多余资产的第二相似度进行计算。与第一相似度的情况相反,在各目标关联用户中,第二相似度越高的目标关联用户,将表明该目标多余资产对于其而言更可能是需求资产。因此,在根据第一相似度确定出目标关联用户后,检测方还会根据第二相似度由高到低的顺序对目标关联用户进行排序,并以排序后的顺序展示目标关联用户,这样目标用户在应用界面上最先看到的目标关联用户即是与其整体相似度差距最大的用户,也就最有可能与目标用户完成资产互换,提高了用户之间资产互换的效率。
相应地,针对至少两个所述目标需求资产,每个所述目标关联用户的各第一相似度之和均小于每个非目标关联用户的各第一相似度之和。
在本说明书实施例中,如果目标用户的目标需求资产不止一个,即对目标用户而言,可以有多个资产都是其需求资产。那么在进行第一相似度的计算时,可以将计算每一个关联用户对应的各个第一相似度之和。自身对应的各第一相似度之和最小一批关联用户,可以是最终确定的目标关联用户。应用界面中根据推荐向使用者展示目标关联用户的方式可以如图7所示。
下面将结合附图8,对本申请实施例提供的用户推荐装置进行详细介绍。需要说明的是,附图8所示的用户推荐装置,用于执行本申请图1所示实施例的方法,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请图8所示的实施例。
请参见图8,图8是本申请实施例提供的一种用户推荐装置的结构示意图。如图8所示,所述装置包括:
资产数据获取模块801,用于获取目标用户和各关联用户的资产数据;
矩阵生成模块802,用于基于所述资产数据生成第一矩阵和第二矩阵;其中,所述第一矩阵为用户和特征向量的评分矩阵,所述第二矩阵为目标资产和所述特征向量的评分矩阵,所述目标资产包括需求资产和多余资产;
第一相似度计算模块803,用于基于所述特征向量分别计算各所述关联用户对于目标需求资产的第一相似度;其中,所述目标需求资产为所述目标用户的需求资产;
用户推荐模块804,用于确定第一预设数量的目标关联用户,向所述目标用户推荐所述目标关联用户;其中,所述目标关联用户的第一相似度均小于非目标关联用户的第一相似度。
在图8所示的本说明书装置的一个实施例中,资产数据获取模块801具体用于:
接收推荐请求指令,响应所述推荐请求指令并获取目标用户和各关联用户的资产数据。
在图8所示的本说明书装置的一个实施例中,矩阵生成模块802具体用于:
基于所述资产数据生成第三矩阵;其中,所述资产数据包括用户名称、资产名称和资产数量,所述第三矩阵为用户和目标资产的评分矩阵,所述目标资产对应的所述资产数量不等于第二预设数量;
对所述第三矩阵进行矩阵分解,得到第一矩阵和第二矩阵。
在图8所示的本说明书装置的一个实施例中,矩阵生成模块802还具体用于:
在所述资产数据中确定第一资产数据;其中,所述第一资产数据为所述资产数量不等于所述第二预设数量的所述资产数据;
在所述第一资产数据中确定第二资产数据;其中,所述第二资产数据为资产种类与所述目标用户对应目标资产的资产种类匹配的所述第一资产数据;
基于所述第二资产数据生成第三矩阵;其中,所述第三矩阵中所述需求资产对应的第三矩阵元素被赋予第一数值,所述多余资产对应的第三矩阵元素被赋予第二数值,所述第一数值大于第二数值。
在图8所示的本说明书装置的一个实施例中,第一矩阵的第一矩阵元素和第二矩阵中的第二矩阵元素的初始值均为随机赋值;
矩阵生成模块802还具体用于:
对所述第一矩阵元素和第二矩阵元素进行点集相乘,得到乘积结果;
比较所述乘积结果与所述第三矩阵元素,根据比较结果校准所述第一矩阵元素和/或第二矩阵元素;其中,进行比较的所述乘积结果和第三矩阵元素对应的用户和需求资产均相同。
在图8所示的本说明书装置的一个实施例中,矩阵生成模块802还具体用于:
比较所述乘积结果与所述第三矩阵元素;
当所述乘积结果与第三矩阵元素之差大于预设差值时,校准所述第一矩阵元素和/或第二矩阵元素,用以使校准后的所述乘积结果与第三矩阵元素之差不大于所述预设差值;
重复所述比较所述乘积结果与所述第三矩阵元素的步骤,直至任意所述乘积结果与第三矩阵元素之差均不大于所述预设差值。
在图8所示的本说明书装置的一个实施例中,第一相似度计算模块803具体用于:
基于协同过滤算法计算所述特征向量,得到各所述关联用户对于目标需求资产的第一相似度。
在图8所示的本说明书装置的一个实施例中,第一相似度计算模块803还具体用于:
在所述第一矩阵中获取所述关联用户对应的第一特征向量,并在所述第二矩阵中获取目标需求资产对应的第二特征向量;
基于协同过滤算法计算所述第一特征向量和第二特征向量,得到各所述关联用户对于所述目标需求资产的第一相似度。
在图8所示的本说明书装置的一个实施例中,第一相似度计算模块803还具体用于:
基于所述特征向量分别计算各所述关联用户对于目标多余资产的第二相似度;其中,所述目标多余资产为所述目标用户的多余资产;
用户推荐模块804具体用于:
基于所述第二相似度由高到低的顺序对所述目标关联用户排序,并根据排序顺序向所述目标用户推荐所述目标关联用户。
在图8所示的本说明书装置的一个实施例中,针对至少两个所述目标需求资产,每个所述目标关联用户的各第一相似度之和均小于每个非目标关联用户的各第一相似度之和。
本领域的技术人员可以清楚地了解到本申请实施例的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列(Field-ProgrammableGate Array,FPGA)、集成电路(Integrated Circuit,IC)等。
本申请实施例的各处理单元和/或模块,可通过实现本申请实施例所述的功能的模拟电路而实现,也可以通过执行本申请实施例所述的功能的软件而实现。
参见图9,其示出了本申请实施例所涉及的一种电子设备的结构示意图,该电子设备可以用于实施图1所示实施例中的方法。如图9所示,电子设备900可以包括:至少一个处理器901,至少一个网络接口904,用户接口903,存储器905,至少一个通信总线902。
其中,通信总线902用于实现这些组件之间的连接通信。
其中,用户接口903可以包括显示屏(Display)、摄像头(Camera),可选用户接口903还可以包括标准的有线接口、无线接口。
其中,网络接口904可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器901可以包括一个或者多个处理核心。处理器901利用各种接口和线路连接整个电子设备900内的各个部分,通过运行或执行存储在存储器905内的指令、程序、代码集或指令集,以及调用存储在存储器905内的数据,执行终端900的各种功能和处理数据。可选的,处理器901可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器901可集成处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器901中,单独通过一块芯片进行实现。
其中,存储器905可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器905包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器905可用于存储指令、程序、代码、代码集或指令集。存储器905可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器905可选的还可以是至少一个位于远离前述处理器901的存储装置。如图9所示,作为一种计算机存储介质的存储器905中可以包括操作系统、网络通信模块、用户接口模块以及程序指令。
在图9所示的电子设备900中,用户接口903主要用于为用户提供输入的接口,获取用户输入的数据;而处理器901可以用于调用存储器905中存储的用户推荐应用程序,并具体执行以下操作:
获取目标用户和各关联用户的资产数据;
基于所述资产数据生成第一矩阵和第二矩阵;其中,所述第一矩阵为用户和特征向量的评分矩阵,所述第二矩阵为目标资产和所述特征向量的评分矩阵,所述目标资产包括需求资产和多余资产;
基于所述特征向量分别计算各所述关联用户对于目标需求资产的第一相似度;其中,所述目标需求资产为所述目标用户的需求资产;
确定第一预设数量的目标关联用户,向所述目标用户推荐所述目标关联用户;其中,所述目标关联用户的第一相似度均小于非目标关联用户的第一相似度。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC),或适合于存储指令和/或数据的任何类型的媒介或设备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通进程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
- 用户推荐方法、装置、电子设备和计算机可读存储介质
- 一种房源推荐方法、装置、存储介质及电子设备
- 一种信息推荐方法、装置、电子设备及存储介质
- 一种信息推荐方法、装置、电子设备及存储介质
- 一种用户信息共享方法、装置、电子设备及存储介质
- 一种用户偏好推荐方法、装置、电子设备及存储介质
- 一种用户查询推荐方法、装置、电子设备及存储介质