推荐方法及装置与流程

文档序号:11324220阅读:197来源:国知局
推荐方法及装置与流程

本申请涉及互联网技术领域,尤其涉及一种推荐方法及装置。



背景技术:

随着推荐技术的不断成熟,基于地理位置的个性化推荐服务在互联网行业得到越来越多的应用。例如,在地图上查找附近的各种服务、在外卖应用中搜索附近的餐馆等。

进一步,为了提高推荐结果的准确度,个性化推荐服务除了依赖地理位置之外,开始关注用户的浏览、下单和评论等各种行为数据,进而基于用户的行为数据分析用户的喜好,基于用户的喜好向用户推荐感兴趣的内容。

其中,一种常见的推荐方式是基于内容的过滤,即基于用户消费过的或者喜欢的商品,向用户推荐相似的商品,优点是推荐效率较高。另一种常见的推荐方式是协同过滤,即基于相似用户消费过或者喜欢的商品,向用户推荐相似的商品,优点是可以推荐原用户没有消费过的商品。



技术实现要素:

经过对现有推荐方法进行分析,本申请发明人发现:现有基于内容过滤或协同过滤的推荐方法其根本是基于用户与商品之间的关系,结合一些简单的规则或策略,给用户推荐合适的商品。

另外,经过对现有推荐方法的推荐效果进行跟踪调研,本申请发明人发现:现有推荐方法的效果不甚理想,无法准确向用户推荐合适的商品。对此,本申请发明人分别从用户角度和商品角度进行了各种分析并最终发现:大多用户会在商户购买不同的商品,由于商品的品类较多,不同商品的属性不好统一,而且不同商户间的商品命名没有行业的规范,这会影响商品的重合度,因此无法准确地向用户推荐合适的商品。

针对上述技术问题,本申请发明人经过反复思考、分析和验证提出一种解决方案,该解决方案不再依赖用户与商品之间的关系,而是依赖用户与商户之间的关系。与商品相比,商户的数量相对较少,而且属性比较好统一,也相对规范,因此,基于用户与商户之间的关系进行推荐,有利于克服现有技术存在的缺陷,提高推荐结果的准确性。

基于上述,本申请实施例提供一种推荐方法,包括:获取至少一个用户以及至少一个商户,所述至少一个用户包含待推荐用户;根据所述至少一个用户与所述至少一个商户之间存在的网络行为关系,构建描述用户-商户关联关系的无向图;根据所述无向图中边的权重,以基于随机游走的加权迭代方式,计算所述无向图中对应所述至少一个商户的顶点的排序值;根据所述无向图中对应所述至少一个商户的顶点的排序值,从所述至少一个商户中向所述待推荐用户推荐兴趣商户。

在一可选实施方式中,所述根据所述至少一个用户与所述至少一个商户之间存在的网络行为关系,构建描述用户-商户关联关系的无向图,包括:将所述至少一个用户与所述至少一个商户映射为所述无向图中的顶点;对所述至少一个用户与所述至少一个商户中存在网络行为关系的用户-商户对,在所述用户-商户对对应的两个顶点之间添加一条边;以及根据所述用户-商户对之间存在的网络行为关系的属性值,计算所述用户-商户对对应边的权重。

在一可选实施方式中,所述根据所述用户-商户对之间存在的网络行为关系的属性值,计算所述用户-商户对对应边的权重,包括:计算所述用户-商户对中的用户在所述用户-商户对中的商户处产生网络行为的次数,与所述用户-商户对中的用户在所述至少一个商户中所有商户处产生网络行为的总次数的比值,作为所述用户-商户对对应边的权重;或者,计算所述用户-商户对中的用户在所述用户-商户对中的商户处产生网络行为对应的资源消耗量,与所述用户-商户对中的用户在所述至少一个商户中所有商户处产生网络行为对应的总资源消耗量的比值,作为所述用户-商户对对应边的权重。

在一可选实施方式中,所述根据所述至少一个用户与所述至少一个商户之间存在的网络行为关系,构建描述用户-商户关联关系的无向图,还包括:针对所述至少一个商户进行标签提取,以获得至少一个商品标签;在所述无向图中,添加对应于所述至少一个商品标签的顶点;在所述无向图中对应用户的顶点与对应商品标签的顶点之间添加边并计算所添加的边的权重;以及在所述无向图中对应商户的顶点与对应商品标签的顶点之间添加边并计算所添加的边的权重。

在一可选实施方式中,所述在所述无向图中对应用户的顶点与对应商品标签的顶点之间添加边并计算所添加的边的权重,包括:对所述至少一个用户与所述至少一个商品标签中存在使用关系的用户-标签对,在所述用户-标签对对应的两个顶点之间添加一条边;以及根据所述用户-标签对之间存在的使用关系的属性值,计算所述用户-标签对对应边的权重;

相应地,所述在所述无向图中对应商户的顶点与对应商品标签的顶点之间添加边并计算所添加的边的权重,包括:对所述至少一个商户与所述至少一个商品标签中存在包含关系的商户-标签对,在所述商户-标签对对应的两个顶点之间添加一条边;根据所述商户-标签对之间存在的包含关系的属性值,计算所述商户-标签对对应边的权重。

在一可选实施方式中,所述根据所述用户-标签对之间存在的使用关系的属性值,计算所述用户-标签对对应边的权重,包括:计算所述用户-标签对中的用户在产生的网络行为中使用了所述用户-标签对中的商品标签的次数,与所述用户-标签对中的用户在产生的网络行为中使用商品标签的总次数的比值,作为所述用户-标签对对应边的权重;

相应地,所述根据所述商户-标签对之间存在的属性包含关系的属性值,计算所述商户-标签对对应边的权重,包括:计算所述商户-标签对中的商户所提供的商品中被打上所述商户-标签对中的商品标签的商品数量,与所述商户-标签对中的商户所提供的商品总数量的比值,作为所述商户-标签对对应边的权重。

在一可选实施方式中,所述在所述无向图中,添加对应于所述至少一个商品标签的顶点之前,还包括:识别所述至少一个商品标签中,关联度小于关联度阈值的冷关联商品标签;根据所述冷关联商品标签以上级别的商品标签,将所述冷关联商品标签扩展为关联度大于关联度阈值的商品标签。

在一可选实施方式中,所述根据所述无向图中边的权重,以基于随机游走的加权迭代方式,计算所述无向图中对应所述至少一个商户的顶点的排序值,包括:初始化所述无向图中对应所述待推荐用户的顶点的排序值为1,其它顶点的排序值为0;采用随机游走算法,自所述无向图中对应所述待推荐用户的顶点开始,在所述无向图的顶点中随机游走,以及根据所述无向图中对应所述待推荐用户的顶点与游走到的顶点之间的边的权重以及所述无向图中其它节点与所述游走到的顶点之间的边的权重,计算所述游走到的顶点的排序值,直到满足迭代结束条件时停止游走,以获得所述无向图中各顶点的排序值。

在一可选实施方式中,所述根据所述无向图中边的权重,以基于随机游走的加权迭代方式,计算所述无向图中各顶点的排序值,包括:初始化所述无向图中对应所述待推荐用户的顶点的排序值为1,其它顶点的排序值为0;采用随机游走算法,自所述无向图中对应所述待推荐用户的顶点开始,在所述无向图的顶点中随机游走,以及根据所述无向图中对应所述待推荐用户的顶点与游走到的顶点之间的边的权重以及所述无向图中其它节点与所述游走到的顶点之间的边的权重,计算所述游走到的顶点的排序值,直到满足迭代结束条件时停止游走,以获得所述无向图中各顶点的排序值。

