信息推荐方法及装置
技术领域
本发明涉及信息技术领域,尤其涉及一种信息推荐方法及装置。
背景技术
当今社会,网络信息浩如烟海,搜索引擎是用户查找自己喜爱的信息的重要手段之一,但搜索引擎的前提是用户知道他/她需要什么,如果连用户自己都不知道自己能得到什么或想要得到什么的时候,搜索引擎是无能为力的。因此引入智能推荐算法及系统,通过推荐的方法来帮助用户发现自己需要/喜欢的个性化内容。目前的推荐算法有基于内容的推荐算法、协同过滤推荐算法以及混合推荐算法。
基于内容的推荐系统主要思路是根据历史信息(如评价、分享、收藏过的文档)构造用户内容偏好文档,然后计算推荐项目与用户偏好文档的相似度,将最相似的项目推荐给用户。这种推荐方法的问题在于,推荐的信息基本都是比较大众的,只能推荐和用户已有兴趣相似的资源,不能为用户发现更多新的兴趣。
协同过滤推荐算法主要分为两类:
1:基于用户的协同过滤算法:用户对物品的评分比较相似,则他们对其他物品的评分也比较相似,从而找到具有相似兴趣的最近邻,形成推荐。
2:基于物品的协同过滤算法根据用户对不同物品评分的相似性来估计该用户对某个物品的评分,以此进行推荐。
上述两种协同过滤推荐方法存在着以下问题:
一是稀疏性问题,当推荐系统中数据量很大而用户的显式评分数据又很少时,难以计算相似性,而无法推荐。二是冷启动问题,当新物品(即新信息)刚进入系统时,没有用户对其评价,造成协同过滤无法推荐该资源。三是可扩展性问题,用户和资源会随时间快速的增长,而协同过滤算法的复杂度和数据量呈线性关系增长,导致大数据量下计算性能与效率问题,可扩展性较差。
发明内容
有鉴于此,本发明实施例期望提供一种信息推荐方法及装置,至少部分解决现有技术中信息推荐的问题。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例第一方面提供一种信息推荐方法,所述方法包括:
记录用户的历史操作行为;
根据所述历史操作行为,生成内容偏好标签;
根据所述内容偏好标签,确定与目标用户满足预设相似度条件的近邻用户;
获取所述近邻用户的历史操作行为数据;
根据所述邻近用户的历史操作行为数据,向所述目标用户进行信息推荐。
基于上述方案,所述根据所述历史操作行为,生成内容偏好标签,包括:
根据所述历史操作行为,确定指定时间内用户访问过的信息;
确定用户访问过的信息的权重;
依据所述权重,生成偏好向量。
基于上述方案,所述根据所述内容偏好标签,确定与目标用户满足预设相似度条件的近邻用户,包括:
计算目标用户的第一偏好向量和近邻备选用户的第二偏好向量的余弦值;
根据所述余弦值,确定出与所述目标用户满足所述预设相似度条件的近邻用户。
基于上述方案,所述方法还包括:
根据所述历史操作行为,确定用户的活跃度;
基于所述活跃度,筛选出与所述目标用户进行相似度计算的近邻备选用户;
所述根据所述内容偏好标签,确定与目标用户满足预设相似度条件的近邻用户,包括:
根据内容偏好标签,计算备选近邻用户与所述目标用户的相似度;
根据所述相似度确定出与所述目标用户满足预设相似度条件的近邻用户。
基于上述方案,所述根据所述历史操作行为,确定用户的活跃度,包括:
计算统计周期内用户集合内的各用户的活跃度;
剔除异常活跃度对应的用户,并利用预设函数关系,计算各用户的活跃度标签;
根据活跃度标签确定出所述近邻备选用户。
本发明实施例第二方面提供一种信息推荐装置,所述装置包括:
记录单元,用于记录用户的历史操作行为;
生成单元,用于根据所述历史操作行为,生成内容偏好标签;
第一确定单元,用于根据所述内容偏好标签,确定与目标用户满足预设相似度条件的近邻用户;
获取单元,用于获取所述近邻用户的历史操作行为数据;
推荐单元,用于根据所述邻近用户的历史操作行为数据,向所述目标用户进行信息推荐。
基于上述方案,所述生成单元,具体用于根据所述历史操作行为,确定指定时间内用户访问过的信息;确定用户访问过的信息的权重;依据所述权重,生成偏好向量。
基于上述方案,所述第一确定单元,用于计算目标用户的第一偏好向量和近邻备选用户的第二偏好向量的余弦值;根据所述余弦值,确定出与所述目标用户满足所述预设相似度条件的近邻用户。
基于上述方案,所述装置还包括:
第二确定单元,用于根据所述历史操作行为,确定用户的活跃度;
筛选单元,用于基于所述活跃度,筛选出与所述目标用户进行相似度计算的近邻备选用户;
所述第一确定单元,具体用于根据内容偏好标签,计算备选近邻用户与所述目标用户的相似度;根据所述相似度确定出与所述目标用户满足预设相似度条件的近邻用户。
基于上述方案,所述第二确定单元,具体用于计算统计周期内用户集合内的各用户的活跃度;剔除异常活跃度对应的用户,并利用预设函数关系,计算各用户的活跃度标签;根据活跃度标签确定出所述近邻备选用户。
本发明实施例提供信息推荐方法及装置,首先将确定出与目标用户满足预设相似度条件的近邻用户,基于近邻用户的历史操作行为数据来为目标用户进行信息推荐,这样可以挖掘为目标用户挖掘出新的兴趣点,同时能够实现某些刚发布信息的推荐,实现信息推荐的冷启动,能够提升信息推荐效率和精确度。
附图说明
图1为本发明实施例提供的第一种信息推荐方法的流程示意图;
图2为本发明实施例提供的确定内容偏好标签的流程示意图;
图3为本发明实施例提供的第二种信息推荐方法的流程示意图;
图4为本发明实施例提供的一种信息推荐装置的结构示意图。
具体实施方式
以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。
实施例一:
如图1所示,本实施例提供一种信息推荐方法,所述方法包括:
步骤S110:记录用户的历史操作行为;
步骤S120:根据所述历史操作行为,生成内容偏好标签;
步骤S130:根据所述内容偏好标签,确定与目标用户满足预设相似度条件的近邻用户;
步骤S140:获取所述近邻用户的历史操作行为数据;
步骤S150:根据所述邻近用户的历史操作行为数据,向所述目标用户进行信息推荐。
本实施例所述的信息推荐方法可为应用于各种信息推荐的服务器中。例如,商品推荐信息、下载过的应用(Application,App)、搜索过的视频、图片、下载的电子书或收藏过的商品链接等存储在网络中的网络信息。
在本实施例中所述用户的历史操作行为可非为登录行为和积极行为。这里的登录行为可包括登录网页、登录社区、登录应用等各种登录操作行为。这里的积极行为为用户主动作为,可包括使用APP进行社交、购物、收藏、评论、搜索、下载或上传等各种基于用户主动意识进行的操作。这些用户的历史操作行为都能够反映用户的偏好及厌恶。故在本实施例中,在步骤S120中将根据用户的历史操作行为,生成内容偏好标签。
在步骤S130中将根据内容偏好标签,确定出与目标用户满足预设相似度条件的近邻用户。在本实施例中所述目标用户为待推荐信息的用户。这里的近邻用户为所述目标用户以外的用户,是与目标用户相似度较大的用户。例如,用户A是目标用户,用户B是目标用户A的近邻用户,表示用户B和用户A满足所述预设相似度条件。在进行信息浏览等操作时,用户B关注的一些信息可能并非用户A当前也关注的信息;但是由于用户A和用户B的内容偏好标签相似度很大,说明有非常相似的偏好和厌恶,这个时候用户B关注的一些信息,也可能是用户A关注和喜好的一些信息。故在本实施例中的步骤S140中将获取所述近邻用户的历史操作行为数据。在步骤S150中将根据近邻用户的历史操作行为数据向目标用户推荐信息。例如,将用户B关注的一些产品信息、广告信息或新闻等用户A当前未关注的信息推荐给用户A。采用这种方法向目标用户进行信息推荐,一方面能够在很大程度上确保推荐用户A的信息是用户A愿意接受并了解的信息,同时可以智能的主动的为以目标用户挖掘更多的兴趣点,拓展目标用户的视野和信息关注宽度。当一条新的信息进入信息推荐系统之后,用户B即便没有进行评论等操作,也可以因为其与目标用户(用户A)的相似性,将该新的信息推荐给用户A,从而实现某些新进入信息系统的信息能够被迅速找到适合的推荐用户,实现信息的冷启动,提高信息推荐效率。
进一步地,如图2所示,所述步骤S120包括:
步骤S121:根据所述历史操作行为,确定指定时间内用户访问过的信息;
步骤S122:确定用户访问过的信息的权重;
步骤S123:依据所述权重,生成偏好向量。
在本实施例中所述指定时间可为当前统计时间之前的一段时间内,例如一周、一天或几个小时之前用户访问过的信息。这里的访问过的信息可包括打开阅读过的信息,点击下载过的信息、在购物网站购买的产品的信息及收藏过的文档等信息。在步骤S122中将确定用户访问过的信息的权重。这里在进行权重确定时,将根据预设算法来进行权重计算和赋值。例如,根据用户访问信息的频次、时长、用户操作类型和操作频次等进行权重赋值。在本实施例中通常所述权重的取值范围在0到1之间,权重越大,表示用户对该信息越感兴趣。
例如,用户访问购物网站,对产品A的信息执行了浏览操作、对产品B的信息进行浏览操作和收藏操作,对产品C的信息进行了浏览并购买了产品C。在确定上述三个信息的权重时,会根据操作类型,这里的操作类型包括浏览、收藏和购买,在本实施例中浏览、收藏和购买对权重的正向影响值依次增大。在确定权重时,同时还会考虑浏览次数、购买件数等信息,来进一步确定权重。总之在本实施例中会根据对信息的历史操作行为,确定出所述权重。
在本实施例中将根据权重生成偏好向量。例如,将访问过的信息依次排序,将访问过的信息对应的权重,按照访问过的信息的排序构建向量,这样就构成了所述偏好向量。例如,信息A的权重为a,信息B的权重为b,信息C的权重为c;信息A、信息B及信息C都是用户操作过的信息;若这些信息的排序为信息A、信息B和信息C,则构建的偏好向量为(a,b,c)。显然用户访问过的信息的权重作为偏好向量的不同维度的取值。
例如,假设以用户操作过的信息的频次来确定用户访问过的信息的权重,这个时候所述权重可为:其中,sj表示的为第j个用户访问过的信息的频次;所述Si为第i个用户访问过的信息的频次;所述I为用户在指定时间内访问过的信息的总数或访问过的I的信息。这里的j和i的取值都不小于1且不大于所述I。这样不仅简便的进行了权值确定,且利用该例子确定的权值的取值范围一定在0到1。
当然在具体实现时,也可以直接将权重值设置为等于访问频次或操作频次,在构建所述偏好向量时,在进行归一化处理,利用作为偏好向量各个维度的取值计算。
作为本实施例的进一步改进,所述步骤S130可包括:
计算目标用户的第一偏好向量和近邻备选用户的第二偏好向量的余弦值;
根据所述余弦值,确定出与所述目标用户满足所述预设相似度条件的近邻用户。
在本实施例中利用余弦确定出所述近邻用户。目标用户的第一偏好向量和近邻备选用户的第二偏好向量,若两个向量在向量空间内的夹角越小,则余弦值越大,故在本实施例中利用余弦值可表征出两个用户之间的相似度,在本实施例中余弦值越大,则说明两个用户的相似度越大。在本实施例中可根据余弦值选择出余弦值大于预设阈值的近邻备选用户作为正式的近邻用户;也可以对计算出的余弦值进行排序,选择出排序靠前的N位作为所述近邻用户。这里的N为不小于1的整数。
在具体的计算过程中,所述第一偏好向量和第二偏好向量相同维度对应的为同一信息或同一类型信息。例如,第一偏好向量和第二偏好向量均为包括M个元素的M维向量。向量的第1个元素即为偏好向量在第1维度的取值。在本实施例中第一偏好向量和第二偏好向量在第m维度是对同一信息或同一类型信息进行操作形成的权重。当目标用户或近邻备选用户对某一信息会某一类没有操作行为记录时,对应的权值可取0。这里的m为不小于1且不大于所述M的整数。所述M为不小于2的整数。
在本实施例中简便的利用偏好向量的构建及余弦值的计算就能够确定出所述近邻用户,具有实现简便的特点。
在步骤S150中根据近邻用户的历史操作行为数据进行信息推荐时,可包括筛选出,目标用户在指定时间内未访问过且近邻用户访问过的推荐备选信息;对这些推荐备选信息根据用户操作频次、操作类型等历史操作行为进行权重赋值,根据赋值的权重选择出推荐给目标用户的推荐信息。在本实施例中这里的权重赋值的方法可以参考前述实施例中在确定偏好向量时候所用的方法。在此处,赋值的权重值越大,则表示近邻用户对该信息的兴趣越大,则推荐给目标用户,受目标用户欢迎的概率就越高,受欢迎程度也会越高。故在本实施例中可以基于赋值的权重进行排序,选择排序靠前的推荐备选信息作为正式的推荐信息,也可以选择出权值值大于预设值的推荐备选信息作为正式的推荐信息。
总之在本实施例中提供了一种简便快捷确定出所述近邻用户的方法,具有实现简单且精确高的特点。
作为本实施例的进一步改进,为了减少确定近邻用户的运算量,在本实施例中,如图3所示,所述方法还包括:
步骤S101:根据所述历史操作行为,确定用户的活跃度;
步骤S102:基于所述活跃度,筛选出与所述目标用户进行相似度计算的近邻备选用户;
所述步骤S130可包括:根据内容偏好标签,计算备选近邻用户与所述目标用户的相似度;根据所述相似度确定出与所述目标用户满足预设相似度条件的近邻用户。
在本实施例中首先将根据用户的活跃度筛选出近邻备选用户。例如,某一个近邻备选用户最近的上网频次很低,访问的信息也很少,其对确定为目标用户的推荐信息的作用较小。例如,近邻备选用户在一周内就访问了1个网站,看了一片文章;比目标用户访问的信息的数量少,且可能其访问过的信息都被目标用户访问过了,若将其确定为近邻用户,就可能没有办法向目标用户推荐更多的信息;而且在进行确定近邻用户时出现计算过大的现象。在本实施例中会根据用户历史操作行为生成活跃度。这里的活跃度越高,表明用户访问过的信息的数量阅读,有可能为目标用户提供的推荐信息的参考性就越大。
故在本实施例的步骤S102中将选择出活跃度较大用户作为所述近邻备选用户,一方面减少计算量,同时以期待为目标用户提供信息推荐提供更多的参考依据。
具体地,所述步骤S102可包括:
计算统计周期内用户集合内的各用户的活跃度;
剔除异常活跃度对应的用户,并利用预设函数关系,计算各用户的活跃度标签;
根据活跃度标签确定出所述近邻备选用户。
这里的提出异常活跃度可包括提出用户集合内活跃度最大的用户和活跃度为0的用户,在比如,可计算出用户集合内所有用户的活跃度均值和方差,将活跃度大于均值与P倍方差绝度值的用户视为异常活跃度的用户被剔除掉。这里的P为不下于1的正数,例如,取值可为2或3或4等取值。
进一步地,计算活跃度标签;所述活跃度标签可为一种对剔除异常活跃度以后的剩余用户的活跃度的归一处理得到的取值。例如,可以采用其中,fe表示的为第e个剩余用户访问过的活跃度;所述fr为第r个剩余用户的活跃度;所述R为剔除异常活跃度的剩余用户的总数。这里的e和r的取值都不小于1且不大于所述R。当然这里尽是一种确定活跃度标签的方法,以下还提供另一种活跃度标签的计算方法。
活跃度标签=100*(第r个剩余用户的活跃度-剩余用户中最小的活跃度)/(剩余用户中最大活跃度-剩余用户中最小的活跃度)。当剩余用户的最小活跃度等于剩余用户的最大活跃度时,所述活跃度标签可取值为100。
在本实施例中所述活跃度标签越大,表示对应用户在统计周期内的活跃度越高。这里的统计周期可为预先设定的时间长度,通常可为当前时间以前的一段时间内。在进行近邻备选用户确定时,可以根据活跃度标签选择活跃度标签排序靠前的用户作为所述近邻备选用户,也可选择活跃度标签大于标签阈值的用户作为所述近邻备选用户。总之,通过活跃度的计算,能够大大的减少计算量,同时确保能够为目标用户提供推荐信息的参考依据。
实施例二:
如图4所示,本实施例提供一种信息推荐装置,所述装置包括:
记录单元110,用于记录用户的历史操作行为;
生成单元120,用于根据所述历史操作行为,生成内容偏好标签;
第一确定单元130,用于根据所述内容偏好标签,确定与目标用户满足预设相似度条件的近邻用户;
获取单元140,用于获取所述近邻用户的历史操作行为数据;
推荐单元150,用于根据所述邻近用户的历史操作行为数据,向所述目标用户进行信息推荐。
本实施例所述的信息推荐装置可为应用于各种信息推荐服务器或信息推荐平台中的装置。所述记录单元110可对应于存储介质或数据库,能够记录用户的历史操作行为。所述生成单元120、第一确定单元130、获取单元140及推荐单元150均可对应于服务器或服务平台的处理器或处理电路。所述处理器可包括应用处理器、中央处理器、数字信号处理器或可编程阵列等处理结构。所述处理电路可包括专用集成电路。这些处理结构可通过指定代码的执行实现上述单元,也可以通过电路的逻辑运算等操作实现上述操作。本实施例中通过近邻用户的确定,基于近邻用户的历史操作行为数据,来进行信息推荐,可以很好的解决现有技术中不能为新用户挖掘新的兴趣点的问题。
在实施例一和实施例中,所述目标用户和所述近邻用户可以为完全不相识的用户,可能这两个用户可能是不同省份,甚至不同国家的用户,但是都是网络进行信息访问时,对网络信息的操作行为有很大的相似性,故彼此可互为近邻用户。
作为本实施例的进一步改进,所述生成单元120,具体用于根据所述历史操作行为,确定指定时间内用户访问过的信息;确定用户访问过的信息的权重;依据所述权重,生成偏好向量。计算两个用户之间的偏好的相似度的方式和装置结构有很多种,在本实施例中通过生成偏好向量来确定,具有计算简单的特点及装置结构简单的特点。进一步地,所述第一确定单元130,用于计算目标用户的第一偏好向量和近邻备选用户的第二偏好向量的余弦值;根据所述余弦值,确定出与所述目标用户满足所述预设相似度条件的近邻用户。余弦值的计算是一种计算操作量少及计算简单的计算方式,在本实施例中采用余弦值计算的第一确定单元130进行近邻用户的确定,具有计算简单及结构简单的特点。
此外,所述装置还包括:第二确定单元,用于根据所述历史操作行为,确定用户的活跃度;筛选单元,用于基于所述活跃度,筛选出与所述目标用户进行相似度计算的近邻备选用户;所述第一确定单元130,具体用于根据内容偏好标签,计算备选近邻用户与所述目标用户的相似度;根据所述相似度确定出与所述目标用户满足预设相似度条件的近邻用户。
在本实施例中所述信息推荐装置还包括第二确定单元和筛选单元,这两个功能单元对应的硬件结构,与第一确定单元、获取单元及推荐单元对应的硬件结构类似,不同的在于第二确定单元用于确定用户的活跃度,筛选单元用于根据用户的活跃度确定近邻备选用户。在本实施例中所述信息推荐装置通过近邻备选用户的筛选,能够减少确定近邻用户过程中的计算量,提升计算效率,且能够为推荐信息提供更多的参考依据。具体的如,所述第二确定单元,具体用于计算统计周期内用户集合内的各用户的活跃度;剔除异常活跃度对应的用户,并利用预设函数关系,计算各用户的活跃度标签;根据活跃度标签确定出所述近邻备选用户。在本实施例中为了确保一些僵尸访问等异常访问行为导致的活跃度异常,在本实施例中所述第二确定单元还会提出异常活跃度,以确定筛选出能够真正能够为目标用户进行信息推荐提供参考依据的近邻备选用户,以提升信息推荐的精确度。
总之,在本实施例中所述第二确定单元能够通过活跃度的计算和近邻备选用户的筛选,一方面能够减少计算量,另一方面能够为进行信息推荐提供更为精准的参考依据。
以下结合上述任意一个实施例,提供一个具体示例:
本示例信息推荐方法包括:
第一步:对所有用户计算用户的活跃度标签。活跃度标签用来表示用户统计周期内在网站上的活跃程度,活跃度标签的数值取值范围可为0-100的整数,取值越大表示用户活跃程度越高。
活跃度标签计算步骤如下:
(1)将用户在网站上的行为区分为登录行为与积极行为,其中积极行为包括对产品的使用、收藏、评论、搜索和下载等行为。
对统计周期(初始值为1个月)内网站所有用户的网站行为中用户总登录次数、用户总积极行为次数进行统计。
(2)计算统计周期(初始值为1个月)内所有用户的活跃度。
活跃度=用户总登录次数+2*用户总积极行为次数。
(3)对活跃度异常行为用户进行剔除处理。处理方法如下;
剔除活跃度大于活跃度阈值upper(upper可设置,初始值upper=10000)的用户,计算余下的所有用户活跃度的均值avg与标准差std,剔除活跃度大于(avg+3*std)的用户,只针对余下用户计算用户活跃度标签。
(4)对经过上述(3)处理后的所有用户计算用户活跃度标签。
用户活跃度标签=100*(活跃度-所有用户中最小的活跃度)/(所有用户中最大活跃度-所有用户中最小的活跃度)。
活跃度标签向上取整,取值范围为0-100的整数。当最小活跃度与最大活跃度相等时,用户的活跃度标签值为100。
第二步:对所有用户计算内容偏好标签。内容偏好标签用来描述用户对产品所有各个标签所代表的内容的偏好。对于网站的产品,每个产品都存在一个预先设计的产品标签列表。通过统计周期内用户在网站上的产品访问记录,可以得到用户对产品的偏好,进而得到用户对所有产品的标签的偏好。在本示例中计算内容偏好标签的统计周期可与前述计算活跃度标签的统计周期长度相同,且起始位置相同。对应于前述实施例中可认为所述指定时间和统计周期对应的时长相同且起始时间相同。
内容偏好标签的表现形式是用户内容标签偏好权重向量,用户内容标签偏好向量是由各标签权重组成向量来表示。对网站中所有的产品的标签进行标号,标签标号与用户内容标签偏好向量的分量标号相对应。
用户内容标签偏好向量中的每个分量表示用户对相应的标签的偏好权重,每个分量取小数,取值范围为[0,1],向量分量取值越大表示用户对相应的标签的偏好倾向越大。内容偏好标签的算法如下所示:
预先准备的历史操作行为数据。
统计周期内(所述统计周期的初始值可为1个月),用户访问过或使用过的产品列表、产品库、产品标签表。
采用循环语句,统计每个用户访问过或使用过的网站列表,以遍历每一个用户访问过的网站;具体如,for用户in网站用户列表。
采用循环语句,统计每一个网站下用户产品列表,以便利每一个用户访问过网站下的产品,具体如,for产品in“用户使用产品列表。
从产品库中取产品标签表。
利用循环语句,编列每一个产品标签列表中的标签,具体如:
for标签in“产品标签表”
该标签计数=该标签计算+1
用户的用户-标签频数向量;这里的标签频数向量,为前述偏好向量的一种。
按照以下公式归一化用户的用户-标签频数向量
第三步:.基于用户关系的个性化推荐。
应用场景是当用户登录时,根据用户的产品历史访问记录,计算用户的内容偏好标签对应的偏好向量,通过偏好向量的相似度计算方法,获取登录用户的最相似用户列表,通过最近邻居用户在统计周期内的产品访问行为,生成当前登录用户的产品推荐列表。基于用户关系的推荐有以下算法与步骤:
(1)目标用户列表划定。
每天在网站中登入的用户列表,并且该用户的推荐列表生成时间日期和当前日期的差大于推荐过期阈值,阈值初始值设为3。
(2)获取目标用户的相关活跃用户。目标用户的相关活跃用户生成算法如下所示:
预先准备各个用户的历史操作行为数据。
确定统计周期内(这里的统计周期的初始值可为1个月),目标用户列表。
预备产品库、产品标签表、产品及使用该产品的用户列表。
利用循环语句为目标用户列表中的每一个目标用户确定近邻备选用户。例如,利用for循环语句,for用户in“目标用户列表”。
获取统计周期内目标用户以外的用户对产品库的产品访问列表。
初始化近邻备选用户的相关活跃用户列表USER_ACTIVE_用户ID={}。
初始化临时用户列表USER_TEMP,利用for循环语句,遍历目标用户以外的其他用户的产品访问列表;具体如,for产品in“产品访问列表”,并获取使用过产品的用户列表,记作USER_PRO。其中,USER_TEMP=USER_ACTIVE+USER_PRO。
剔除USER_TEMP中重复的用户。
利用循环语句,例如for循环语句遍历USER_TEMP的用户,具体如,for用户in USER_TEMP。
如果USER_TEMP的用户的活跃度标签大于50,则将对应的用户插入到USER_ACTIVE中。最终循环完后,选择出活跃度较大的用户作为近邻备选用户。
第四步:确定目标用户的K近邻用户。
将目标用户和近邻备选用户的内容偏好标签的余弦相似度作为两个用户之间相似度的衡量。余弦相似度公式如下:
设近目标用户的偏好向量U1=(x1,x2,…,xn),近邻用户的偏好向量U2=(y1,y2,…,yn),则
在确定近邻用户时,具体可包括如下步骤:
1.预先准备目标用户和近邻备选用户的历史操作行为数据。
2.获取目标用户列表,近邻备选用户列表USER_ACTIVE的用户ID。
3.利用循环语句,例如for循环语句,遍历目标用户列表中的每一个目标用户,具体如,for目标用户u1in“目标用户列表”。
4.初始化K=500。
5.初始化目标用户u1的K近邻用户列表KNN_USER_用户u2ID={}。
6.目标用户u1的内容偏好标签U1=(x1,x2,…,xn)。
7.利用循环语句,例如for循环语句,遍历目标用户的近邻用户列表中各个近邻用户的活跃度,例如,for近邻用户u2in“USER_ACTIVE的用户u2ID”。
8.近邻用户u2的内容偏好标签U2=(y1,y2,…,yn)。
9.通过余弦相似度公式计算用户u1与用户u2的相似度
10.“USER_ACTIVE_用户u2ID”中用户按与目标用户u1相似度降序排列。
11.KNN_USER_用户u1ID=USER_ACTIVE_用户u2ID中与前K个用户。
第五步:目标用户的产品推荐列表生成算法综合运用以上的计算结果,通过目标用户的K近邻用户列表计算得出目标用户的产品推荐列表。具体步骤可如下:
1.预先准备的近邻用户和目标用户的历史操作行为数据。
2.预备目标用户列表,目标用户的K近邻用户表及用户产品列表。
3.初始化用户产品评分阈值LIMIT=100。
4.初始化用户的产品推荐列表产品数量k=100。
5.遍历每一个目标用户,例如利用for循环语句遍历目标用户,具体如,for目标用户u1in目标用户列表。
6.初始化目标用户u1的产品推荐列表REC_PROC_用户u1ID={}。
7.遍历每一个目标用户的近邻用户,具体如,for用户u2in目标用户u1的K近邻用户列表。
8.如果产品a不在目标用户u1的产品列表中,则依据函数关系计算产品a的评分,所述函数关系可为:产品a的评分=产品a的评分+近邻用户u2访问产品a的频数。
9.REC_PROC_用户u1ID=评分最高并且评分大于LIMIT的k个产品,这k个产品对应的信息为推荐给对应目标用户的信息。
当触发推荐动作时,到目标用户列表中寻找该用户的信息推荐列表,一般为获取信息推荐列表中的前100个信息作为推荐信息,若信息推荐列表中包括的信息个数不足100个,则将推荐信息列表中的所有信息作为推荐信息推荐给对应的目标用户。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。