在一可选实施方式中,所述根据所述无向图中对应所述待推荐用户的顶点与游走到的顶点之间的边的权重以及所述无向图中其它节点与所述游走到的顶点之间的边的权重,计算所述游走到的顶点的排序值,包括:根据公式计算所述游走到的顶点的排序值;其中,rank(v)表示所述游走到的顶点v的排序值;wuv表示所述无向图中对应所述待推荐用户的顶点u与所述游走到的顶点v之间的边的权重;in(v)表示连接到顶点v的顶点集合;rank(v′)表示所述顶点集合中顶点v′的排序值;wv′v表示顶点v′和顶点v之间边的权重;out(v′)表示顶点v′的出度大小;α表示随机游走的概率。

在一可选实施方式中,所述获取至少一个用户以及至少一个商户,包括:根据所述待推荐用户的当前位置,从候选商户集合中,获取与所述待推荐用户之间的距离小于指定距离阈值的所述至少一个商户;从候选用户集合中,获取与所述至少一个商户存在网络行为关系的所述至少一个用户。

相应地,本申请实施例还提供一种推荐装置,包括:获取单元,用于获取至少一个用户以及至少一个商户,所述至少一个用户包含待推荐用户;构建单元,用于根据所述至少一个用户与所述至少一个商户之间存在的网络行为关系,构建描述用户-商户关联关系的无向图;计算单元,用于根据所述无向图中边的权重,以基于随机游走的加权迭代方式,计算所述无向图中对应所述至少一个商户的顶点的排序值;推荐单元,用于根据所述无向图中对应所述至少一个商户的顶点的排序值,从所述至少一个商户中向所述待推荐用户推荐兴趣商户。

在一可选实施方式中,所述构建单元包括:映射子单元,用于将所述至少一个用户与所述至少一个商户映射为所述无向图中的顶点;添加子单元,用于对所述至少一个用户与所述至少一个商户中存在网络行为关系的用户-商户对,在所述用户-商户对对应的两个顶点之间添加一条边;以及第一计算子单元,用于根据所述用户-商户对之间存在的网络行为关系的属性值,计算所述用户-商户对对应边的权重。

在一可选实施方式中,所述第一计算子单元具体用于:计算所述用户-商户对中的用户在所述用户-商户对中的商户处产生网络行为的次数,与所述用户-商户对中的用户在所述至少一个商户中所有商户处产生网络行为的总次数的比值,作为所述用户-商户对对应边的权重;或者,计算所述用户-商户对中的用户在所述用户-商户对中的商户处产生网络行为对应的资源消耗量,与所述用户-商户对中的用户在所述至少一个商户中所有商户处产生网络行为对应的总资源消耗量的比值,作为所述用户-商户对对应边的权重。

在一可选实施方式中,所述构建单元还包括:提取子单元,用于针对所述至少一个商户进行标签提取,以获得至少一个商品标签;相应地,所述添加子单元,还用于在所述无向图中,添加对应于所述至少一个商品标签的顶点;在所述无向图中对应用户的顶点与对应商品标签的顶点之间添加边;以及在所述无向图中对应商户的顶点与对应商品标签的顶点之间添加边;所述第一计算子单元,还用于计算所述添加子单元所添加的对应用户的顶点与对应商品标签的顶点之间的边的权重,以及计算所述添加子单元所添加的对应商户的顶点与对应商品标签的顶点之间的边的权重。

在一可选实施方式中,所述添加子单元具体用于:对所述至少一个用户与所述至少一个商品标签中存在使用关系的用户-标签对,在所述用户-标签对对应的两个顶点之间添加一条边;以及对所述至少一个商户与所述至少一个商品标签中存在包含关系的商户-标签对,在所述商户-标签对对应的两个顶点之间添加一条边;所述第一计算子单元具体用于:根据所述用户-标签对之间存在的使用关系的属性值,计算所述用户-标签对对应边的权重;以及根据所述商户-标签对之间存在的包含关系的属性值,计算所述商户-标签对对应边的权重。

在一可选实施方式中,所述第一计算子单元具体用于:计算所述用户-标签对中的用户在产生的网络行为中使用了所述用户-标签对中的商品标签的次数,与所述用户-标签对中的用户在产生的网络行为中使用商品标签的总次数的比值,作为所述用户-标签对对应边的权重;计算所述商户-标签对中的商户所提供的商品中被打上所述商户-标签对中的商品标签的商品数量,与所述商户-标签对中的商户所提供的商品总数量的比值,作为所述商户-标签对对应边的权重。

在一可选实施方式中,所述构建单元还包括:识别子单元,用于识别所述至少一个商品标签中,关联度小于关联度阈值的冷关联商品标签;扩展子单元,用于根据所述冷关联商品标签以上级别的商品标签,将所述冷关联商品标签扩展为关联度大于关联度阈值的商品标签。

在一可选实施方式中,所述计算单元包括:初始化子单元,用于初始化所述无向图中对应所述待推荐用户的顶点的排序值为1,其它顶点的排序值为0;游走子单元,用于采用随机游走算法,自所述无向图中对应所述待推荐用户的顶点开始,在所述无向图的顶点中随机游走,以及第二计算子单元,用于根据所述无向图中对应所述待推荐用户的顶点与游走到的顶点之间的边的权重以及所述无向图中其它节点与所述游走到的顶点之间的边的权重,计算所述游走到的顶点的排序值,直到满足迭代结束条件时停止游走,以获得所述无向图中各顶点的排序值。

在一可选实施方式中,所述第二计算子单元具体用于:根据公式计算所述游走到的顶点的排序值;其中,rank(v)表示所述游走到的顶点v的排序值;wuv表示所述无向图中对应所述待推荐用户的顶点u与所述游走到的顶点v之间的边的权重;in(v)表示连接到顶点v的顶点集合;rank(v′)表示所述顶点集合中顶点v′的排序值;wv′v表示顶点v′和顶点v之间边的权重;out(v′)表示顶点v′的出度大小;α表示随机游走的概率。

在一可选实施方式中,所述获取单元具体用于:根据所述待推荐用户的当前位置,从候选商户集合中,获取与所述待推荐用户之间的距离小于指定距离阈值的所述至少一个商户;从候选用户集合中,获取与所述至少一个商户存在网络行为关系的所述至少一个用户。

本申请实施例还提供一种电子设备,包括存储器和处理器;所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时能够实现上述实施例提供的推荐方法中的步骤。

本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序使计算机执行上述实施例提供的推荐方法中的步骤。

在本申请实施例中,基于用户与商户之间存在的网络行为关系,构建描述用户-商户关联关系的加权无向图,进而基于无向图中边的权重计算出的对应于商户的顶点的排序值,向用户推荐兴趣商户,由此可见,本申请实施例利用用户与商户之间的关系替换了用户与商品之间的关系,从而克服了现有技术中因商品种类繁多,商品属性不统一,商品命名不规范导致的推荐结果不理想的缺陷,可以更加准确地向用户推荐商品。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请一实施例提供的推荐方法的流程示意图;

图2为本申请另一实施例提供的加权无向图的示意图;

图3为本申请另一实施例提供的推荐方法的流程示意图;

图4为本申请又一实施例提供的推荐方法的流程示意图;

图5为本申请又一实施例提供的加权无向图的示意图;

图6为本申请又一实施例提供的推荐方法的流程示意图;

图7为本申请又一实施例提供的推荐装置的结构示意图;

图8为本申请又一实施例提供的推荐装置的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

针对现有推荐技术存在的缺陷,本申请实施例提供一种解决方案,主要原理是:通过加权无向图反应用户与商户之间的关联关系,基于加权无向图计算出的各顶点的排序值,向用户推荐兴趣商户,利用商户数量相对较少,属性比较好统一,也相对规范的优势,克服现有推荐技术存在的缺陷,提高推荐结果的准确性。

以下结合附图,详细说明本申请各实施例提供的技术方案。

图1为本申请一实施例提供的推荐方法的流程示意图。如图1所示,所述方法包括:

101、获取至少一个用户以及至少一个商户,所述至少一个用户包含待推荐用户。

102、根据至少一个用户与至少一个商户之间存在的网络行为关系,构建描述用户-商户关联关系的无向图。

103、根据无向图中边的权重,以基于随机游走的加权迭代方式,计算无向图中对应至少一个商户的顶点的排序值。

104、根据无向图中对应至少一个商户的顶点的排序值,从至少一个商户中向待推荐用户推荐兴趣商户。

参见步骤101,当需要向待推荐用户进行推荐时,可以待推荐用户为依据,获取至少一个用户以及至少一个商户,至少一个用户包含待推荐用户。

例如,当用户登录购物类网站或购物类应用(application,app)时,为便于用户快速获取自己所需的内容,可向用户进行推荐,此时的用户即为待推荐用户。或者,当按照设定的推荐逻辑,购物类网站或购物类app需要向某用户进行推荐时,可以向用户进行推荐,此时的用户即为待推荐用户。

参见步骤102,在步骤101获取的至少一个用户与至少一个商户之间存在网络行为关系。所述网络行为关系包括以下至少一种:用户从商户购买商品的行为关系,用户向商户进行信息咨询的行为关系,用户对商户进行评价的行为关系,用户浏览商户提供的商品的行为关系,用户收藏商户的店铺或商品的行为关系,用户添加商户的商品至购物车的行为关系,等等。

值得说明的是,不同用户与同一商户之间存在的网络行为关系可以相同也可以不相同;同一用户与不同商户之间存在的网络行为关系可以相同也可以不相同。另外,在至少一个用户与至少一个商户之间,每个用户可以与每个商户之间都存在网络行为关系,也可以是只与部分商户之间存在网络行为关系。

在步骤102中,基于用户与商户之间存在的网络行为关系,构建描述用户-商户关联关系的无向图。本实施例中的无向图是加权的无向图,即无向图包括顶点、边以及边的权重。

其中,无向图中的顶点表示用户或商户;无向图中的边表示用户与商户之间存在的网络行为关系;无线图中边的权重表示用户与商户之间的网络行为关系的属性值,该属性值反应用户与商户之间的关联关系的程度。一般来说,边的权重越大,表示用户与商户之间的关联关系越强;反之,边的权重越小,表示用户与商户之间的关联关系越弱。

参见步骤103,基于步骤102构建的无向图中边的权重,以基于随机游走的加权迭代方式,计算无向图中对应至少一个商户的顶点的排序(rank)值。对无向图中对应商户的来说,该顶点的排序值即为该顶点代表的商户的排序值。

值得说明的是,本实施例重点关注代表商户的顶点,以便于基于代表商户的顶点的排序值向待推荐用户推荐兴趣商户。

参见步骤104,基于步骤103计算出的无向图中对应至少一个商户的顶点的排序值,从至少一个商户中向用户推荐兴趣商户。其中,代表商户的顶点的排序值越高,说明用户对该顶点代表的商户的兴趣度越高,可优先推荐给用户。

在本实施例中,基于用户与商户之间存在的网络行为关系,构建描述用户-商户关联关系的加权无向图,通过加权无向图反应用户与商户之间的关联关系,基于加权无向图计算出的对应商户的顶点的排序值,向用户推荐兴趣商户,利用商户数量相对较少,属性比较好统一,也相对规范的优势,克服现有推荐技术因商品种类繁多,商品属性不统一,商品命名不规范导致的推荐结果不理想的缺陷,提高推荐结果的准确性。另外,对新用户来说,开始消费的商品较少,商品数据比较稀疏,难以实现基于商品的推荐,而采用本实施例提供的方法,基于用户-商户关联关系的加权无向图进行推荐,可以克服因数据稀疏导致推荐效果不理想或无法推荐的问题。

在上述实施例或下述实施例中,在推荐过程中,需确定包含待推荐用户的至少一个用户与至少一个商户。一种确定至少一个用户以及至少一个商户的可选实施方式包括:首先根据待推荐用户的当前位置,从候选商户集合中,获取与待推荐用户之间的距离小于指定距离阈值的至少一个商户;简单来说,根据待推荐用户的当前位置,从候选商户集合中选择附近的商户;接着,从候选用户集合中,获取与至少一个商户存在网络行为关系的至少一个用户,至少一个用户包含待推荐用户。当然,若待推荐用户直接被选作至少一个用户中的用户,则可以从候选用户集合中,获取与至少一个商户存在网络行为关系的至少一个用户中除待推荐用户之外的其它用户。

在上述可选实施方式中,候选商户集合可由系统中的所有商户或指定的部分商户构成;相应地,候选用户集合可由系统中所有用户或指定的部分用户构成。

在上述可选实施方式中,基于待推荐用户的当前位置过滤出附近的商户,可以减少加权无向图中的顶点数量,缩小了随机游走算法搜索的范围,减少了加权迭代过程中的计算量,提高了推荐效率。

在上述实施例或下述实施例中,需要根据至少一个用户与至少一个商户之间存在的网络行为关系,构建描述用户-商户关联关系的无向图。结合图2所示无向图,一种构建无向图的可选实施方式,如图3所示,包括以下步骤:

1021、将至少一个用户与至少一个商户映射为无向图中的顶点。

1022、对至少一个用户与至少一个商户中存在网络行为关系的用户-商户对,在用户-商户对对应的两个顶点之间添加一条边。

1023、根据用户-商户对之间存在的网络行为关系的属性值,计算用户与商户对对应边的权重。

参见步骤1021,在构建无向图的过程中,将用户和商户分别映射为无向图中的顶点。在图2所示无向图中,左侧为代表用户的顶点,分别为u1、u2、u3以及u4;右侧为代表商户的顶点,分别为s1、s2、s3、s4以及s5。值得说明的是,为了便于区分和理解,在图2中将代表用户的顶点和代表商户的顶点分开显示,实际上并不限于此。

参见步骤1022,映射出顶点之后,需要在顶点之间添加边。在本实施例中,主要是指在代表用户的顶点与代表商户的顶点之间添加边,所述添加的边表示两个顶点之间存在网络行为关系。基于此,可以从至少一个用户与至少一个商户中找出存在网络行为关系的用户和商户,称之为用户-商户对,然后在无向图中代表该用户-商户对的顶点之间添加边。

在图2所示无向图中,顶点u1代表的用户与顶点s1、s3以及s4代表的商户之间存在网络行为关系,故在顶点u1与顶点s1、s3以及s4之间分别添加边;相应地,顶点u2代表的用户与顶点s4代表的商户之间存在网络行为关系,故在顶点u2与顶点s4之间添加边;相应地,顶点u3代表的用户与顶点s1、s2以及s5代表的商户之间存在网络行为关系,故在顶点u3与顶点s1、s2以及s5之间分别添加边;相应地,顶点u4代表的用户与顶点s3以及s5代表的商户之间存在网络行为关系,故在顶点u4与顶点s3以及s5之间分别添加边。

参见步骤1023,在无向图中,两顶点之间的边表示两个顶点代表的用户-商户对之间存在关联关系,则可以根据用户-商户对之间存在的网络行为关系的属性值,计算用户-商户对对应边的权重,以通过该权重表示两个顶点代表的用户-商户之间的关联度。

值得说明的是,根据网络行为关系的不同以及网络行为关系的属性值的不同,计算用户-商户对对应边的权重的方式也会有所不同。

例如,在一种应用场景中,可以计算用户-商户对中的用户在用户-商户对中的商户处产生网络行为的次数,与用户-商户对中的用户在至少一个商户中所有商户处产生网络行为的总次数的比值,作为用户-商户对对应边的权重。

又例如,在一种应用场景中,计算用户-商户对中的用户在用户-商户对中的商户处产生网络行为对应的资源消耗量,与用户-商户对中的用户在至少一个商户中所有商户处产生网络行为对应的总资源消耗量的比值,作为用户-商户对对应边的权重。

在一具体应用场景中,至少一个用户与至少一个商户之间存在的网络行为关系为用户从商户购买商品的购买关系,则用户-商户对之间存在的网络行为关系为购买关系;相应地,可以将购买的金额和/或购买的次数作为可反映该购买关系的属性值。

基于上述,以购买关系为例,计算用户-商户对对应边的权重的方式,可以是:计算用户-商户对中的用户在用户-商户对中的商户处的购买次数,与用户-商户对中的用户在至少一个商户中所有商户处的购买总次数的比值,作为用户-商户对对应边的权重;或者,计算用户-商户对中的用户在用户-商户对中的商户处的消费金额,与用户-商户对中的用户在至少一个商户中所有商户处的消费总金额的比值,作为户-商户对对应边的权重。

经过上述步骤1021-1023,可以得到图2所示的无向图。在图2中,w11表示顶点u1与顶点s1之间的边的权重;w13表示顶点u1与顶点s3之间的边的权重;w14表示顶点u1与顶点s4之间的边的权重;w24表示顶点u2与顶点s4之间的边的权重;w31表示顶点u3与顶点s1之间的边的权重;w32表示顶点u3与顶点s2之间的边的权重;w35表示顶点u3与顶点s5之间的边的权重;w43表示顶点u4与顶点s3之间的边的权重;w45表示顶点u4与顶点s5之间的边的权重。

在上述实施例或下述实施例中,为了给待推荐用户推荐兴趣商户,需要按照待推荐用户与至少一个商户的关联程度对至少一个商户进行排序。为此,可以根据无向图中边的权重,以基于随机游走的加权迭代方式,计算无向图中对应至少一个商户的顶点的排序值,进而可基于排序值对至少一个商户进行排序。

其中,单纯从图的角度来说,一方面,两个顶点之间的关联程度可以通过两个顶点之间的路径数量来反应。一般来说,顶点之间的路径数量越多,两个顶点之间的关联度越高。结合图2,顶点u1和顶点s2之间有一条路径,即(u1,s1,u3,s2);而顶点u1和顶点s5之间有两条路径,即路径(u1,s1,u3,s5)和(u1,s3,u4,s5),原则上顶点u1与顶点s5的相关性高于顶点u1与顶点s2之间的相关性,这也说明,顶点u1与顶点s5之间的边的权重要大于顶点u1与顶点s2之间的边的权重。

另一方面,两个顶点之间的关联程度可以通过两顶点之间的路径长度来反应。一般来说,两个顶点之间的路径长度越短,两个顶点之间的关联度越高。结合图2,顶点u1和顶点s2之间还可以走路径(u1,s3,u4,s5,u3,s2),但与其相比,路径(u1,s1,u3,s2)更短,则在路径(u1,s1,u3,s2)上顶点u1和顶点s2之间的关联度更高。

再一方面,两个顶点之间的关联程度可以通过两个顶点之间的路径上顶点的出度来反应。一般来说,路径上顶点的出度(out-degree)越少,两个顶点之间的关联度越高。结合图2,顶点u1和顶点s5之间有两条路径,即路径(u1,s1,u3,s5)和(u1,s3,u4,s5),路径上的顶点出度分别为(3,2,3,2)和(3,2,2,2),所以在路径(u1,s3,u4,s5)上顶点u1和顶点s5之间的关联度更高。

基于上述分析,随机游走的加权迭代方式的计算过程包括:初始化无向图中对应待推荐用户的顶点的排序值为1,其它顶点的排序值为0;采用随机游走算法,自无向图中对应待推荐用户的顶点开始,在无向图的顶点中随机游走;对于游走到的顶点,根据无向图中对应待推荐用户的顶点与游走到的顶点之间的边的权重以及无向图中其它节点与所述游走到的顶点之间的边的权重,计算所述游走到的顶点的排序值,直到满足迭代结束条件时停止游走,以获得无向图中各顶点的排序值。这里无向图中各顶点包括对应至少一个商户的顶点以及对应至少一个用户的顶点。在实际推荐商户时,可以仅使用对应至少一个商户的顶点的排序值。

进一步可选地,可以根据公式(1),计算游走到的顶点的排序值。

在公式(1)中,v表示所述游走到的顶点;rank(v)表示所述游走到的顶点v的排序值;α表示随机游走的概率,可根据应用需求适应性设置;u表示无向图中对应所述待推荐用户的顶点;wuv表示无向图中对应所述待推荐用户的顶点u与所述游走到的顶点v之间的边的权重;in(v)表示连接到顶点v的顶点集合;rank(v′)表示所述顶点集合中顶点v′的排序值;wv′v表示顶点v′和顶点v之间边的权重;out(v′)表示顶点v′的出度大小。

由上述公式(1)可知,与顶点v连接的顶点结合中各顶点的出度越大,在一定程度上反应了顶点v的出度大小,顶点v的出度越大,说明顶点v对应的排序值越小。另外,与顶点v之间的路径数量越多,连接到顶点v的其它顶点的数量越多,参与公式(1)中相加的后一项的数量越多,说明顶点v对应的排序值越大。

经过上述计算,可以获得无向图中各顶点的排序值,根据各顶点的排序值,从至少一个商户中选择用户的兴趣商户并推荐给待推荐用户。

可选地,可以根据各顶点的排序值,对各顶点进行排序,按照排序结果从至少一个商户中选择用户的兴趣商户并推荐给待推荐用户。例如,可以按照排序值由大到小的顺序,对无向图中各顶点排序,然后选择排序结果中最靠前且未与待推荐用户存在网络行为关系的至少一个商户推荐给待推荐用户。或者,可以按照排序值由小到大的顺序,对无向图中各顶点排序,然后选择排序结果中最靠后且未与待推荐用户存在网络行为关系的至少一个商户推荐给待推荐用户。

可选地,可以从各顶点中筛选出代表商户的顶点,按照代表商户的顶点的排序值,对代表商户的顶点进行排序,按照排序结果从至少一个商户中选择用户的兴趣商户并推荐给待推荐用户。例如,可以按照排序值由大到小的顺序,对无向图中代表商户的顶点排序,然后选择排序结果中最靠前且未与待推荐用户存在网络行为关系的至少一个商户推荐给待推荐用户。或者,可以按照排序值由小到大的顺序,对无向图中代表商户的顶点排序,然后选择排序结果中最靠后且未与待推荐用户存在网络行为关系的至少一个商户推荐给待推荐用户。

例如,上述未与待推荐用户存在网络行为关系的商户可以是待推荐用户未去过的商户,或者是待推荐用户未关注过的商户,或者是待推荐用户未发生购买行为的商户等,具体视应用场景或应用需求而定。

基于上述各实施例或实施方式,如图4所示,一种推荐方法的优选实施方式包括以下步骤:

401、根据待推荐用户的当前位置,从候选商户集合中,获取与待推荐用户之间的距离小于指定距离阈值的至少一个商户。

402、从候选用户集合中,获取与至少一个商户存在网络行为关系的至少一个用户,所述至少一个用户包含待推荐用户。

403、将至少一个用户与至少一个商户映射为无向图中的顶点。

404、对至少一个用户与至少一个商户中存在网络行为关系的用户-商户对,在用户-商户对对应的两个顶点之间添加一条边。

405、根据用户-商户对之间存在的网络行为关系的属性值,计算用户与商户对对应边的权重。

406、根据无向图中边的权重,以基于随机游走的加权迭代方式,计算无向图中对应至少一个商户的顶点的排序值。

407、根据无向图中对应至少一个商户的顶点的排序值,从至少一个商户中向待推荐用户推荐兴趣商户。

本实施例中,各步骤的详细描述可参见前述相应实施例或实施方式的描述,在此不再赘述。

在本实施例中,基于待推荐用户的当前位置过滤出附近的商户,在结合用户与商户之间存在的网络行为关系,构建描述用户-商户关联关系的加权无向图的过程中,可以减少加权无向图中的顶点数量,进而在计算无向图中顶点的排序值过程中,可缩小随机游走算法搜索的范围,不仅可以提高推荐结果准确性,而且还可以减少加权迭代过程中的计算量,提高推荐效率。

在上述实施例中,主要基于用户与商户之间直接的网络行为关系构建加权的无向图,进而基于无向图向用户推荐兴趣商户。除此之外,为了增强用户与商户之间的网络行为关系,可以针对商户进行标签提取,获得商品标签,通过商品标签拓展用户与商户之间存在的网络行为关系,以便更加全面、准确地向用户推荐兴趣商户。商品标签主要是指可以反映商户属性或可以反映商户提供的商品属性的信息,例如可以是商户类型、商户提供的商品品类等信息。可选地,可以从商户名称、商户描述信息、商户提供的商品的名称、描述信息以及所属的品类等信息中提取商品标签。

基于上述分析,结合图5所示的无向图,本申请又一实施例提供的推荐方法的流程,如图6所示,包括以下步骤:

601、根据待推荐用户的当前位置,从候选商户集合中,获取与待推荐用户之间的距离小于指定距离阈值的至少一个商户。

602、从候选用户集合中,获取与至少一个商户存在网络行为关系的至少一个用户,所述至少一个用户包含待推荐用户。

603、将至少一个用户与至少一个商户映射为无向图中的顶点。

604、对至少一个用户与至少一个商户中存在网络行为关系的用户-商户对,在用户-商户对对应的两个顶点之间添加一条边。

605、根据用户-商户对之间存在的网络行为关系的属性值,计算用户与商户对对应边的权重。

606、针对至少一个商户进行标签提取,以获得至少一个商品标签。

607、在无向图中,添加对应于至少一个商品标签的顶点。

608、在无向图中对应用户的顶点与对应商品标签的顶点之间添加边,并计算所添加的边的权重。

609、在无向图中对应商户的顶点与对应商品标签的顶点之间添加边,并计算所添加的边的权重。

610、根据无向图中边的权重,以基于随机游走的加权迭代方式,计算无向图中对应至少一个商户的顶点的排序值。

611、根据无向图中对应至少一个商户的顶点的排序值,从至少一个商户中向待推荐用户推荐兴趣商户。

步骤601-605可参见前述实施例或实施方式中的描述,在此不再赘述。

参见步骤606,针对至少一个商户进行标签提取,以获得至少一个商品标签。例如,可以从每个商户的名称、商户描述信息以及商户提供的商品相关的信息中提取可以反映商户属性或商户提供的商品属性的信息,作为商品标签。对每个商户来说,其商品标签可以是一个或多个。以外卖类商户为例,商品标签可以是川菜、湘菜、粤菜等,也可以是西餐、中餐等。

参见步骤607,基于步骤606提取的商品标签,可以在无向图中添加代表至少一个商品标签的顶点,或者说,将至少一个商品标签映射成无向图中的顶点。在图5所示无向图中,左侧为代表用户的顶点,分别为u1、u2、u3以及u4;右侧为代表商户的顶点,分别为s1、s2、s3、s4以及s5;下面为代表商品标签的顶点,分别是t1,t2以及t3。值得说明的是,为了便于区分和理解,在图5中将代表用户的顶点、代表商户的顶点以及代表商品标签的顶点分开显示,实际上并不限于此。

参见步骤608,基于步骤607添加的顶点,需要在无向图中添加代表用户的顶点与代表商品标签的顶点之间的边,并计算所添加的边的权重。

可选地,可以从至少一个用户与至少一个商品标签中发现存在使用关系的用户与标签,称为用户-标签对,在所述用户-标签对对应的两个顶点之间添加一条边。这里将用户使用某一商品标签产生网络行为的关系称为用户与商品标签之间的使用关系。

在图5所示无向图中,顶点u1代表的用户与顶点t3代表的商品标签之间存在使用关系,故在顶点u1与顶点t3之间添加边;相应地,顶点u2代表的用户与顶点t2代表的商品标签之间存在使用关系,故在顶点u2与顶点t2之间添加边;相应地,顶点u3代表的用户与顶点t2代表的商品标签之间存在使用关系,故在顶点u3与顶点t2之间添加边;相应地,顶点u4代表的用户与顶点t1代表的商品标签之间存在使用关系,故在顶点u4与顶点t1之间添加边。为便于区分,其它顶点与代表商品标签的顶点之间的边用虚线表示。

在用户-标签对对应的顶点之间添加边之后,根据所述用户-标签对之间存在的使用关系的属性值,计算所述用户-标签对对应边的权重。

值得说明的是,根据网络行为关系、使用关系的不同以及使用关系的属性值的不同,计算用户-标签对对应边的权重的方式也会有所不同。

例如,在一种应用场景中,可以计算所述用户-标签对中的用户在产生的网络行为中使用了所述用户-标签对中的商品标签的次数,与所述用户-标签对中的用户在产生的网络行为中使用商品标签的总次数的比值,作为所述用户-标签对对应边的权重。

在一具体应用场景中,至少一个用户与至少一个商户之间存在的网络行为关系为用户从商户购买商品的购买关系,相应地,用户与商品标签之间的使用关系具体为用户使用商品标签购买商品的关系;相应地,可以将用户使用某商品标签购买商品的次数作为可反映用户与该商品标签之间的使用关系的属性值。

基于上述,以购买关系为例,计算用户-标签对对应边的权重的方式,可以是:计算用户-标签对中的用户在购买商品过程中使用了用户-标签对中的商品标签的次数,与用户-标签对中的用户在购买商品过程中使用商品标签的总次数的比值,作为用户-标签对对应边的权重。

在图5所示无向图中,q13表示顶点u1与顶点t3之间的边的权重;q22表示顶点u2与顶点t2之间的边的权重;q32表示顶点u3与顶点t2之间的边的权重;q41表示顶点u4与顶点t1之间的边的权重。

继续参见步骤609,基于步骤607添加的顶点,需要在无向图中添加代表商户的顶点与代表商品标签的顶点之间的边,并计算所添加的边的权重。

可选地,可以从至少一个商户与至少一个商品标签中发现存在包含关系的商户与商品标签,称为商户-标签对,在所述商户-标签对对应的两个顶点之间添加一条边。这里将商户提供的商品被打上某一商品标签的关系称为商户对该商品标签具有包含关系。

在图5所示无向图中,顶点s1代表的商户与顶点t2代表的商品标签之间存在包含关系,故在顶点s1与顶点t2之间添加边;相应地,顶点s2代表的商户与顶点t2代表的商品标签之间存在包含关系,故在顶点s2与顶点t2之间添加边;相应地,顶点s3代表的商户与顶点t1代表的商品标签之间存在包含关系,故在顶点s3与顶点t1之间添加边;相应地,顶点s4代表的商户与顶点t3代表的商品标签之间存在包含关系,故在顶点s4与顶点t3之间添加边;相应地,顶点s5代表的商户与顶点t2代表的商品标签之间存在包含关系,故在顶点s5与顶点t2之间添加边。

在商户-标签对对应的顶点之间添加边之后,根据所述商户-标签对之间存在的包含关系的属性值,计算所述商户-标签对对应边的权重。

在一种应用场景中,可以将商户提供的商品中被打上某一商品标签的商品数量,作为反映商户与该商品标签之间的包含关系的属性值。基于此,可以计算商户-标签对中的商户所提供的商品中被打上所述商户-标签对中的商品标签的商品数量,与所述商户-标签对中的商户所提供的商品总数量的比值,作为所述商户-标签对对应边的权重。

在图5所示无向图中,p12表示顶点s1与顶点t2之间的边的权重;p22表示顶点s2与顶点t2之间的边的权重;p31表示顶点s3与顶点t1之间的边的权重;p43表示顶点s4与顶点t3之间的边的权重;p52表示顶点s5与顶点t2之间的边的权重。

经过上述步骤601-609,得到图5所示的无向图。

值得说明的是,上述步骤603-609均属于构建无向图的步骤,步骤606-609描述的操作与步骤603-605描述的操作之间的执行顺序可不做限定。本实施例以步骤606-609描述的操作在步骤603-605描述的操作之后执行为例,当然步骤606-609描述的操作还可以与步骤603-605描述的操作融合在一起执行,或者在步骤603-605描述的操作之前执行。

以上述步骤606-609描述的操作与步骤603-605描述的操作融合在一起执行为例,可以先执行针对至少一个商户进行标签提取,以获得至少一个商品标签;然后,在至少一个用户、至少一个商户以及至少一个商品标签均映射为无向图中的顶点;接着,根据用户与商户之间、用户与商品标签之间、商户与商品标签之间的相应关系,在相应顶点之间添加边;最后,根据相应关系的属性值,计算各条边的权重。

参见步骤610,基于图5所示无向图中边的权重,采用随机游走的加权迭代方式,计算出无向图中各顶点的排序值。这里主要关心代表商户的顶点的排序值以及代表商品标签的顶点的排序值。

步骤610的计算过程与图4所示步骤406的计算过程相同,区别仅在于:增加了代表商品标签的顶点。关于步骤610的计算过程可参见图3所示实施方式中的描述,在此不再赘述。

参见步骤611,基于步骤610计算出的各顶点的排序值,对各顶点进行排序,按照排序结果从至少一个商户中选择用户的兴趣商户并推荐给待推荐用户。

可选地,可以按照排序值由大到小的顺序,对无向图中各顶点排序,然后选择排序结果中最靠前且未与待推荐用户存在网络行为关系的至少一个的商户推荐给待推荐用户。或者,可以按照排序值由小到大的顺序,对无向图中各顶点排序,然后选择排序结果中最靠后且未与待推荐用户存在网络行为关系的至少一个商户推荐给待推荐用户。

可选地,可以从各顶点中筛选出代表商户的顶点,按照代表商户的顶点的排序值,对代表商户的顶点进行排序,按照排序结果从至少一个商户中选择用户的兴趣商户并推荐给待推荐用户。例如,可以按照排序值由大到小的顺序,对无向图中代表商户的顶点排序,然后选择排序结果中最靠前且未与待推荐用户存在网络行为关系的至少一个商户推荐给待推荐用户。或者,可以按照排序值由小到大的顺序,对无向图中代表商户的顶点排序,然后选择排序结果中最靠后且未与待推荐用户存在网络行为关系的至少一个商户推荐给待推荐用户。

例如,上述未与待推荐用户存在网络行为关系的商户可以是待推荐用户未去过的商户,或者是待推荐用户未关注过的商户,或者是待推荐用户未发生购买行为的商户等,具体视应用场景或应用需求而定。

在本实施例中,基于用户与商户之间、用户与商品标签之间以及商户与商品标签之间的关系,构建加权的无向图,进而基于无向图向用户推荐兴趣商户,由于利用商品标签增强了用户和商户之间的相关性,在提高推荐结果的准确性的同时,还有利于提升推荐的多样性和可解释性。

在上述实施例中,在无向图中,添加商品标签对应的顶点之前,还可以对商品标签进行预处理。例如,可以识别所述至少一个商品标签中,关联度小于关联度阈值的冷关联商品标签;根据所述冷关联商品标签以上级别的商品标签,将所述冷关联商品标签扩展为关联度大于关联度阈值的商品标签。这里的关联度主要是指商品标签所能关联到的用户和/或商户的数量。关于关联度阈值,可根据应用需求适应性设置。

例如,商品标签“nike鞋子”,其关联到的商户或用户数量都比较少,不利于推荐,则可以将商品标签“nike鞋子”扩展为关联度较大的商品标签“鞋子”,这样可以关联到大量用户和商户,无向图中边和顶点的数量较多,表示用户与商户之间的网络行为关系也较丰富,有利于进行推荐,以便于成功地向用户推荐兴趣商户。

基于上述各实施例,在推荐兴趣商户的基础上,可以进一步向待推荐用户推荐商品或商品列表,以实现更细粒度的推荐。例如,可以优先向用户展示兴趣商户,进而向用户展示兴趣商户提供的特色商品或热门商品等。

需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤101至步骤104的执行主体可以为设备a;又比如,步骤101-103的执行主体可以为设备a,步骤104的执行主体可以为设备b;等等。

图7为本申请又一实施例提供的推荐装置的结构示意图。如图7所示,所述推荐装置包括:获取单元71、构建单元72、计算单元73以及推荐单元74。

获取单元71,用于获取至少一个用户以及至少一个商户,所述至少一个用户包含待推荐用户。

构建单元72,用于根据获取单元71获取的至少一个用户与至少一个商户之间存在的网络行为关系,构建描述用户-商户关联关系的无向图。

计算单元73,用于根据构建单元72构建的无向图中边的权重,以基于随机游走的加权迭代方式,计算无向图中对应至少一个商户的顶点的排序值。

推荐单元74,用于根据计算单元73计算出的无向图中对应至少一个商户的顶点的排序值,从至少一个商户中向待推荐用户推荐兴趣商户。

在一可选实施方式中,如图8所示,构建单元72的一种实现结构包括:映射子单元721、添加子单元722以及第一计算子单元723。

映射子单元721,用于将至少一个用户与至少一个商户映射为无向图中的顶点。

添加子单元723,用于对至少一个用户与至少一个商户中存在网络行为关系的用户-商户对,在用户-商户对对应的两个顶点之间添加一条边。

第一计算子单元723,用于根据用户-商户对之间存在的网络行为关系的属性值,计算用户-商户对对应边的权重。

在一可选实施方式中,第一计算子单元723具体用于:

计算用户-商户对中的用户在用户-商户对中的商户处产生网络行为的次数,与用户-商户对中的用户在至少一个商户中所有商户处产生网络行为的总次数的比值,作为用户-商户对对应边的权重;或者

计算用户-商户对中的用户在用户-商户对中的商户处产生网络行为对应的资源消耗量,与用户-商户对中的用户在至少一个商户中所有商户处产生网络行为对应的总资源消耗量的比值,作为用户-商户对对应边的权重。

在一可选实施方式中,如图8所示,构建单元72还包括:提取子单元724。

提取子单元724,用于针对至少一个商户进行标签提取,以获得至少一个商品标签。相应地,添加子单元722,还用于在无向图中,添加对应于至少一个商品标签的顶点;在无向图中对应用户的顶点与对应商品标签的顶点之间添加边;以及在无向图中对应商户的顶点与对应商品标签的顶点之间添加边。相应地,第一计算子单元723,还用于计算添加子单元722所添加的对应用户的顶点与对应商品标签的顶点之间的边的权重,以及计算添加子单元722所添加的对应商户的顶点与对应商品标签的顶点之间的边的权重。

在一可选实施方式中,添加子单元722具体用于:对至少一个用户与至少一个商品标签中存在使用关系的用户-标签对,在用户-标签对对应的两个顶点之间添加一条边;以及对至少一个商户与至少一个商品标签中存在包含关系的商户-标签对,在商户-标签对对应的两个顶点之间添加一条边。

相应地,第一计算子单元723具体用于:根据用户-标签对之间存在的使用关系的属性值,计算用户-标签对对应边的权重;以及根据商户-标签对之间存在的包含关系的属性值,计算商户-标签对对应边的权重。

在一可选实施方式中,第一计算子单元723具体用于:计算用户-标签对中的用户在产生的网络行为中使用了用户-标签对中的商品标签的次数,与用户-标签对中的用户在产生的网络行为中使用商品标签的总次数的比值,作为用户-标签对对应边的权重;以及计算商户-标签对中的商户所提供的商品中被打上商户-标签对中的商品标签的商品数量,与商户-标签对中的商户所提供的商品总数量的比值,作为商户-标签对对应边的权重。

在一可选实施方式中,如图8所示,构建单元72还包括:识别子单元725和扩展子单元726。

识别单元725,用于识别至少一个商品标签中,关联度小于关联度阈值的冷关联商品标签。

扩展单元726,用于根据识别单元725识别出的冷关联商品标签以上级别的商品标签,将冷关联商品标签扩展为关联度大于关联度阈值的商品标签。扩展单元726与添加子单元722连接,用于向添加子单元722提供关联度大于关联度阈值的商品标签。

在一可选实施方式中,如图8所示,计算单元73的一种实现结构,包括:初始化子单元731、游走子单元732以及第二计算子单元733。

初始化子单元731,用于初始化无向图中对应待推荐用户的顶点的排序值为1,其它顶点的排序值为0。

游走子单元732,用于采用随机游走算法,自无向图中对应待推荐用户的顶点开始,在无向图的顶点中随机游走。

第二计算子单元733,用于根据无向图中对应待推荐用户的顶点与游走到的顶点之间的边的权重以及无向图中其它节点与游走到的顶点之间的边的权重,计算游走到的顶点的排序值,直到满足迭代结束条件时停止游走,以获得无向图中各顶点的排序值。

在一可选实施方式中,第二计算子单元733具体用于:根据公式(1),计算游走到的顶点的排序值。关于公式(1)以及公式(1)中有关参数的描述,可参见前述方式实施例,在此不再赘述。

在一可选实施方式中,获取单元71具体用于:根据待推荐用户的当前位置,从候选商户集合中,获取与待推荐用户之间的距离小于指定距离阈值的至少一个商户;从候选用户集合中,获取与至少一个商户存在网络行为关系的至少一个用户。

本实施例提供的推荐装置,可用于执行上述方法实施例的流程,其具体工作原理在此不再赘述。

本实施例提供的推荐装置,基于用户与商户之间存在的网络行为关系,构建描述用户-商户关联关系的加权无向图,进而基于无向图中边的权重计算出的各顶点的排序值,向用户推荐兴趣商户。由此可见,本实施例提供的推荐装置,利用用户与商户之间的关系替换了用户与商品之间的关系,从而克服了现有技术中因商品种类繁多,商品属性不统一,商品命名不规范导致的推荐结果不理想的缺陷,可以更加准确地向用户推荐商品。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

本申请实施例公开a1、一种推荐方法,包括:

获取至少一个用户以及至少一个商户,所述至少一个用户包含待推荐用户;

根据所述至少一个用户与所述至少一个商户之间存在的网络行为关系,构建描述用户-商户关联关系的无向图;

根据所述无向图中边的权重,以基于随机游走的加权迭代方式,计算所述无向图中对应所述至少一个商户的顶点的排序值;

根据所述无向图中对应所述至少一个商户的顶点的排序值,从所述至少一个商户中向所述待推荐用户推荐兴趣商户。

a2、如a1所述的方法中,所述根据所述至少一个用户与所述至少一个商户之间存在的网络行为关系,构建描述用户-商户关联关系的无向图,包括:

将所述至少一个用户与所述至少一个商户映射为所述无向图中的顶点;

对所述至少一个用户与所述至少一个商户中存在网络行为关系的用户-商户对,在所述用户-商户对对应的两个顶点之间添加一条边;以及

根据所述用户-商户对之间存在的网络行为关系的属性值,计算所述用户-商户对对应边的权重。

a3、如a2所述的方法中,所述根据所述用户-商户对之间存在的网络行为关系的属性值,计算所述用户-商户对对应边的权重,包括:

计算所述用户-商户对中的用户在所述用户-商户对中的商户处产生网络行为的次数,与所述用户-商户对中的用户在所述至少一个商户中所有商户处产生网络行为的总次数的比值,作为所述用户-商户对对应边的权重;或者

计算所述用户-商户对中的用户在所述用户-商户对中的商户处产生网络行为对应的资源消耗量,与所述用户-商户对中的用户在所述至少一个商户中所有商户处产生网络行为对应的总资源消耗量的比值,作为所述用户-商户对对应边的权重。

a4、如a1所述的方法中,所述根据所述至少一个用户与所述至少一个商户之间存在的网络行为关系,构建描述用户-商户关联关系的无向图,还包括:

针对所述至少一个商户进行标签提取,以获得至少一个商品标签;

在所述无向图中,添加对应于所述至少一个商品标签的顶点;

在所述无向图中对应用户的顶点与对应商品标签的顶点之间添加边并计算所添加的边的权重;以及

在所述无向图中对应商户的顶点与对应商品标签的顶点之间添加边并计算所添加的边的权重。

a5、如a4所述的方法中,所述在所述无向图中对应用户的顶点与对应商品标签的顶点之间添加边并计算所添加的边的权重,包括:

对所述至少一个用户与所述至少一个商品标签中存在使用关系的用户-标签对,在所述用户-标签对对应的两个顶点之间添加一条边;以及

根据所述用户-标签对之间存在的使用关系的属性值,计算所述用户-标签对对应边的权重;

所述在所述无向图中对应商户的顶点与对应商品标签的顶点之间添加边并计算所添加的边的权重,包括:

对所述至少一个商户与所述至少一个商品标签中存在包含关系的商户-标签对,在所述商户-标签对对应的两个顶点之间添加一条边;

根据所述商户-标签对之间存在的包含关系的属性值,计算所述商户-标签对对应边的权重。

a6、如a5所述的方法中,所述根据所述用户-标签对之间存在的使用关系的属性值,计算所述用户-标签对对应边的权重,包括:

计算所述用户-标签对中的用户在产生的网络行为中使用了所述用户-标签对中的商品标签的次数,与所述用户-标签对中的用户在产生的网络行为中使用商品标签的总次数的比值,作为所述用户-标签对对应边的权重;

所述根据所述商户-标签对之间存在的属性包含关系的属性值,计算所述商户-标签对对应边的权重,包括:

计算所述商户-标签对中的商户所提供的商品中被打上所述商户-标签对中的商品标签的商品数量,与所述商户-标签对中的商户所提供的商品总数量的比值,作为所述商户-标签对对应边的权重。

a7、如a4所述的方法中,所述在所述无向图中,添加对应于所述至少一个商品标签的顶点之前,还包括:

识别所述至少一个商品标签中,关联度小于关联度阈值的冷关联商品标签;

根据所述冷关联商品标签以上级别的商品标签,将所述冷关联商品标签扩展为关联度大于关联度阈值的商品标签。

a8、如a1-a7任一项所述的方法中,所述根据所述无向图中边的权重,以基于随机游走的加权迭代方式,计算所述无向图中对应所述至少一个商户的顶点的排序值,包括:

初始化所述无向图中对应所述待推荐用户的顶点的排序值为1,其它顶点的排序值为0;

采用随机游走算法,自所述无向图中对应所述待推荐用户的顶点开始,在所述无向图的顶点中随机游走,以及

根据所述无向图中对应所述待推荐用户的顶点与游走到的顶点之间的边的权重以及所述无向图中其它节点与所述游走到的顶点之间的边的权重,计算所述游走到的顶点的排序值,直到满足迭代结束条件时停止游走,以获得所述无向图中各顶点的排序值。

a9、如a8所述的方法中,所述根据所述无向图中对应所述待推荐用户的顶点与游走到的顶点之间的边的权重以及所述无向图中其它节点与所述游走到的顶点之间的边的权重,计算所述游走到的顶点的排序值,包括:

根据公式计算所述游走到的顶点的排序值;

其中,rank(v)表示所述游走到的顶点v的排序值;

wuv表示所述无向图中对应所述待推荐用户的顶点u与所述游走到的顶点v之间的边的权重;

in(v)表示连接到顶点v的顶点集合;

rank(v′)表示所述顶点集合中顶点v′的排序值;

wv′v表示顶点v′和顶点v之间边的权重;

out(v′)表示顶点v′的出度大小;

α表示随机游走的概率。

a10、如a1-a7任一项所述的方法中,所述获取至少一个用户以及至少一个商户,包括:

根据所述待推荐用户的当前位置,从候选商户集合中,获取与所述待推荐用户之间的距离小于指定距离阈值的所述至少一个商户;

从候选用户集合中,获取与所述至少一个商户存在网络行为关系的所述至少一个用户。

本申请实施例还公开b11、一种推荐装置,包括:

获取单元,用于获取至少一个用户以及至少一个商户,所述至少一个用户包含待推荐用户;

构建单元,用于根据所述至少一个用户与所述至少一个商户之间存在的网络行为关系,构建描述用户-商户关联关系的无向图;

计算单元,用于根据所述无向图中边的权重,以基于随机游走的加权迭代方式,计算所述无向图中对应所述至少一个商户的顶点的排序值;

推荐单元,用于根据所述无向图中对应所述至少一个商户的顶点的排序值,从所述至少一个商户中向所述待推荐用户推荐兴趣商户。

b12、如b11所述的装置中,所述构建单元包括:

映射子单元,用于将所述至少一个用户与所述至少一个商户映射为所述无向图中的顶点;

添加子单元,用于对所述至少一个用户与所述至少一个商户中存在网络行为关系的用户-商户对,在所述用户-商户对对应的两个顶点之间添加一条边;以及

第一计算子单元,用于根据所述用户-商户对之间存在的网络行为关系的属性值,计算所述用户-商户对对应边的权重。

b13、如b12所述的装置中,所述第一计算子单元具体用于:

计算所述用户-商户对中的用户在所述用户-商户对中的商户处产生网络行为的次数,与所述用户-商户对中的用户在所述至少一个商户中所有商户处产生网络行为的总次数的比值,作为所述用户-商户对对应边的权重;或者

计算所述用户-商户对中的用户在所述用户-商户对中的商户处产生网络行为对应的资源消耗量,与所述用户-商户对中的用户在所述至少一个商户中所有商户处产生网络行为对应的总资源消耗量的比值,作为所述用户-商户对对应边的权重。

b14、如b11所述的装置中,所述构建单元还包括:

提取子单元,用于针对所述至少一个商户进行标签提取,以获得至少一个商品标签;

所述添加子单元,还用于在所述无向图中,添加对应于所述至少一个商品标签的顶点;在所述无向图中对应用户的顶点与对应商品标签的顶点之间添加边;以及在所述无向图中对应商户的顶点与对应商品标签的顶点之间添加边;

所述第一计算子单元,还用于计算所述添加子单元所添加的对应用户的顶点与对应商品标签的顶点之间的边的权重,以及计算所述添加子单元所添加的对应商户的顶点与对应商品标签的顶点之间的边的权重。

b15、如b14所述的装置中,所述添加子单元具体用于:

对所述至少一个用户与所述至少一个商品标签中存在使用关系的用户-标签对,在所述用户-标签对对应的两个顶点之间添加一条边;以及对所述至少一个商户与所述至少一个商品标签中存在包含关系的商户-标签对,在所述商户-标签对对应的两个顶点之间添加一条边;

所述第一计算子单元具体用于:

根据所述用户-标签对之间存在的使用关系的属性值,计算所述用户-标签对对应边的权重;以及根据所述商户-标签对之间存在的包含关系的属性值,计算所述商户-标签对对应边的权重。

b16、如b15所述的装置中,所述第一计算子单元具体用于:

计算所述用户-标签对中的用户在产生的网络行为中使用了所述用户-标签对中的商品标签的次数,与所述用户-标签对中的用户在产生的网络行为中使用商品标签的总次数的比值,作为所述用户-标签对对应边的权重;

计算所述商户-标签对中的商户所提供的商品中被打上所述商户-标签对中的商品标签的商品数量,与所述商户-标签对中的商户所提供的商品总数量的比值,作为所述商户-标签对对应边的权重。

b17、如b14所述的装置中,所述构建单元还包括:

识别子单元,用于识别所述至少一个商品标签中,关联度小于关联度阈值的冷关联商品标签;

扩展子单元,用于根据所述冷关联商品标签以上级别的商品标签,将所述冷关联商品标签扩展为关联度大于关联度阈值的商品标签。

b18、如b11-b17任一项所述的装置中,所述计算单元包括:

初始化子单元,用于初始化所述无向图中对应所述待推荐用户的顶点的排序值为1,其它顶点的排序值为0;

游走子单元,用于采用随机游走算法,自所述无向图中对应所述待推荐用户的顶点开始,在所述无向图的顶点中随机游走,以及

第二计算子单元,用于根据所述无向图中对应所述待推荐用户的顶点与游走到的顶点之间的边的权重以及所述无向图中其它节点与所述游走到的顶点之间的边的权重,计算所述游走到的顶点的排序值,直到满足迭代结束条件时停止游走,以获得所述无向图中各顶点的排序值。

b19、如b18所述的装置中,所述第二计算子单元具体用于:

根据公式计算所述游走到的顶点的排序值;

其中,rank(v)表示所述游走到的顶点v的排序值;

wuv表示所述无向图中对应所述待推荐用户的顶点u与所述游走到的顶点v之间的边的权重;

in(v)表示连接到顶点v的顶点集合;

rank(v′)表示所述顶点集合中顶点v′的排序值;

wv′v表示顶点v′和顶点v之间边的权重;

out(v′)表示顶点v′的出度大小;

α表示随机游走的概率。

b20、如b11-b17任一项所述的装置中,所述获取单元具体用于:

根据所述待推荐用户的当前位置,从候选商户集合中,获取与所述待推荐用户之间的距离小于指定距离阈值的所述至少一个商户;

从候选用户集合中,获取与所述至少一个商户存在网络行为关系的所述至少一个用户。

本申请实施例还公开c21、一种电子设备,包括存储器和处理器;所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时能够实现上述a1-a10提供的任一推荐方法中的步骤。

本申请实施例还公开d22、一种存储有计算机程序的计算机可读存储介质,所述计算机程序使计算机执行上述a1-a10提供的任一推荐方法中的步骤。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1