CN118118196A - 媒体共享房间的推荐方法、装置、设备、介质及程序产品 - Google Patents

媒体共享房间的推荐方法、装置、设备、介质及程序产品 Download PDF

Info

Publication number
CN118118196A
CN118118196A CN202211528328.1A CN202211528328A CN118118196A CN 118118196 A CN118118196 A CN 118118196A CN 202211528328 A CN202211528328 A CN 202211528328A CN 118118196 A CN118118196 A CN 118118196A
Authority
CN
China
Prior art keywords
bloom filter
recommended
filter array
media sharing
recommendation
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
CN202211528328.1A
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202211528328.1A priority Critical patent/CN118118196A/zh
Priority to PCT/CN2023/088324 priority patent/WO2024113634A1/zh
Publication of CN118118196A publication Critical patent/CN118118196A/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/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • G06F16/435Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种媒体共享房间的推荐方法、装置、设备、介质及程序产品;方法包括:响应于目标对象的媒体共享房间获取请求,确定待推荐的媒体共享房间所关联的推荐区域;该媒体共享房间,用于供加入媒体共享房间的至少一个观看对象,观看媒体共享房间所播放的媒体内容;生成推荐区域的位置对应的第一布隆过滤器数组,并发送第一布隆过滤器数组至目标对象的终端;接收终端返回的结果,该结果基于第一布隆过滤器数组和第二布隆过滤器数组确定,该第二布隆过滤器数组与目标对象的位置相对应;当结果用于指示目标对象处于推荐区域时,将媒体共享房间推荐至终端;通过本申请,能够提高基于位置进行推荐时的位置隐私的安全性。

Description

媒体共享房间的推荐方法、装置、设备、介质及程序产品
技术领域
本申请涉及互联网技术领域,尤其涉及一种媒体共享房间的推荐方法、装置、设备、介质及程序产品。
背景技术
随着互联网的发展,越来越多的用户通过网络观看媒体内容(比如视频)。相关技术中,通过创建一个媒体共享房间,可以实现供加入媒体共享房间的用户一起观看媒体内容的效果。而为了吸引用户加入媒体共享房间,相关技术中还基于位置的服务(LBS,Location Based Service)将媒体共享房间推荐至附近的用户。具体是服务器直接获取用户的真实位置,然后根据媒体共享房间的创建者的真实位置和用户该真实位置之间的距离,将媒体共享房间推荐至距离小于一定阈值的用户。但是相关技术中服务器能够直接获取用户的真实位置,存在用户位置隐私泄露的隐患,将会带来位置隐私的安全问题。
发明内容
本申请实施例提供一种媒体共享房间的推荐方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够提高基于位置进行推荐时的位置隐私的安全性。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种媒体共享房间的推荐方法,包括:
响应于目标对象的媒体共享房间获取请求,确定待推荐的媒体共享房间所关联的推荐区域;
其中,所述推荐区域与所述媒体共享房间的创建对象间的距离低于距离阈值,所述媒体共享房间,用于供加入所述媒体共享房间的至少一个观看对象,观看所述媒体共享房间所播放的媒体内容;
生成所述推荐区域的位置对应的第一布隆过滤器数组,并发送所述第一布隆过滤器数组至所述目标对象的终端;
接收所述终端返回的用于指示所述目标对象是否处于所述推荐区域的结果,所述结果基于所述第一布隆过滤器数组和第二布隆过滤器数组确定,所述第二布隆过滤器数组与所述目标对象的位置相对应;
当所述结果用于指示所述目标对象处于所述推荐区域时,将所述媒体共享房间推荐至所述终端。
本申请实施例还提供一种媒体共享房间的推荐装置,包括:
确定模块,用于响应于目标对象的媒体共享房间获取请求,确定待推荐的媒体共享房间所关联的推荐区域;
其中,所述推荐区域与所述媒体共享房间的创建对象间的距离低于距离阈值,所述媒体共享房间,用于供加入所述媒体共享房间的至少一个观看对象,观看所述媒体共享房间所播放的媒体内容;
生成模块,用于生成所述推荐区域的位置对应的第一布隆过滤器数组,并发送所述第一布隆过滤器数组至所述目标对象的终端;
接收模块,用于接收所述终端返回的用于指示所述目标对象是否处于所述推荐区域的结果,所述结果基于所述第一布隆过滤器数组和第二布隆过滤器数组确定,所述第二布隆过滤器数组与所述目标对象的位置相对应;
推荐模块,用于当所述结果用于指示所述目标对象处于所述推荐区域时,将所述媒体共享房间推荐至所述终端。
在上述方案中,所述确定模块,还用于确定预先划分得到的多个候选推荐区域;获取所述媒体共享房间的创建对象的第一位置信息,并获取各所述候选推荐区域的区域位置信息;基于所述第一位置信息和各所述区域位置信息,确定所述创建对象和各所述候选推荐区域之间的距离;将所述距离低于所述距离阈值的候选推荐区域,作为所述媒体共享房间所关联的所述推荐区域。
在上述方案中,所述生成模块,还用于获取所述推荐区域的区域数量,并基于所述区域数量,构建初始布隆过滤器数组;获取用于生成所述第一布隆过滤器数组的至少一个目标函数;基于所述至少一个目标函数,将所述推荐区域的位置映射至所述初始布隆过滤器数组中,得到所述第一布隆过滤器数组。
在上述方案中,所述生成模块,还用于获取所述第一布隆过滤器数组对应的错判分数,所述错判分数,用于指示结合所述第一布隆过滤器数组所确定的所述结果是错误结果的可能程度;基于所述区域数量和所述错判分数,确定所述初始布隆过滤器数组中所包括元素的元素数量;构建包括所述元素数量的元素的数组,作为所述初始布隆过滤器数组。
在上述方案中,所述生成模块,还用于基于所述区域数量和所述元素数量,确定所述目标函数的函数数量;获取用于生成所述第一布隆过滤器数组的、所述函数数量的目标函数。
在上述方案中,当所述推荐区域的区域数量为多个时,所述生成模块,还用于获取各所述推荐区域的推荐优先级,所述推荐优先级,用于指示将所述媒体共享房间推荐至所述推荐区域的对象的优先级;当各所述推荐区域的推荐优先级相同时,基于所述区域数量,构建二进制格式的初始布隆过滤器数组,所述初始布隆过滤器数组中各元素为0;相应的,所述生成模块,还用于针对各所述推荐区域,分别执行如下处理,得到所述第一布隆过滤器数组:基于所述推荐区域的位置,确定各所述目标函数的函数值;其中,所述函数值,用于指示所述推荐区域的位置映射在所述初始布隆过滤器数组中的元素的元素位置;针对各所述函数值,将所述初始布隆过滤器数组中、元素位置为所述函数值的元素置为1,以将所述推荐区域的位置映射至所述初始布隆过滤器数组中。
在上述方案中,当所述推荐区域的区域数量为多个时,所述生成模块,还用于获取各所述推荐区域的推荐优先级,所述推荐优先级,用于指示将所述媒体共享房间推荐至所述推荐区域的对象的优先级;当存在不同的所述推荐优先级、且不同的所述推荐优先级的数量为多个时,构建m进制格式的初始布隆过滤器数组,所述初始布隆过滤器数组中各元素为0,所述m为大于所述推荐优先级的数量的整数;相应的,所述生成模块,还用于针对各所述推荐区域,分别执行如下处理,得到所述第一布隆过滤器数组:基于所述推荐区域的位置,确定各所述目标函数的函数值;其中,所述函数值,用于指示所述推荐区域的位置映射在所述初始布隆过滤器数组中的元素的元素位置;获取所述推荐区域的推荐优先级所对应的目标值,所述目标值为大于0且小于所述m的整数,所述目标值与所述推荐优先级正相关;针对各所述函数值,将所述初始布隆过滤器数组中、元素位置为所述函数值的元素置为所述目标值,以将所述推荐区域的位置映射至所述初始布隆过滤器数组中。
在上述方案中,所述结果通过所述第一布隆过滤器数组和第二布隆过滤器数组相乘得到的乘积数组表征;所述推荐模块,还用于获取所述乘积数组中非0元素的第一数量、以及所述目标函数的第二数量;当所述第一数量等于所述第二数量时,确定所述结果用于指示所述目标对象处于所述推荐区域;当所述第一数量不等于所述第二数量时,确定所述结果用于指示所述目标对象未处于所述推荐区域。
在上述方案中,所述结果通过所述第一布隆过滤器数组和第二布隆过滤器数组相乘得到的乘积数组表征;所述接收模块,还用于获取所述乘积数组中非0元素的第一数量、以及所述目标函数的第二数量;当所述第一数量等于所述第二数量时,确定所述结果用于指示所述目标对象处于所述推荐区域;当所述第一数量不等于所述第二数量时,确定所述结果用于指示所述目标对象未处于所述推荐区域。
在上述方案中,所述接收模块,还用于当所述第一布隆过滤器数组中的目标位置均为非0元素时,接收所述终端返回的用于指示所述目标对象处于所述推荐区域的结果;当所述第一布隆过滤器数组中的目标位置不是均为非0元素时,接收所述终端返回的用于指示所述目标对象未处于所述推荐区域的结果;其中,所述目标位置,为所述第二布隆过滤器数组中非0元素所处的位置。
在上述方案中,所述结果通过所述第一布隆过滤器数组和第二布隆过滤器数组相乘得到的乘积数组表征;所述推荐模块,还用于获取所述乘积数组中非0元素的第一数量、以及所述目标函数的第二数量;当所述第一数量等于所述第二数量时,确定所述非0元素的元素最小值、以及对应所述元素最小值的目标推荐优先级;确定所述目标对象处于所述目标推荐优先级的目标推荐区域;相应的,所述媒体共享房间的待推荐对象的数量为多个,多个所述待推荐对象包括所述目标对象,所述推荐模块,还用于确定第一待推荐对象所处推荐区域的第一推荐优先级,所述第一待推荐对象为多个所述待推荐对象除所述目标对象之外的待推荐对象;当所述目标推荐优先级高于所述第一推荐优先级时,将所述媒体共享房间推荐至所述终端。
在上述方案中,所述生成模块,还用于对所述第一布隆过滤器数组进行同态加密处理,得到加密布隆过滤器数组;发送所述加密布隆过滤器数组至所述目标对象的终端;其中,所述加密布隆过滤器数组,用于供所述终端将所述第二布隆过滤器数组和所述加密布隆过滤器数组进行相乘,并将相乘得到的乘积数组中各元素的元素位置进行随机打乱,得到乱序乘积数组,并对返回所述乱序乘积数组;其中,所述乱序乘积数组,用于指示所述目标对象是否处于所述推荐区域的结果;相应的,所述接收模块,还用于接收所述终端返回的所述乱序乘积数组。
在上述方案中,所述确定模块,还用于响应于目标对象的媒体共享房间获取请求,确定所述目标对象是否存在关联的目标媒体共享房间;当所述目标对象不存在关联的目标媒体共享房间时,确定待推荐的媒体共享房间所关联的推荐区域。
在上述方案中,所述确定模块,还用于在响应于目标对象的媒体共享房间获取请求,确定待推荐的媒体共享房间所关联的推荐区域之前,当检测到所述目标对象触发针对媒体共享房间推荐界面的打开操作时,建立与所述终端之间的通信长连接,并将所述目标对象加入媒体共享房间的待推荐对象列表;相应的,所述确定模块,还用于当检测到所述目标对象触发针对媒体共享房间推荐界面的退出操作时,在目标时长后,断开与所述终端之间的通信长连接。
在上述方案中,所述推荐模块,还用于当针对所述目标对象已发送目标数量的目标布隆过滤器数组,且针对各所述目标布隆过滤器数组均接收到用于指示所述目标对象未处于相应推荐区域的结果时,发送提示信息至所述终端;其中,所述目标布隆过滤器数组与目标媒体共享房间相对应,所述提示信息,用于提示所述目标对象在目标时长后重新发送所述获取请求。
本申请实施例还提供一种电子设备,包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令时,实现本申请实施例提供的媒体共享房间的推荐方法。
本申请实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令被处理器执行时,实现本申请实施例提供的媒体共享房间的推荐方法。
本申请实施例还提供一种计算机程序产品,包括计算机可执行指令,所述计算机可执行指令被处理器执行时,实现本申请实施例提供的媒体共享房间的推荐方法。
本申请实施例具有以下有益效果:
应用本申请上述实施例,当接收到目标对象的媒体共享房间获取请求,确定待推荐的媒体共享房间所关联的推荐区域,然后生成推荐区域的位置对应的第一布隆过滤器数组,并发送第一布隆过滤器数组至目标对象的终端,从而使得目标对象的终端基于第一布隆过滤器数组和第二布隆过滤器数组,确定目标对象处于推荐区域的结果,并返回结果,当接收到用于指示目标对象处于推荐区域的结果时,将媒体共享房间推荐至终端。
这里,推荐区域与媒体共享房间的创建对象间的距离低于距离阈值,在确定目标对象是否处于推荐区域中时,发送给目标对象的终端的是推荐区域的位置对应的第一布隆过滤器数组;而目标对象的终端返回的是目标对象是否处于推荐区域的结果,也无需目标对象提供其真实位置。如此,在媒体共享房间的整个推荐过程中,目标对象无需将自身的真实位置提供给其他方,创建对象的推荐区域的位置也无需提供给目标对象,保证了双方的位置隐私不被泄露,提高了基于位置进行推荐时的位置隐私的安全性。
附图说明
图1是本申请实施例提供的媒体共享房间的推荐系统100的架构示意图;
图2是本申请实施例提供的媒体共享房间的推荐方法的流程示意图;
图3A是本申请实施例提供的媒体共享房间的推荐示意图;
图3B是相关技术中提供的媒体共享房间的推荐示意图;
图3C是相关技术中提供的媒体共享房间的推荐示意图;
图3D是本申请实施例提供的媒体共享房间的推荐示意图;
图4是本申请实施例提供的布隆过滤器数组的生成示意图;
图5是本申请实施例提供的媒体共享房间的推荐示意图;
图6是本申请实施例提供的推荐区域的示意图;
图7是本申请实施例提供的推荐区域的示意图;
图8是本申请实施例提供的空间布隆过滤器数组的生成示意图;
图9是本申请实施例提供的区域划分的示意图;
图10是本申请实施例提供的推荐区域的示意图;
图11A是本申请实施例提供的媒体共享房间的推荐示意图;
图11B是本申请实施例提供的媒体共享房间的推荐示意图;
图12是本申请实施例提供的媒体共享房间的推荐方法的流程示意图;
图13是本申请实施例提供的媒体共享房间的创建示意图;
图14是本申请实施例提供的媒体共享房间的直播设置界面;
图15A是本申请实施例提供的媒体共享房间的推荐系统的架构示意图;
图15B是本申请实施例提供的媒体共享房间的推荐系统的架构示意图;
图16是本申请实施例提供的媒体共享房间的创建流程和解散流程的示意图;
图17是本申请实施例提供的媒体共享房间推荐界面的打开流程示意图;
图18是本申请实施例提供的媒体共享房间推荐界面在打开和退出时的处理流程示意图;
图19是本申请实施例提供的媒体共享房间的推荐显示示意图;
图20是本申请实施例提供的媒体共享房间的推荐流程示意图;
图21是本申请实施例提供的媒体共享房间的推荐流程示意图;
图22是本申请实施例提供的实施媒体共享房间的推荐方法的电子设备500的结构示意图;
图23是本申请实施例提供的媒体共享房间的推荐装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)客户端,终端中运行的用于提供各种服务的应用程序,例如媒体(如视频、音频等)播放客户端等。
2)响应于,用于表示所执行的操作所依赖的条件或状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
3)媒体共享房间(房间),也可称一起看房间。媒体共享房间用于供加入媒体共享房间的多个对象,观看媒体共享房间内所播放的媒体内容(如看视频、听音频)。媒体共享房间内的多个对象包括创建对象(即房主)和观看对象(即房客),创建对象可以控制媒体内容的播放进度、以及切换播放的媒体内容,观看对象可以与创建对象同步观看播放的媒体内容。
在本申请实施例中,媒体共享房间还用于供多个对象中的直播对象在媒体共享房间内进行直播,以供多个对象中的非直播对象观看直播对象的直播内容。如此,能够达到直播对象陪观看对象一起观看媒体内容的效果,因此,该媒体共享房间也可称一起看陪看房间。其中,直播对象也称主播,对应直播对象端(或称主播端、直播端);直播对象可以是媒体共享房间内具有权限的观看对象(如嘉宾、明星、创建对象等)。非直播对象也称观众,对应非直播对象端(或称观看端)。
4)布隆过滤器(BF,Bloom Filter),用于判断一个元素是否存在于一个集合内。在本申请实施例中,基于布隆过滤器判断用户是否在媒体共享房间的推荐区域内。
5)空间布隆过滤器(SBF,Spatial Bloom Filter),是布隆过滤器的一种变体。普通的布隆过滤器只支持单个集合的查询,集合中的元素无法区分优先级。空间布隆过滤器可支持多集合,每个集合中包括同一优先级的元素。
6)同态加密(HE,Homomorphic Encryption),一种加密形式,允许对密文进行特定形式的代数运算。其中,与密文进行代数运算得到的运算结果等同于与明文进行代数运算的运算结果。即,同态加密可以在加密的数据中进行诸如检索、比较等操作,得出正确的结果,而在整个处理过程中无需对数据进行解密。利用同态加密,可以实现对数据的“可用而不可见”。
7)乘法同态加密(MHE,Multiplicative Homomorphic Encryption),支持乘法运算的同态加密。
8)基于位置的服务(LBS,Location Based Service):利用各类型的定位技术来获取定位设备当前的所在位置,通过移动互联网向定位设备提供信息资源和基础服务。
本申请实施例提供一种媒体共享房间的推荐方法、装置、设备、计算机可读存储介质及计算机程序产品,能够提高基于位置进行推荐时的位置隐私的安全性。接下来分别进行说明。
需要说明的是,在本申请实施例中,涉及到用户信息或用户数据等相关的数据,需要经过用户授权同意后再进行获取并处理,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
基于上述对本申请实施例中涉及的名词和术语的解释,下面说明本申请实施例提供的媒体共享房间的推荐系统。参见图1,图1是本申请实施例提供的媒体共享房间的推荐系统100的架构示意图,为实现支撑一个示例性应用,终端400通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线或有线链路实现数据传输。
终端400(可以设置有支持媒体共享房间的客户端),用于响应于目标对象的媒体共享房间获取指令,发送媒体共享房间获取请求至服务器200;
服务器200,用于接收到终端400发送的媒体共享房间获取请求;响应于媒体共享房间获取请求,确定待推荐的媒体共享房间所关联的推荐区域;生成推荐区域的位置对应的第一布隆过滤器数组,并发送第一布隆过滤器数组至目标对象的终端400;其中,该推荐区域与媒体共享房间的创建对象间的距离低于距离阈值,该媒体共享房间,用于供加入媒体共享房间的至少一个观看对象,观看媒体共享房间所播放的媒体内容;
终端400,还用于接收到服务器200发送的第一布隆过滤器数组;生成目标对象的位置对应的第二布隆过滤器数组;基于第一布隆过滤器数组和第二布隆过滤器数组,确定目标对象是否处于推荐区域的结果,并返回结果至服务器200;
服务器200,还用于当接收到用于指示目标对象处于推荐区域的结果时,将媒体共享房间推荐至终端400;
终端400,还用于接收服务器200推荐的媒体共享房间,并显示该媒体共享房间的房间界面,以供目标对象观看媒体共享房间所播放的媒体内容。
在一些实施例中,本申请实施例提供的媒体共享房间的推荐方法可以由各种电子设备实施,例如,可以由终端单独实施,也可以由服务器单独实施,也可以由终端和服务器协同实施。本申请实施例提供的媒体共享房间的推荐方法可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、音视频、辅助驾驶等。
在一些实施例中,本申请实施例提供的实施媒体共享房间的推荐的电子设备可以是各种类型的终端或服务器。其中,服务器(例如服务器200)可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统。终端(例如终端400)可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备(例如智能音箱)、智能家电(例如智能电视)、智能手表、车载终端等,但并不局限于此。终端和服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例对此不做限制。
在一些实施例中,本申请实施例提供的媒体共享房间的推荐方法可以借助于云技术(Cloud Technology)实现。云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算资源和存储资源。作为示例,服务器(例如服务器200)还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,Content Delivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在一些实施例中,多个服务器可组成为一区块链,而服务器为区块链上的节点,区块链中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。其中,本申请实施例提供的媒体共享房间的推荐方法所相关的数据(例如媒体共享房间的相关信息、媒体共享房间所关联的推荐区域等)可保存于区块链上。
在一些实施例中,终端或服务器可以通过运行计算机程序来实现本申请实施例提供的媒体共享房间的推荐方法,举例来说,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
下面说明本申请实施例提供的媒体共享房间的推荐方法。在一些实施例中,本申请实施例提供的媒体共享房间的推荐方法可以由各种电子设备实施,例如,可以由终端单独实施,也可以由服务器单独实施,也可以由终端和服务器协同实施。以服务器单独实施为例,参见图2,图2是本申请实施例提供的媒体共享房间的推荐方法的流程示意图,本申请实施例提供的媒体共享房间的推荐方法包括:
步骤101:服务器响应于目标对象的媒体共享房间获取请求,确定待推荐的媒体共享房间所关联的推荐区域。
其中,该推荐区域与媒体共享房间的创建对象间的距离低于距离阈值,该媒体共享房间,用于供加入媒体共享房间的至少一个观看对象,观看媒体共享房间所播放的媒体内容。
在步骤101中,该服务器可以是提供媒体共享房间的相关服务的服务器。在实际应用中,用户可通过所持终端加入该媒体共享房间,服务器可通过和该终端进行通信来为该终端上的媒体共享房间进行相关服务的支持,使得用户可以观看该媒体共享房间所播放的媒体内容。该终端可以设置有客户端,该客户端可以为支持媒体共享房间的功能的客户端,比如,支持媒体共享房间的功能的视频客户端、支持媒体共享房间的功能的音频客户端、支持媒体共享房间的功能的即时通信客户端等。
在实际应用中,用户(即目标对象)操作所持终端进入媒体共享房间之前,可以向服务器请求以获取待进入的媒体共享房间,即目标对象通过所持终端向服务器发送媒体共享房间获取请求。服务器在接收到目标对象的终端所发送的媒体共享房间获取请求之后,响应于该媒体共享房间获取请求,针对待推荐的至少一个媒体共享房间,确定各待推荐的媒体共享房间所关联的推荐区域,从而基于该目标对象是否处于该推荐区域,以确定是否将该媒体共享房间推荐至该目标对象。这里,该推荐区域与媒体共享房间的创建对象间的距离低于距离阈值。如此,针对用户来说,可以加入用户所处位置附近(距离小于一定阈值)的待推荐的媒体共享房间;针对媒体共享房间的创建对象来说,也可以将创建的媒体共享房间推荐至创建对象所处位置附近(距离小于一定阈值)的用户。
需要说明的是,本申请实施例所提到的用户也即目标对象,可以是客户端当前登录的账号所对应的对象,也可以是客户端当前处于未登录状态时,使用当前客户端的对象。
在一些实施例中,服务器在响应于目标对象的媒体共享房间获取请求,确定待推荐的媒体共享房间所关联的推荐区域之前,还可执行如下处理:当检测到目标对象触发针对媒体共享房间推荐界面的打开操作时,建立与终端之间的通信长连接,并将目标对象加入媒体共享房间的待推荐对象列表;相应的,当服务器检测到目标对象触发针对媒体共享房间推荐界面的退出操作时,在目标时长后,断开与终端之间的通信长连接。
在实际应用中,目标对象可以在媒体共享房间推荐界面来获取媒体共享房间。服务器可以在检测到目标对象触发针对媒体共享房间推荐界面的打开操作时,建立与目标对象的终端之间的通信长连接,并将目标对象加入媒体共享房间的待推荐对象列表,该待推荐对象列表包括多个待进行媒体共享房间推荐的对象。如此,可以在终端获取媒体共享房间时,以最快的速度进行响应,提高用户体验。同时,当服务器检测到目标对象触发针对媒体共享房间推荐界面的退出操作时,服务器则可以断开与终端之间的通信长连接,以减少服务器资源和通信资源的占用。在实际实施时,服务器可以在目标时长(如30秒、1分钟等)后断开与终端之间的通信长连接,以避免目标对象在短时间内再次打开媒体共享房间推荐界面,导致需要再次建立通信长连接,从而能够提高所建立的通信长连接的利用率,避免短时间内针对同一用户进行多次建立。
在一些实施例中,在实际应用中,目标对象可以预先设置关联的目标媒体共享房间,比如目标对象可以对目标媒体共享房间进行关注,从而服务器在接收到媒体共享房间获取请求之后,可以将目标对象关联的目标媒体共享房间推荐至该目标对象的终端。基于此,服务器响应于目标对象的媒体共享房间获取请求,可通过如下方式确定待推荐的媒体共享房间所关联的推荐区域:响应于目标对象的媒体共享房间获取请求,确定目标对象是否存在关联的目标媒体共享房间;当目标对象不存在关联的目标媒体共享房间时,确定待推荐的媒体共享房间所关联的推荐区域。
在一些实施例中,服务器在确定待推荐的媒体共享房间所关联的推荐区域时,可通过如下方式实现:确定预先划分得到的多个候选推荐区域;获取媒体共享房间的创建对象的第一位置信息,并获取各候选推荐区域的区域位置信息;基于第一位置信息和各区域位置信息,确定创建对象和各候选推荐区域之间的距离;将距离低于距离阈值的候选推荐区域,作为媒体共享房间所关联的推荐区域。
在实际应用中,可以按照划分规则对目标区域进行预先划分,得到多个候选推荐区域,该目标区域可以是预先设置的,例如,该目标区域可以是A地区、B省份等。在确定多个候选推荐区域之后,获取媒体共享房间的创建对象的第一位置信息,并获取各候选推荐区域的区域位置信息,需要说明的是,该区域位置信息可以通过候选推荐区域中一个点位(比如该候选推荐区域的中心点位、左上角点位、左下角点位等)的位置信息来表示。然后基于第一位置信息和各区域位置信息,确定创建对象和各候选推荐区域之间的距离,从而将距离低于距离阈值的候选推荐区域,作为媒体共享房间所关联的推荐区域。如此,针对媒体共享房间的创建对象来说,可以将创建的媒体共享房间推荐至创建对象所处位置附近区域(距离低于距离阈值)的用户。
步骤102:生成推荐区域的位置对应的第一布隆过滤器数组,并发送第一布隆过滤器数组至目标对象的终端。
当服务器确定待推荐的媒体共享房间所关联的推荐区域之后,在步骤102中,生成该推荐区域的位置对应的第一布隆过滤器数组,并将第一布隆过滤器数组发送目标对象的终端。以使得,目标对象的终端基于第一布隆过滤器数组和第二布隆过滤器数组(与目标对象的位置相对应),确定目标对象是否处于推荐区域,并返回用于表征目标对象是否处于推荐区域的结果至服务器。
在一些实施例中,服务器可通过如下方式生成推荐区域的位置对应的第一布隆过滤器数组:获取推荐区域的区域数量,并基于区域数量,构建初始布隆过滤器数组;获取用于生成第一布隆过滤器数组的至少一个目标函数;基于至少一个目标函数,将推荐区域的位置映射至初始布隆过滤器数组中,得到第一布隆过滤器数组。
在实际应用中,生成推荐区域的位置对应的布隆过滤器数组实际是:将各个推荐区域的位置映射至一个数组(包括多个元素)中,该数组可以是二进制数组、四进制数组、八进制数组等。具体地,可以根据推荐区域的区域数量,构建一个初始布隆过滤器数组,该初始布隆过滤器数组中每个元素为0;然后获取用于生成第一布隆过滤器数组的至少一个目标函数,该目标函数可以是哈希函数;最后基于该至少一个目标函数,将推荐区域的位置映射至初始布隆过滤器数组中,得到第一布隆过滤器数组。
在一些实施例中,服务器可通过如下方式基于区域数量,构建初始布隆过滤器数组:获取第一布隆过滤器数组对应的错判分数,该错判分数,用于指示结合第一布隆过滤器数组,确定区域判定结果是错误结果的可能程度,该区域判定结果为,判定目标对象是否处于推荐区域所得到的结果;基于区域数量和错判分数,确定初始布隆过滤器数组中所包括元素的元素数量;构建包括元素数量的元素的数组,作为初始布隆过滤器数组。
在实际应用中,当构建初始布隆过滤器数组时,可以获取第一布隆过滤器数组对应的错判分数,该错判分数可以是用户预先设置的,该错判分数用于指示结合第一布隆过滤器数组,确定区域判定结果是错误结果的可能程度,为了使区域判定结果更为精确,该错判分数可以设置的比较低,比如0.01%。然后可以根据该区域数量和错判分数,确定初始布隆过滤器数组中所包括元素的元素数量,从而可以构建包括元素数量的元素的数组,作为初始布隆过滤器数组。
在实际实施时,根据该区域数量和错判分数,可通过如下公式确定初始布隆过滤器数组中所包括元素的元素数量:
其中,n为区域数量,m为元素数量,ε为错判分数。
在一些实施例中,服务器可通过如下方式获取用于生成第一布隆过滤器数组的至少一个目标函数:基于区域数量和元素数量,确定目标函数的函数数量;获取用于生成第一布隆过滤器数组的、函数数量的目标函数。
在实际应用中,目标函数的函数数量也可以是确定的。具体地,该目标函数的函数数量可以是基于区域数量和元素数量,通过如下公式确定的:
其中,k为函数数量,n为区域数量,m为元素数量。
在实际应用中,该目标函数的函数数量还可以是直接基于错判分数,通过如下公式确定的:
其中,k为函数数量,ε为错判分数。
在一些实施例中,当推荐区域的区域数量为多个时,服务器可通过如下方式基于区域数量,构建初始布隆过滤器数组:获取各推荐区域的推荐优先级,该推荐优先级,用于指示将媒体共享房间推荐至推荐区域的对象的优先级;当各推荐区域的推荐优先级相同时,基于区域数量,构建二进制格式的初始布隆过滤器数组,该初始布隆过滤器数组中各元素为0;
相应的,服务器可通过如下方式基于至少一个目标函数,将推荐区域的位置映射至初始布隆过滤器数组中,得到第一布隆过滤器数组:针对各推荐区域,分别执行如下处理,得到第一布隆过滤器数组:基于推荐区域的位置,确定各目标函数的函数值;其中,该函数值,用于指示推荐区域的位置映射在初始布隆过滤器数组中的元素的元素位置;针对各函数值,将初始布隆过滤器数组中、元素位置为函数值的元素置为1,以将推荐区域的位置映射至初始布隆过滤器数组中。
在实际应用中,当推荐区域的区域数量为多个时,可以获取各推荐区域的推荐优先级,该推荐优先级用于指示将媒体共享房间推荐至该推荐区域的对象的优先级。当各推荐区域的推荐优先级相同(即各推荐区域对应同一推荐优先级)时,则构建二进制格式的初始布隆过滤器数组(即数组中元素只能为0或者1),该初始布隆过滤器数组中各元素为0。基于此,当将推荐区域的位置映射至初始布隆过滤器数组中时,每个推荐区域的位置映射在初始布隆过滤器数组中的元素都是相同的(因为各推荐区域对应同一推荐优先级),即每个推荐区域的位置映射在初始布隆过滤器数组中的元素都是1。
继续地,针对各推荐区域,分别执行如下处理,以得到第一布隆过滤器数组:基于推荐区域的位置,确定各目标函数的函数值,具体地,可以采用各个哈希函数分别对推荐区域的位置进行哈希处理,得到相应的函数值。由于函数值用于指示推荐区域的位置映射在初始布隆过滤器数组中的元素的元素位置,因此,针对各个函数值,将初始布隆过滤器数组中、元素位置为函数值的元素置为1,以将推荐区域的位置映射至初始布隆过滤器数组中。
在一些实施例中,当推荐区域的区域数量为多个时,服务器可通过如下方式基于区域数量,构建初始布隆过滤器数组:获取各推荐区域的推荐优先级,该推荐优先级,用于指示将媒体共享房间推荐至推荐区域的对象的优先级;当存在不同的推荐优先级、且不同的推荐优先级的数量为多个时,构建m进制格式的初始布隆过滤器数组,该初始布隆过滤器数组中各元素为0,该m为大于推荐优先级的数量的整数;
相应的,服务器可通过如下方式基于至少一个目标函数,将推荐区域的位置映射至初始布隆过滤器数组中,得到第一布隆过滤器数组:针对各推荐区域,分别执行如下处理,得到第一布隆过滤器数组:基于推荐区域的位置,确定各目标函数的函数值;其中,该函数值,用于指示推荐区域的位置映射在初始布隆过滤器数组中的元素的元素位置;获取推荐区域的推荐优先级所对应的目标值,该目标值为大于0且小于m的整数,该目标值与推荐优先级正相关;针对各函数值,将初始布隆过滤器数组中、元素位置为函数值的元素置为目标值,以将推荐区域的位置映射至初始布隆过滤器数组中。
在实际应用中,当推荐区域的区域数量为多个时,可以获取各推荐区域的推荐优先级,该推荐优先级用于指示将媒体共享房间推荐至该推荐区域的对象的优先级。当存在不同的推荐优先级、且不同的推荐优先级的数量为多个时,则构建m进制格式的初始布隆过滤器数组,该m为大于推荐优先级的数量的整数。即,可以使得初始布隆过滤器数组中的元素的元素值为归属于[0,m)的整数,如此,则可以将不同推荐优先级的推荐区域的位置映射在初始布隆过滤器数组中的元素置为不同的元素值,以通过不同的元素值来表征该推荐区域对应不同的推荐优先级。
继续地,针对各推荐区域,分别执行如下处理,以得到第一布隆过滤器数组:基于推荐区域的位置,确定各目标函数的函数值,具体地,可以采用各个哈希函数分别对推荐区域的位置进行哈希处理,得到相应的函数值。由于函数值用于指示推荐区域的位置映射在初始布隆过滤器数组中的元素的元素位置,因此,针对各函数值,将初始布隆过滤器数组中、元素位置为函数值的元素,置为该推荐区域的推荐优先级所对应的目标值,以将推荐区域的位置映射至初始布隆过滤器数组中。具体地,该目标值与推荐区域的推荐优先级相对应,该目标值为归属于(0,m)的整数,该目标值与推荐优先级正相关。
作为示例,推荐优先级的数量为3个,推荐优先级从高到低为3级、2级和1级,那么该m则可以为大于3的整数,比如4、8、10等,即该初始布隆过滤器数组可以是4进制数组、8进制数组、10进制数组等。以该初始布隆过滤器数组为8进制数组为例,该初始布隆过滤器数组中的元素的元素值可以为[0,7],相应的,目标值为归属于(0,7]的整数。例如,推荐优先级“3级、2级和1级”分别对应的目标值可以为“3、2和1”,即,在将各推荐区域的位置映射至初始布隆过滤器数组中时,可以根据各推荐区域的推荐优先级,将各推荐区域的位置映射在初始布隆过滤器数组中的元素分别置为“3、2和1”。如此,当推荐区域的位置映射在初始布隆过滤器数组中的元素为3时,该推荐区域的推荐优先级则为3级。
步骤103:接收终端返回的用于指示目标对象是否处于推荐区域的结果,该结果基于第一布隆过滤器数组和第二布隆过滤器数组确定,该第二布隆过滤器数组与目标对象的位置相对应。
在步骤103中,该结果用于指示目标对象是否处于推荐区域。需要说明的是,该目标对象的位置实际为目标对象所处目标区域的位置。该目标区域和推荐区域是针对目标区域基于相同划分策略划分得到的。
步骤104:当结果用于指示目标对象处于推荐区域时,将媒体共享房间推荐至终端。
在步骤104中,服务器在接收到终端返回的结果之后,根据结果,确定是否将媒体共享房间推荐至目标对象的终端。具体地,当接收到用于指示目标对象处于推荐区域的结果时,则将媒体共享房间推荐至目标对象的终端;当接收到用于指示目标对象未处于推荐区域的结果时,则不将媒体共享房间推荐至目标对象的终端。下面对上述步骤103-步骤104进行详细说明。
在步骤103中,终端接收到服务器发送的第一布隆过滤器数组,同时,还生成目标对象的位置对应的第二布隆过滤器数组。在实际应用中,第二布隆过滤器数组和第一布隆过滤器数组的生成方式可以是相同的。该第二布隆过滤器数组生成时所需的参数和第一布隆过滤器生成时所需的参数是相同的,即第二布隆过滤器和第一布隆过滤器对应同样的参数,该参数包括:目标函数的函数数量k、元素数量m、错判分数ε。在实际实施时,该参数可以是终端和服务器预先约定好的,也可以是服务器在发送第一布隆过滤器时发送给终端的。
具体地,在生成目标对象的位置对应的第二布隆过滤器数组时,可以首先构建包括元素数量m的元素的数组,作为初始布隆过滤器数组,该初始布隆过滤器数组中各元素为0;然后基于函数数量k个目标函数,将目标对象的位置映射至初始布隆过滤器数组中,以得到第二布隆过滤器数组。由于目标对象的位置只能是一个,因此该初始布隆过滤器数组为二进制数组即可。将目标对象的位置映射至初始布隆过滤器数组中时,可以基于目标对象的位置,确定各目标函数的函数值,具体地,可以采用各个哈希函数分别对目标对象的位置进行哈希处理,得到相应的函数值。由于函数值用于指示目标对象的位置映射在初始布隆过滤器数组中的元素的元素位置,因此,针对各个函数值,将初始布隆过滤器数组中、元素位置为函数值的元素置为1,以将目标对象的位置映射至初始布隆过滤器数组中。
在步骤103中,终端得到第二布隆过滤器数组之后,基于第一布隆过滤器数组和第二布隆过滤器数组,确定目标对象是否处于推荐区域,得到相应的结果,并返回该结果至服务器。
在一些实施例中,目标终端在接收到服务器发送的第一布隆过滤器数组之后,可通过如下方式基于第一布隆过滤器数组和第二布隆过滤器数组,确定目标对象是否处于推荐区域的结果,并返回结果至服务器:确定第二布隆过滤器数组中非0元素所处的位置为目标位置;针对第一布隆过滤器数组,确定该第一布隆过滤器数组中的目标位置是否均为非0元素;当确定第一布隆过滤器数组中的目标位置均为非0元素时,确定目标对象处于推荐区域,此时返回目标对象处于推荐区域的结果至服务器;当确定第一布隆过滤器数组中的目标位置不是均为非0元素时,确定目标对象未处于推荐区域,此时返回目标对象未处于推荐区域的结果至服务器。
如此,服务器在发送第一布隆过滤器数组至目标对象的终端之后,接收到终端返回的结果;其中,该终端用于,当确定第一布隆过滤器数组中的目标位置均为非0元素时,返回目标对象处于推荐区域的结果;当确定第一布隆过滤器数组中的目标位置不是均为非0元素时,返回目标对象未处于推荐区域的结果;其中,该目标位置,为第二布隆过滤器数组中非0元素所处的位置。服务器在接收到终端返回的结果之后,根据结果,确定是否将媒体共享房间推荐至目标对象的终端。
在一些实施例中,目标终端在接收到服务器发送的第一布隆过滤器数组之后,可通过如下方式基于第一布隆过滤器数组和第二布隆过滤器数组,确定目标对象是否处于推荐区域的结果,并返回结果至服务器:将第一布隆过滤器数组和第二布隆过滤器数组进行相乘,得到乘积数组;通过该乘积数组表征目标对象是否处于推荐区域的结果,并将该乘积数组作为结果返回至服务器。如此,服务器在发送第一布隆过滤器数组至目标对象的终端之后,还接收到终端返回的结果,该结果通过第一布隆过滤器数组和第二布隆过滤器数组相乘得到的乘积数组表征;相应的,服务器可通过如下方式确定该乘积数组所表征的结果(即确定乘积数组表征目标对象处于推荐区域,还是乘积数组表征目标对象不处于推荐区域):获取乘积数组中非0元素的第一数量、以及目标函数的第二数量;当第一数量等于第二数量时,确定结果用于指示目标对象处于推荐区域;当第一数量不等于第二数量时,确定结果用于指示目标对象未处于推荐区域。
在一些实施例中,目标终端在接收到服务器发送的第一布隆过滤器数组之后,可通过如下方式基于第一布隆过滤器数组和第二布隆过滤器数组,确定目标对象是否处于推荐区域的结果,并返回结果至服务器:将第一布隆过滤器数组和第二布隆过滤器数组进行相乘,得到乘积数组;通过该乘积数组表征目标对象是否处于推荐区域的结果,并将该乘积数组作为结果返回至服务器。如此,服务器在发送第一布隆过滤器数组至目标对象的终端之后,还接收到终端返回的结果,该结果通过第一布隆过滤器数组和第二布隆过滤器数组相乘得到的乘积数组表征;相应的,服务器可通过如下方式确定该乘积数组所指示的结果(即确定乘积数组指示目标对象处于推荐区域,还是乘积数组指示目标对象不处于推荐区域):获取乘积数组中非0元素的第一数量、以及目标函数的第二数量;当第一数量不等于第二数量时,确定结果用于指示目标对象未处于推荐区域;当第一数量等于第二数量时,确定结果用于指示目标对象处于推荐区域。
同时,若乘积数组中的非0元素不是均为1,则确定非0元素的元素最小值、以及对应元素最小值的目标推荐优先级,从而进一步确定目标对象处于目标推荐优先级的目标推荐区域;相应的,当媒体共享房间的待推荐对象的数量为多个,且多个待推荐对象包括目标对象时,服务器可通过如下方式将媒体共享房间推荐至终端:确定第一待推荐对象所处推荐区域的第一推荐优先级,该第一待推荐对象为多个待推荐对象除目标对象之外的待推荐对象;当目标推荐优先级高于第一推荐优先级时,将媒体共享房间推荐至终端。如此,能够实现按照不同推荐优先级,将媒体共享房间推荐至相应的推荐区域。
在一些实施例中,服务器在发送第一布隆过滤器数组至目标对象的终端时,还可对第一布隆过滤器数组进行同态加密处理,得到加密布隆过滤器数组;发送加密布隆过滤器数组至目标对象的终端;其中,该加密布隆过滤器数组,用于供终端将第二布隆过滤器数组和加密布隆过滤器数组进行相乘,并将相乘得到的乘积数组中各元素的元素位置进行随机打乱,得到乱序乘积数组,并返回乱序乘积数组;其中,该乱序乘积数组,用于指示目标对象是否处于推荐区域的结果;相应的,服务器发送加密布隆过滤器数组至目标对象的终端之后,还接收终端返回的乱序乘积数组。
在实际应用中,服务器在发送第一布隆过滤器数组至目标对象的终端时,还可以对第一布隆过滤器数组进行同态加密处理,以保证第一布隆过滤器数组的数据安全,避免不法人员根据第一布隆过滤器数组反推出创建对象附近的推荐区域,从而暴露创建对象的位置。如此,服务器将经过同态加密得到的加密布隆过滤器数组发送至目标对象的终端。相应的,该终端在接收到加密布隆过滤器数组之后,可以将第二布隆过滤器数组和加密布隆过滤器数组进行相乘,得到乘积数组,然后将乘积数组中各元素的元素位置进行随机打乱,得到乱序乘积数组,并返回乱序乘积数组至服务器,该乱序乘积数组用于指示目标对象是否处于推荐区域的结果。
继续地,服务器接收终端返回的乱序乘积数组,从而基于该乱序乘积数组,确定乱序乘积数组所表征的结果(即确定乱序乘积数组表征目标对象处于推荐区域,还是乘积数组表征目标对象不处于推荐区域):获取乱序乘积数组中非0元素的第一数量、以及目标函数的第二数量;当第一数量等于第二数量时,确定结果用于指示目标对象处于推荐区域;当第一数量不等于第二数量时,确定结果用于指示目标对象未处于推荐区域。
在实际实施时,服务器可以生成用于同态加密的公钥和私钥,然后将公钥同步给终端。服务器可通过公钥对第一布隆过滤器数组进行同态加密处理,得到加密布隆过滤器数组。终端也可以通过公钥计算加密布隆过滤器数组和第二布隆过滤器数组的乘积数组。
在实际应用中,当服务器针对目标对象已发送目标数量的目标布隆过滤器数组,且针对各目标布隆过滤器数组均接收到用于指示目标对象未处于相应推荐区域的结果时,发送提示信息至终端;其中,该目标布隆过滤器数组与目标媒体共享房间相对应,该提示信息,用于提示目标对象在目标时长后重新发送获取请求。如此,当服务器在尝试将目标数量的媒体共享房间的布隆过滤器发送至终端,且并未接收到用于指示目标对象处于相应推荐区域的结果时,则表征该目标对象附近(与目标对象的距离低于一定阈值)暂无合适的媒体共享房间,此时则可以暂时放弃针对该目标对象的媒体共享房间的推荐,并返回相应的提示信息至目标对象的终端,从而提示目标对象可以在目标时长(比如10分钟)后再次重试,即在目标时长后重新发送获取请求。
应用本申请上述实施例,当接收到目标对象的媒体共享房间获取请求,确定待推荐的媒体共享房间所关联的推荐区域,然后生成推荐区域的位置对应的第一布隆过滤器数组,并发送第一布隆过滤器数组至目标对象的终端,从而使得目标对象的终端基于第一布隆过滤器数组和第二布隆过滤器数组,确定目标对象处于推荐区域的结果,并返回结果,当接收到用于指示目标对象处于推荐区域的结果时,将媒体共享房间推荐至终端。
这里,推荐区域与媒体共享房间的创建对象间的距离低于距离阈值,在确定目标对象是否处于推荐区域中时,发送给目标对象的终端的是推荐区域的位置对应的第一布隆过滤器数组;而目标对象的终端返回的是目标对象是否处于推荐区域的结果,也无需目标对象提供其真实位置。如此,在媒体共享房间的整个推荐过程中,目标对象无需将自身的真实位置提供给其他方,创建对象的推荐区域的位置也无需提供给目标对象,保证了双方的位置隐私不被泄露,提高了基于位置进行推荐时的位置隐私的安全性。
下面将说明本申请实施例在一个实际的应用场景中的示例性应用。随着基于位置的服务LBS的广泛应用,位置隐私保护的问题受到多方关注。越来越多的LBS的应用场景(如导航应用)会收集用户的真实位置,来为用户提供高质量的基于位置的服务。将媒体共享房间推荐至附近的人(即处于与媒体共享房间的创建对象间距离低于距离阈值的推荐区域的用户)也是LBS的一种应用场景。相关技术中通常采用如下方式实现:
1)直接坐标计算:需要各待推荐用户和创建对象把真实位置发送给服务器,服务器根据真实位置,计算各待推荐用户和创建对象间的真实距离,从而根据真实距离来将媒体共享房间推荐至附近的人。2)Geohash算法+直接坐标计算:Geohash算法是把地球上的所有区域分成24块,每一块用一个字符表示,划分出的来块还可以继续划分为24个子块,划分的次数越多,所得的字符串越长,精度也越高。Geohash算法有个性质是两坐标距离越近,哈希值的前缀就重合的越多,利用这个性质,可以各待推荐用户和创建对象的真实位置,确定创建对象附近的待推荐用户,以将媒体共享房间推荐至附近的用户。相关技术中的方案1)和方案2)虽然能够实现LBS,但是均没有保护用户位置隐私,服务器能直接获取用户的真实位置,存在用户位置隐私泄露的隐患。
为了解决相关技术中存在的问题,本申请实施例提供了如下方案,以在基于LBS的媒体共享房间的推荐场景中保护用户位置隐私:1)基于隐藏用户标识的方案。其中,a)k-匿名模型:使某个位置的用户至少有k个,这k个用户之间不能通过ID来相互识别。如此即使某个用户的位置被恶意攻击者获取,恶意攻击者或服务器其也不能准确从k个用户中定位到具体用户。b)假名:每个用户使用一个假名来隐藏真实ID,如此恶意攻击者或服务器虽然可能得到用户的真实位置,但不能将真实位置与用户的标识信息联系起来,增加了定位某个具体用户的难度,保护了用户位置隐私。2)基于模糊位置信息的方案。其中,a)错误或假的位置信息:用户可以发送多个不同的位置给服务器,这些位置中只有一个是该用户的真实位置,其他的都是错误的或假的位置。如此服务器或恶意攻击者则不能根据这些位置定位该用户。b)路标对象:用户发送给服务器的不是自身的真实位置,而是某个路标或者某个重要对象的位置。c)区域化位置信息:将用户的真实位置用一个包含该用户的真实位置的空间区域来替代。
但是,上述位置隐私保护方案中还是存在如下问题:1)基于隐藏用户标识的方案:仍无法阻止服务器对用户真实位置的窥探,即用户位置对于服务器来说还是透明的。2)基于模糊位置信息的方案:a)在错误或假的位置信息方案中,用户同时提供了多个位置信息给服务器端,增加了服务器的空间开销和服务请求的处理时间,加大了服务器设计和处理的难度,同时也要求客户端具有判断服务信息准确性的能力。b)在路标对象方案中,客户端需要从服务器返回的信息中判断哪些信息才是真正感兴趣的,增加了客户端的负载,降低了服务质量。c)在区域化位置信息方案中,服务器在只能使用位置区域的情况下,服务质量会大大下降;且,由于服务器并不知道用户在该区域中的哪个位置,服务器必须选取该区域中的一些位置点作为参考点进行处理,选取参考点的数量和提供给用户的信息的准确度相关,增加了服务器的负载和响应时长。
由此可知,上述方案存在不能有效保护用户位置隐私、实现难度大、服务器或客户端负载重、服务质量低等问题。而在本申请实施例提供的媒体共享房间的推荐服务中,需要将创建对象创建的媒体共享房间推荐至附近的用户,以让其他用户参与到媒体共享房间中,达到宣传、推广和提高用户参与度的目的。因此,在保护用户位置隐私的前提下,给用户提供高质量的、基于LBS的媒体共享房间的推荐服务是亟需解决的问题。基于此,本申请实施例提供一种媒体共享房间的推荐方法,以至少解决上述存在的问题。
在本申请实施例中,保护位置隐私包括两方面:(1)用户真实位置不能被第三方攻击者获取;(2)用户真实位置不能被服务器获取。具体地,1)利用布隆过滤器或者空间布隆过滤器建模地理位置信息,模糊化用户位置信息;2)使用同态加密通讯,确保用户位置隐私数据对恶意攻击者的“不可见和不可用”,以及对服务器的“可用而不可见”,从而保证用户位置隐私不向服务器和恶意攻击者泄露,保证用户位置信息在采集、传输和使用过程中全链路的隐私安全;3)服务器后台异步处理媒体共享房间的推荐过程,均摊客户端计算负载。
接下来从技术侧对本申请实施例提供的媒体共享房间的推荐方法进行详细说明。参见图3A,图3A是本申请实施例提供的媒体共享房间的推荐示意图,这里,本申请实施例是将创建对象所创建的媒体共享房间推荐至附近的用户,以使该用户加入媒体共享房间。需要说明的是,本申请实施例中“附近的用户”指的是处于媒体共享房间关联的推荐区域的用户(即图3A中所示的处于虚线圆圈内的用户),该推荐区域和媒体共享房间的创建对象之间的距离低于距离阈值。其中,服务器在进行媒体共享房间的推荐时,需要确定用户是否处于推荐区域内的结果,从而根据结果进行媒体共享房间的推荐:当该结果表征用户处于推荐区域内时,则将媒体共享房间推荐至该用户,当该结果表征用户未处于推荐区域内时,则不将媒体共享房间推荐至该用户。
接下来说明如何确定用户是否处于推荐区域内。参见图3B,图3B是相关技术中提供的媒体共享房间的推荐示意图。这里,服务器通过获取用户的真实位置来判断该用户是否在推荐区域内,从而根据判断结果进行媒体共享房间的推荐。但是用户真实位置存在泄露的可能。再参见图3C,图3C是相关技术中提供的媒体共享房间的推荐示意图。这里,服务器询问用户是否在推荐区域,由终端根据自身真实位置来判断是否在服务器询问的推荐区域内,然后将判断结果返回服务器,使得服务器根据接收的判断结果进行媒体共享房间的推荐。但是可能会暴露服务器的感兴趣区域,即,用户或者恶意攻击者可以利用服务器给出的推荐区域,推导出媒体共享房间的创建对象的真实位置,使得创建对象的位置隐私存在泄露的隐患。基于此,本申请实施例提供如下方式确定用户是否处于推荐区域,接下来进行详细说明。
参见图3D,图3D是本申请实施例提供的媒体共享房间的推荐示意图。这里,服务器虽然还要询问终端是否在推荐区域内,但是在询问时无需告诉终端该推荐区域的真实区域位置,即:以一种不泄露推荐区域的真实区域位置并且安全的方式进行询问。从而让用户或攻击者无法得知服务器的感兴趣区域,也就无法得知创建对象的真实位置。如此,则能够同时保护用户位置隐私和创建对象位置隐私。在实际应用中,图3D所示的确定用户是否处于推荐区域的方式可通过布隆过滤器或者空间布隆过滤器实现。接下来分别进行说明。
第一,布隆过滤器。基于随机映射函数(如哈希函数),将一个目标元素(如推荐区域的位置)映射至布隆过滤器中,得到的一个二进制数组,即布隆过滤器数组。需要说明的是,当媒体共享房间的推荐区域的区域数量为多个时,布隆过滤器适用于各推荐区域的推荐优先级均为同一优先级的情况。
(1)布隆过滤器的原理是,当一个目标元素被加入集合时,通过k个散列函数将目标元素映射成一个二进制数组中的k个位置,并把二进制数组中该k个位置的值置为1,得到布隆过滤器数组。在检索目标元素是否处于集合中时,首先使用k个散列函数得到k个位置,然后确定布隆过滤器数组该k个位置是否均为1。如果不是,则目标元素一定不在该集合,如果是,则目标元素很可能在该集合。(2)布隆过滤器的参数包括:1)k:哈希函数的函数数量;2)m:布隆过滤器数组中元素(即0和1)的数量,即布隆过滤器的二进制向量大小;3)n:需要存储进布隆过滤器的目标元素的数量,即上述推荐区域的区域数量;4)p:错判率,即不在集合中被误判为在集合中的概率,即上述错判分数。
参见图4,图4是本申请实施例提供的布隆过滤器数组的生成示意图。这里,在集合中加入目标元素时,通过2个哈希函数H1和H2分别为该元素计算2个位置,并把初始布隆过滤器数组中该2个位置的值置为1,得到布隆过滤器数组。在检索待检索元素是否处于集合中时,同样利用这2个哈希函数给目标元素计算2个位置,并检查布隆过滤器数组中这2个位置是否全为1。如果全为1,则目标元素可能存在于集合中;否则,目标元素一定不存在于集合中,如图4所示可知,并不是全为1,那么待检索元素不存在于集合中。
布隆过滤器的位置映射是基于单向散列函数,单向散列函数不可逆,因此就算已知所有构建布隆过滤器的参数,还是无法从一个已构建的布隆过滤器反推算出里面的元素。如此,如果将推荐区域的位置或者用户位置存储进布隆过滤器中,则无法反推出推荐区域的位置或者用户位置,但是却可以根据布隆过滤器确定用户位置是否处于推荐区域内。具体地,参见图5,图5是本申请实施例提供的媒体共享房间的推荐示意图。这里,服务器需要向终端确认用户是否处于推荐区域{A,B,C}中,因此,将推荐区域{A,B,C}的位置映射至布隆过滤中,得到推荐区域的位置对应的第一布隆过滤器数组,并将第一布隆过滤器数组发送至终端;终端根据自身的位置生成第二布隆过滤器数组,从而根据第一布隆过滤器数组和第二布隆过滤器数组,确定自己是否处于推荐区域中的结果,并将结果返回至服务器,服务器则可以根据结果进行媒体共享房间的推荐。具体地,终端确定第二布隆过滤器数组中值为1的目标位置,并确定第一布隆过滤器数组中目标位置是否全部为1,若是,则得到终端处于推荐区域中的结果,若否,则得到终端未处于推荐区域中的结果。如图5所示,第一布隆过滤器数组中目标位置并未全部为1,因此用户并未处于推荐区域{A,B,C}中。这个过程中,终端无需知晓推荐区域的位置,服务端也无需知晓终端的位置,保护了双方的位置隐私。
第二,空间布隆过滤器。参见图6,图6是本申请实施例提供的推荐区域的示意图。这里,媒体共享房间关联的推荐区域包括A、B、C。而如果服务器想要增加一个推荐区域D,而推荐区域D离创建对象的真实位置更远,推荐优先级应该低于推荐区域A/B/C。而上述布隆过滤器中的集合元素是没有优先级的,无法区分出D与A/B/C的不同。因此,本申请实施例还提供一个支持不同优先级的多集合的布隆过滤器—空间布隆过滤器。需要说明的是,当媒体共享房间的推荐区域的区域数量为多个时,空间布隆过滤器适用于多个推荐区域对应不同的推荐优先级不同、且不同的推荐优先级的数量为多个的情况。
空间布隆过滤器和布隆过滤器不同。其中,布隆过滤器中每个位置由1位表示,因此每个位置的值只能是0或1;而空间布隆过滤器每个位置可以有多位表示,比如由3位表示,则每个位置的值可以是[0,7]。所以,使用这一特性来拓展每个位置表示的位数,就可能表示不同优先级的区域。接下来说明空间布隆过滤器数组的生成过程。
参见图7,图7是本申请实施例提供的推荐区域的示意图。这里,a)c点为创建对象的真实位置,r为创建对象想要推荐给附近的人的范围,比如2km。以c为圆心,r为半径画圆,这个圆会覆盖很多候选区域,将该圆覆盖的候选区域作为该创建对象的媒体共享房间关联的推荐区域。b)把c点所在的推荐区域与创建对象的距离设为0,计算各个推荐区域与c的曼哈顿距离。c)根据曼哈顿距离对推荐区域进行推荐优先级的划分,划分推荐优先级的策略可以自定义,如图7所示,距离为1和2的推荐区域的推荐优先级相同,距离为3和4的推荐区域的推荐优先级相同。推荐优先级从高到低、从内到外,将多个推荐区域划分为三个推荐优先级的推荐区域:[Δ3,Δ2,Δ1],各推荐优先级对应的值分别是[3,2,1]。
参见图8,图8是本申请实施例提供的空间布隆过滤器数组的生成示意图。这里,在生成推荐区域对应的空间布隆过滤器数组时,针对推荐优先级为1的推荐区域Δ1,在将Δ1映射至空间布隆过滤器中时,将Δ1映射在空间布隆过滤器数组的相应位置置为1;针对推荐优先级为2的推荐区域Δ2,在将Δ2映射至空间布隆过滤器中时,将Δ2映射在空间布隆过滤器数组的相应位置置为2;针对推荐优先级为3的推荐区域Δ3,在将Δ3映射至空间布隆过滤器中时,将Δ3映射在空间布隆过滤器数组的相应位置置为3。如此,使用空间布隆过滤器,能够划分推荐区域的推荐优先级,从而能够为不同推荐优先级的推荐区域的用户,设置不同的推荐策略。
第三,对区域划分进行说明。在本申请实施例中,地图建模需要两个参数{经度,维度}。参见图9,图9是本申请实施例提供的区域划分的示意图。这里,整个地球可以抽象成一个二维平面,经度范围[-180,180],纬度范围[-90,90],然后可以按照的预设精度(如0.001)进行划分,把地球平面划分为多个区域,如图9中的区域A。在划分得到多个区域之后,每个实际坐标{经度,维度}就可以落到一个区域里面。需要说明的是,因为会有坐标落到区域的边界上,所以在本申请实施例中,针对边界情况做一个区域归属,即:定义落在区域左边界和下边界的坐标,也属于这个区域。如图9所示,区域A定义为{[134.998,134.999),[37.355,37.356)},区域A可以简化为“134.998,37.355”,这个值即表示该区域的区域位置。
在划分得到多个区域之后,就可以根据创建对象的位置,从多个区域中确定媒体共享房间关联的推荐区域,每个推荐区域通过该推荐区域的区域位置表示。参见图10,图10是本申请实施例提供的推荐区域的示意图。这里,如图10中(1)所示,三角形表示创建对象的位置,{A,B,C}表示媒体共享房间的推荐区域,五角星表示待推荐用户。如图10中(2)所示,在生成布隆过滤器数组时,可以基于两个哈希函数,将推荐区域{A,B,C}的位置,分别映射至布隆过滤器中,将推荐区域的位置映射在布隆过滤器的初始布隆过滤器数组中的位置置为1,得到推荐区域的位置对应的布隆过滤器数组。
第四,对同态加密进行说明。应用布隆过滤器或者空间布隆过滤器,能把推荐区域的区域位置合理、简化的表示出来,同时区分不同推荐区域的推荐优先级。为了进一步保证位置隐私,在传输布隆过滤器数组(如推荐区域的位置对应的第一布隆过滤器数组)的过程中,对布隆过滤器数组进行加密。在本申请实施例中,可以采用同态加密的方式实现。同态加密不仅让第三方攻击者对加密内容不可见,也让使用方对加密内容不可见,但是对于使用方来说加密内容是可用的,即做到数据的“可用而不可见”。
同态加密允许直接对加密数据执行计算,如加法和乘法,而计算过程不会泄露原文的任何信息。根据支持的计算类型和支持程度,同态加密可以分为以下三种类型:1)半同态加密(PHE,Partially Homomorphic Encryption):只支持加法或乘法中的一种运算。其中,只支持加法运算的又叫加法同态加密(AHE,Additive Homomorphic Encryption);只支持乘法运算的又叫乘法同态加密(MHE,Multiplicative Homomorphic Encryption)。2)部分同态加密(SWHE,Somewhat Homomorphic Encryption,):可同时支持加法和乘法运算,但支持的计算次数有限;3)全同态加密(FHE,Fully Homomorphic Encryption):支持任意次的加法和乘法运算。
在本申请实施例中,可以采用乘法同态加密实现。乘法同态加密需满足Dec(Enc(p1)⊙p2)=p1*p2。其中,Dec()为解密,Enc()为加密,p1和p2表示明文,⊙表示某种运算。也就是说,一个明文的密文与另一个明文执行某个运算后,解密的结果是这两个明文的乘积。假设通讯双方为媒体共享房间的服务器和待推荐的终端。其中,X对应服务器的SBF,Y对应终端的BF(用户所在区域只有一个,可以把SBF简化为BF);乘法同态加解密过程如下:
1)服务器生成乘法同态加解密时所需的公私钥对(Pubkey,Prikey),并把公钥Pubkey发送给终端。2)服务器使用公钥Pubkey对X进行同态加密,向终端发送加密的SBF,即E=(Enc(X))。3)终端利用公钥Pubkey,计算C=(Enc(X)⊙Y),将C发送给服务器。4)服务器接收D=Dec(C)=X*Y。如此,对于终端来说,并不知道原始的X是什么,因为已经加密;对于服务器来说,也不知道原始的Y是什么,但是通过解密能知道X和Y的乘积。
基于上述布隆过滤器或者空间布隆过滤器、以及同态加密的说明,下面说明本申请实施例提供的媒体共享房间的推荐方法的流程。参见图11A和图11B,图11A-11B是本申请实施例提供的媒体共享房间的推荐示意图。这里,如图11A所示,五角星代表用户,处于推荐区域B,推荐区域包括A、B、C和D。其中,D的推荐优先级低于A、B和C。D的推荐优先级为1级,推荐区域D映射在第一布隆过滤器数组中相应位置的值置为1,A、B和C的推荐优先级为2级,推荐区域A、B和C映射在第一布隆过滤器数组中相应位置的值置为2。如图11B所示,本申请实施例提供的媒体共享房间的推荐方法,包括:
1)服务器基于媒体共享房间关联的推荐区域的位置,生成相应的第一布隆过滤器数组。这里,服务器在检测到用户打开媒体共享房间推荐界面之后,提示用户开启定位(需要说明的是,开启定位后所得到定位信息仅在用户的终端上利用,不会传输和存储到服务器);当用户开启定位后,建立与用户的终端的通信长连接;此时,当接收到终端发送的媒体共享房间获取请求时,则确定待推荐的媒体共享房间关联的推荐区域,并基于推荐区域的区域位置,基于k个哈希函数,生成相应的第一布隆过滤器数组。
2)服务器生成用于乘法同态加解密的公私钥对,并将公钥同步至终端;同时,采用公钥对第一布隆过滤器数组进行加密,得到加密布隆过滤器数组,并加密布隆过滤器数组发送至终端。同时,还可以把第一布隆过滤器数组的构建参数一起发送给终端。该构建参数可以包括:哈希函数的数量、哈希函数、第一布隆过滤器数组中元素的元素数量等。
3)终端根据自己的真实位置和构建参数,生成第二布隆过滤器数组。需要说明的是,对于终端来说只有一个区域,此时可以将SBF简化为BF,即将终端位置映射在第二布隆过滤器数组中相应位置的值置为1。
4)用户端通过公钥对第二布隆过滤器数组和加密布隆过滤器数组进行同态乘积运算,得到乘积数组,并将乘积数组中各元素的位置随机打乱,以防止服务器反推出客户端所在区域,得到乱序乘积数组。然后将乱序乘积数组发送至服务器。
5)服务器接收乱序乘积数组。
6)服务器根据乱序乘积数组,判断终端是否处于推荐区域、以及处于哪个推荐区域。具体地,获取乱序乘积数组中非0元素的数量,并判断非0元素的数量和构建参数中哈希函数的数量的大小关系;如果非0元素的数量小于哈希函数的数量,则确定终端未处于推荐区域内;如果非0元素的数量等于哈希函数的数量,则确定终端处于推荐区域内,此时,还可以确定非0元素的元素最小值,该元素最小值对应的推荐优先级,即为用户所处推荐区域的推荐优先级。结合图11B所示,服务器可知终端处于推荐区域A、B和C。
如此,如果用户不在媒体共享房间关联的推荐区域中,则服务器不能得到用户的任何信息。如果在媒体共享房间关联的推荐区域中,服务器也只能知道用户所在的推荐区域所归属的区域集合,无法知道用户所处区域的区域信息和精确位置。而用户也无法得知媒体共享房间关联的推荐区域,也就无法推导创建对象所在的区域。从而保护了双方各自的位置隐私。
接下来继续对本申请实施例提供的媒体共享房间的推荐方法进行说明。参见图12,图12是本申请实施例提供的媒体共享房间的推荐方法的流程示意图,包括:1.创建房间:房主端触发媒体共享房间的创建指令;2.房间设置:触发针对媒体共享房间的设置操作;3.开播设置;4.发送媒体共享房间的创建请求;5.检查是否有直播权限;6.若无,则返回拒绝创建通知;7.若有,则返回成功创建通知;8.检查创建对象是否设置了向附近的人进行推荐;9.服务器发送询问请求至用户(即房客端),以询问用户是否在创建对象的附近;10.用户响应,返回自身是否在创建对象的附近的结果;11.用户点击“附近的房间”按钮;12.将媒体共享房间推荐给在附近的用户。接下来进行详细说明。
1)创建房间。参见图13,图13是本申请实施例提供的媒体共享房间的创建示意图。创建对象在客户端打开媒体共享房间推荐界面(如图13中(1)所示),响应于针对媒体共享房间推荐界面中的房间创建控件“选片创建房间”,显示媒体内容选择界面,进而通过媒体内容选择界面,选择媒体共享房间中待播放的媒体内容(如图13中(2)所示),进入房间设置界面,该房间设置界面可以供创建对象设置媒体共享房间的隐私模式(包括好友模式和公开模式)、媒体共享房间的房间名称等,如图13中(3)所示。
2)房间设置。可以设置媒体共享房间是否允许向附近的人推荐,此时,需要访问创建对象的真实位置,该真实位置需要随创建请求一起发送到服务器。需要说的是,创建对象的真实位置是在创建对象同意后发送给服务器的,对于服务器来说不是隐私信息,而对于其他用户或者恶意攻击者来说,才是隐私信息。因为本申请实施例中隐私保护的目标是,不窥探被动用户的位置隐私,比如为待推荐用户推荐媒体共享房间时,不能获取待推荐用户的精确位置。而创建对象需要向附近的人推荐时,相当于是同意主动提供自身的位置信息,以使用服务器的附近的人推荐的功能。
3)开播设置。参见图14,图14是本申请实施例提供的媒体共享房间的直播设置界面。在本申请实施例中,媒体共享房间还支持具备直播权限的用户(比如创建对象)在其中进行直播。在媒体共享房间的直播设置过程中,可以设置摄像头使用权限、麦克风使用权限、直播清晰度、美颜美妆等功能。
4)创建对象的客户端向服务器发送媒体共享房间的创建请求。服务器会检查创建对象是否有直播权限,若无权限,则不允许创建媒体共享房间;若有权限,则为主播创建媒体共享房间。
5)如果创建对象设置了需要向附近的人推荐,服务器会向所有打开媒体共享房间推荐界面内的用户发送请求,询问用户是否在创建对象附近。如果用户在创建对象附近,会将该媒体共享房间存储在用户的待推荐列表中,等用户主动获取时返回给用户。该步骤为服务器与客户端之间的异步流程,对用户来说是无感知的。
6)用户主动点击“附近的房间”按钮,主动拉取附近的媒体共享房间。
7)服务器可以按照优先级和产品策略,向在创建对象附近的用户推送媒体共享房间。
下面说明本申请实施例提供的媒体共享房间的推荐系统的总体架构。参见图15A,图15A是本申请实施例提供的媒体共享房间的推荐系统的架构示意图。这里,媒体共享房间的推荐系统包括:1)用户层,包括支持媒体共享房间的客户端和网页端。2)接入层,用于接入媒体共享房间内播放的媒体内容。3)业务适配层,包括媒体共享房间的适配服务(room_adapter)和召回服务(recall)。其中,召回服务为媒体共享房间推荐界面提供数据,因为要支持“附近的房间”推荐功能,召回服务新增“附近的房间推荐模块”,负责向用户推荐附近的媒体共享房间。用户可在媒体共享房间推荐界面,通过“附近的房间推荐模块”获取附近的媒体共享房间,该“附近的房间推荐模块”由推荐服务提供,参见图15B,图15B是本申请实施例提供的媒体共享房间的推荐系统的架构示意图。这里,可以看到在媒体共享房间推荐界面中,增加了“附近的房间推荐模块”。4)通用服务层,包括媒体共享房间的数据写入服务(room_write)和推荐服务(即上述服务器)。5)基础服务层,包括消息队列服务(MQ,MessageQueue)和远程字典服务(Redis,Remote Dictionary Server)。
接下来继续对本申请实施例提供的媒体共享房间的推荐方法进行说明。参见图14,有直播开播权限的创建对象,可以创建自己的媒体共享房间。创建房间时可以设置美颜、滤镜等开播设置,还可以设置房间标题、是否向附近的人进行推荐等房间基础信息。在创建对象设置了允许向附近的人推荐时,服务器才会把该媒体共享房间推荐给附近的人。
参见图16,图16是本申请实施例提供的媒体共享房间的创建流程和解散流程的示意图。其中,媒体共享房间的创建流程包括:1.创建对象通过客户端发送媒体共享房间的创建请求至房间适配服务;2.房间适配服务将创建请求发送至房间数据写入服务;3.房间数据写入服务返回响应至房间适配服务,并生产建房流水消息至消息队列服务;4.房间适配服务返回响应至客户端;5.推荐服务从消息队列服务消费建房流水消息;6.判断该建房流水消息所对应的媒体共享房间是否需要推荐至附近的人;7.若是,推荐服务将媒体共享房间存储至redis服务,以加入房间推荐列表;8.redis服务返回响应至推荐服务。其中,媒体共享房间的解散流程包括:1.客户端发送媒体共享房间的解散请求至房间适配服务;2.房间适配服务将解散请求发送至房间数据写入服务;3.房间数据写入服务返回响应至房间适配服务,并生产房间解散流水消息至消息队列服务;4.房间适配服务返回响应至客户端;5.推荐服务从消息队列服务消费房间解散流水消息;6.推荐服务通知redis服务中的房间推荐列表删除该媒体共享房间;7.redis服务返回响应至推荐服务。
在实际应用中,参见图17,图17是本申请实施例提供的媒体共享房间推荐界面的打开流程示意图。当服务器检测到用户打开媒体共享房间推荐界面时(即触发针对“一起看”控件的触发操作时),该用户成为推荐服务的对象,把该用户加入到推荐对象列表中,并返回给终端媒体共享房间推荐界面的相关信息以使终端显示媒体共享房间推荐界面。而当服务器检测到用户退出媒体共享房间推荐界面时,则把该用户从推荐对象列表中移除。参见图18,图18是本申请实施例提供的媒体共享房间推荐界面在打开和退出时的处理流程示意图。(1)当用户打开媒体共享房间推荐界面时:1.用户在客户端打开媒体共享房间推荐界面;2.客户端提示用户可开启定位;3.推荐服务(即服务器)判断客户端是否开启了定位;4.若是,推荐服务建立和客户端的通信长连接;5.推荐服务通知redis服务将该用户加入推荐对象列表;6.redis服务返回响应至推荐服务。(2)当用户退出媒体共享房间推荐界面时:1.用户在客户端退出媒体共享房间推荐界面;2.推荐服务检测到用户退出媒体共享房间推荐界面时,延迟3分钟后断开和客户端的通信长连接;3.推荐服务通知redis服务将该用户从推荐对象列表中移除;4.redis服务返回响应至推荐服务。
参见图19,图19是本申请实施例提供的媒体共享房间的推荐显示示意图。这里,用户点击“附近的房间”按钮时,需要用户开启定位并给推荐访问位置信息的权限(其中,用户定位只会在客户端使用,推荐服务不会获取),在有权限后即可开始搜寻附近的媒体共享房间(如图19中(1)所示),当搜寻到媒体共享房间时,则显示房间卡片信息(如图19中(2)所示),在实际实施时,可默认2s后自动进入媒体共享房间,也可以由用户主动操作进入房间,当然用户还可以忽略该房间卡片信息以继续搜寻附近的媒体共享房间。而如果搜寻时长超过一定时间(比如20秒),则提示当前暂无附近的媒体共享房间,并提示用户稍后再试。
参见图20,图20是本申请实施例提供的媒体共享房间的推荐流程示意图,包括:1.客户端接收到用户针对“附近的房间”按钮的触发操作,发送媒体共享房间获取请求至推荐服务;2.推荐服务判断该用户是否有已经提前存好的目标媒体共享房间;3.若不存在,则按照从房间推荐列表中确定待推荐的媒体共享房间,并询问客户端该用户是否处于该媒体共享房间的推荐区域;4.客户端返回响应,以通知推荐服务该用户是否处于该媒体共享房间的推荐区域;5.若不处于且针对该用户的推荐时长达到一定时长后,提示超时并稍后再试;若处于,则将媒体共享房间推荐至该用户;6.若存在,则通知redis服务从提前存好的目标媒体共享房间中选择一个媒体共享房间;7.redis服务返回选择的媒体共享房间至推荐服务;8.推荐服务延时2s将选择的该媒体共享房间推荐至客户端。
在实际应用中,用户一旦打开媒体共享房间推荐界面,推荐服务的异步自动推荐就开始了。异步自动推荐流程参见图21,图21是本申请实施例提供的媒体共享房间的推荐流程示意图,包括:1.用户在客户端打开媒体共享房间推荐界面;2.推荐服务确定客户端开启了定位后,建立和客户端的通信长连接;3.推荐服务通知redis服务将该用户加入推荐对象列表;4.redis服务返回响应至推荐服务;5.推荐服务启动自动推荐任务,包括:5.1,遍历房间推荐列表,针对房间推荐列表中每个媒体共享房间,询问客户端该用户是否处于该媒体共享房间的推荐区域;5.2,客户端返回响应,以通知推荐服务该用户是否处于该媒体共享房间的推荐区域;5.3若是,则将该媒体共享房间加入至该用户的待推荐房间列表,以向该用户推荐该待推荐房间列表中的各个媒体共享房间。
应用本申请上述实施例,1)将空间布隆过滤器和同态加密技术结合起来使用,充分利用了二者的优势,保护用户位置隐私的同时为用户提供位置服务。2)落地实现简单,为用户位置隐私保护的研究和落地的发展,起到了推动作用。3)实现了良好的用户体验和用户隐私保护之间的平衡。
下面说明本申请实施例提供的媒体共享房间的推荐装置。参见图23,图23是本申请实施例提供的媒体共享房间的推荐装置的结构示意图。本申请实施例提供的媒体共享房间的推荐装置包括:确定模块2310,用于响应于目标对象的媒体共享房间获取请求,确定待推荐的媒体共享房间所关联的推荐区域;其中,所述推荐区域与所述媒体共享房间的创建对象间的距离低于距离阈值,所述媒体共享房间,用于供加入所述媒体共享房间的至少一个观看对象,观看所述媒体共享房间所播放的媒体内容;生成模块2320,用于生成所述推荐区域的位置对应的第一布隆过滤器数组,并发送所述第一布隆过滤器数组至所述目标对象的终端;接收模块2330,用于接收所述终端返回的用于指示所述目标对象是否处于所述推荐区域的结果,所述结果基于所述第一布隆过滤器数组和第二布隆过滤器数组确定,所述第二布隆过滤器数组与所述目标对象的位置相对应;推荐模块2340,用于当所述结果用于指示所述目标对象处于所述推荐区域时,将所述媒体共享房间推荐至所述终端。
在一些实施例中,所述确定模块2310,还用于确定预先划分得到的多个候选推荐区域;获取所述媒体共享房间的创建对象的第一位置信息,并获取各所述候选推荐区域的区域位置信息;基于所述第一位置信息和各所述区域位置信息,确定所述创建对象和各所述候选推荐区域之间的距离;将所述距离低于所述距离阈值的候选推荐区域,作为所述媒体共享房间所关联的所述推荐区域。
在一些实施例中,所述生成模块2320,还用于获取所述推荐区域的区域数量,并基于所述区域数量,构建初始布隆过滤器数组;获取用于生成所述第一布隆过滤器数组的至少一个目标函数;基于所述至少一个目标函数,将所述推荐区域的位置映射至所述初始布隆过滤器数组中,得到所述第一布隆过滤器数组。
在一些实施例中,所述生成模块2320,还用于获取所述第一布隆过滤器数组对应的错判分数,所述错判分数,用于指示结合所述第一布隆过滤器数组所确定的所述结果是错误结果的可能程度;基于所述区域数量和所述错判分数,确定所述初始布隆过滤器数组中所包括元素的元素数量;构建包括所述元素数量的元素的数组,作为所述初始布隆过滤器数组。
在一些实施例中,所述生成模块2320,还用于基于所述区域数量和所述元素数量,确定所述目标函数的函数数量;获取用于生成所述第一布隆过滤器数组的、所述函数数量的目标函数。
在一些实施例中,当所述推荐区域的区域数量为多个时,所述生成模块2320,还用于获取各所述推荐区域的推荐优先级,所述推荐优先级,用于指示将所述媒体共享房间推荐至所述推荐区域的对象的优先级;当各所述推荐区域的推荐优先级相同时,基于所述区域数量,构建二进制格式的初始布隆过滤器数组,所述初始布隆过滤器数组中各元素为0;相应的,所述生成模块2320,还用于针对各所述推荐区域,分别执行如下处理,得到所述第一布隆过滤器数组:基于所述推荐区域的位置,确定各所述目标函数的函数值;其中,所述函数值,用于指示所述推荐区域的位置映射在所述初始布隆过滤器数组中的元素的元素位置;针对各所述函数值,将所述初始布隆过滤器数组中、元素位置为所述函数值的元素置为1,以将所述推荐区域的位置映射至所述初始布隆过滤器数组中。
在一些实施例中,当所述推荐区域的区域数量为多个时,所述生成模块2320还用于获取各所述推荐区域的推荐优先级,所述推荐优先级,用于指示将所述媒体共享房间推荐至所述推荐区域的对象的优先级;当存在不同的所述推荐优先级、且不同的所述推荐优先级的数量为多个时,构建m进制格式的初始布隆过滤器数组,所述初始布隆过滤器数组中各元素为0,所述m为大于所述推荐优先级的数量的整数;相应的,所述生成模块2320,还用于针对各所述推荐区域,分别执行如下处理,得到所述第一布隆过滤器数组:基于所述推荐区域的位置,确定各所述目标函数的函数值;其中,所述函数值,用于指示所述推荐区域的位置映射在所述初始布隆过滤器数组中的元素的元素位置;获取所述推荐区域的推荐优先级所对应的目标值,所述目标值为大于0且小于所述m的整数,所述目标值与所述推荐优先级正相关;针对各所述函数值,将所述初始布隆过滤器数组中、元素位置为所述函数值的元素置为所述目标值,以将所述推荐区域的位置映射至所述初始布隆过滤器数组中。
在一些实施例中,所述结果通过所述第一布隆过滤器数组和第二布隆过滤器数组相乘得到的乘积数组表征;所述接收模块2330,还用于获取所述乘积数组中非0元素的第一数量、以及所述目标函数的第二数量;当所述第一数量等于所述第二数量时,确定所述结果用于指示所述目标对象处于所述推荐区域;当所述第一数量不等于所述第二数量时,确定所述结果用于指示所述目标对象未处于所述推荐区域。
在一些实施例中,所述接收模块2330,还用于当所述第一布隆过滤器数组中的目标位置均为非0元素时,接收所述终端返回的用于指示所述目标对象处于所述推荐区域的结果;当所述第一布隆过滤器数组中的目标位置不是均为非0元素时,接收所述终端返回的用于指示所述目标对象未处于所述推荐区域的结果;其中,所述目标位置,为所述第二布隆过滤器数组中非0元素所处的位置。
在一些实施例中,所述结果通过所述第一布隆过滤器数组和第二布隆过滤器数组相乘得到的乘积数组表征;所述推荐模块2340,还用于获取所述乘积数组中非0元素的第一数量、以及所述目标函数的第二数量;当所述第一数量等于所述第二数量时,确定所述非0元素的元素最小值、以及对应所述元素最小值的目标推荐优先级;确定所述目标对象处于所述目标推荐优先级的目标推荐区域;相应的,所述媒体共享房间的待推荐对象的数量为多个,多个所述待推荐对象包括所述目标对象,所述推荐模块2340,还用于确定第一待推荐对象所处推荐区域的第一推荐优先级,所述第一待推荐对象为多个所述待推荐对象除所述目标对象之外的待推荐对象;当所述目标推荐优先级高于所述第一推荐优先级时,将所述媒体共享房间推荐至所述终端。
在一些实施例中,所述生成模块2320,还用于对所述第一布隆过滤器数组进行同态加密处理,得到加密布隆过滤器数组;发送所述加密布隆过滤器数组至所述目标对象的终端;其中,所述加密布隆过滤器数组,用于供所述终端将所述第二布隆过滤器数组和所述加密布隆过滤器数组进行相乘,并将相乘得到的乘积数组中各元素的元素位置进行随机打乱,得到乱序乘积数组,并返回所述乱序乘积数组;其中,所述乱序乘积数组,用于指示所述目标对象是否处于所述推荐区域的结果;相应的,所述接收模块2330,还用于接收所述终端返回的所述乱序乘积数组。
在一些实施例中,所述确定模块2310,还用于响应于目标对象的媒体共享房间获取请求,确定所述目标对象是否存在关联的目标媒体共享房间;当所述目标对象不存在关联的目标媒体共享房间时,确定待推荐的媒体共享房间所关联的推荐区域。
在一些实施例中,所述确定模块2310,还用于在响应于目标对象的媒体共享房间获取请求,确定待推荐的媒体共享房间所关联的推荐区域之前,当检测到所述目标对象触发针对媒体共享房间推荐界面的打开操作时,建立与所述终端之间的通信长连接,并将所述目标对象加入媒体共享房间的待推荐对象列表;相应的,所述确定模块2310,还用于当检测到所述目标对象触发针对媒体共享房间推荐界面的退出操作时,在目标时长后,断开与所述终端之间的通信长连接。
在一些实施例中,所述推荐模块2340,还用于当针对所述目标对象已发送目标数量的目标布隆过滤器数组,且针对各所述目标布隆过滤器数组均接收到用于指示所述目标对象未处于相应推荐区域的结果时,发送提示信息至所述终端;其中,所述目标布隆过滤器数组与目标媒体共享房间相对应,所述提示信息,用于提示所述目标对象在目标时长后重新发送所述获取请求。
应用本申请上述实施例,当接收到目标对象的媒体共享房间获取请求,确定待推荐的媒体共享房间所关联的推荐区域,然后生成推荐区域的位置对应的第一布隆过滤器数组,并发送第一布隆过滤器数组至目标对象的终端,从而使得目标对象的终端基于第一布隆过滤器数组和第二布隆过滤器数组,确定目标对象处于推荐区域的结果,并返回结果,当接收到用于指示目标对象处于推荐区域的结果时,将媒体共享房间推荐至终端。
这里,推荐区域与媒体共享房间的创建对象间的距离低于距离阈值,在确定目标对象是否处于推荐区域中时,发送给目标对象的终端的是推荐区域的位置对应的第一布隆过滤器数组;而目标对象的终端返回的是目标对象是否处于推荐区域的结果,也无需目标对象提供其真实位置。如此,在媒体共享房间的整个推荐过程中,目标对象无需将自身的真实位置提供给其他方,创建对象的推荐区域的位置也无需提供给目标对象,保证了双方的位置隐私不被泄露,提高了基于位置进行推荐时的位置隐私的安全性。
下面说明本申请实施例提供的实施媒体共享房间的推荐方法的电子设备。参见图22,图22是本申请实施例提供的实施媒体共享房间的推荐方法的电子设备500的结构示意图。该电子设备500可以是服务器,也可以是终端。以电子设备500为图1所示的服务器为例,本申请实施例提供的实施媒体共享房间的推荐方法的电子设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图22中将各种总线都标为总线系统540。
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器550可以是可移除的,不可移除的或其组合。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。存储器550包括易失性存储器或非易失性存储器,也可包括易失性存储器和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random AccessMemory)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。
存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集。在本申请实施例中,存储器550存储有计算机可执行指令;当计算机可执行指令被处理器510执行时,将引起处理器510执行本申请实施例提供的媒体共享房间的推荐方法。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机可执行指令,该计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本申请实施例提供的媒体共享房间的推荐方法。
本申请实施例还提供一种计算机可读存储介质,其中存储有计算机可执行指令,当计算机可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的媒体共享房间的推荐方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,计算机可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,计算机可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,HyperText Markup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,计算机可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (18)

1.一种媒体共享房间的推荐方法,其特征在于,所述方法包括:
响应于目标对象的媒体共享房间获取请求,确定待推荐的媒体共享房间所关联的推荐区域;
其中,所述推荐区域与所述媒体共享房间的创建对象间的距离低于距离阈值,所述媒体共享房间,用于供加入所述媒体共享房间的至少一个观看对象,观看所述媒体共享房间所播放的媒体内容;
生成所述推荐区域的位置对应的第一布隆过滤器数组,并发送所述第一布隆过滤器数组至所述目标对象的终端;
接收所述终端返回的用于指示所述目标对象是否处于所述推荐区域的结果,所述结果基于所述第一布隆过滤器数组和第二布隆过滤器数组确定,所述第二布隆过滤器数组与所述目标对象的位置相对应;
当所述结果用于指示所述目标对象处于所述推荐区域时,将所述媒体共享房间推荐至所述终端。
2.如权利要求1所述的方法,其特征在于,所述确定待推荐的媒体共享房间所关联的推荐区域,包括:
确定预先划分得到的多个候选推荐区域;
获取所述媒体共享房间的创建对象的第一位置信息,并获取各所述候选推荐区域的区域位置信息;
基于所述第一位置信息和各所述区域位置信息,确定所述创建对象和各所述候选推荐区域之间的距离;
将所述距离低于所述距离阈值的候选推荐区域,作为所述媒体共享房间所关联的所述推荐区域。
3.如权利要求1所述的方法,其特征在于,所述生成所述推荐区域的位置对应的第一布隆过滤器数组,包括:
获取所述推荐区域的区域数量,并基于所述区域数量,构建初始布隆过滤器数组;
获取用于生成所述第一布隆过滤器数组的至少一个目标函数;
基于所述至少一个目标函数,将所述推荐区域的位置映射至所述初始布隆过滤器数组中,得到所述第一布隆过滤器数组。
4.如权利要求3所述的方法,其特征在于,所述基于所述区域数量,构建初始布隆过滤器数组,包括:
获取所述第一布隆过滤器数组对应的错判分数,所述错判分数,用于指示结合所述第一布隆过滤器数组所确定的所述结果是错误结果的可能程度;
基于所述区域数量和所述错判分数,确定所述初始布隆过滤器数组中所包括元素的元素数量;
构建包括所述元素数量的元素的数组,作为所述初始布隆过滤器数组。
5.如权利要求4所述的方法,其特征在于,所述获取用于生成所述第一布隆过滤器数组的至少一个目标函数,包括:
基于所述区域数量和所述元素数量,确定所述目标函数的函数数量;
获取用于生成所述第一布隆过滤器数组的、所述函数数量的目标函数。
6.如权利要求3所述的方法,其特征在于,当所述推荐区域的区域数量为多个时,所述基于所述区域数量,构建初始布隆过滤器数组,包括:
获取各所述推荐区域的推荐优先级,所述推荐优先级,用于指示将所述媒体共享房间推荐至所述推荐区域的对象的优先级;
当各所述推荐区域的推荐优先级相同时,基于所述区域数量,构建二进制格式的初始布隆过滤器数组,所述初始布隆过滤器数组中各元素为0;
所述基于所述至少一个目标函数,将所述推荐区域的位置映射至所述初始布隆过滤器数组中,得到所述第一布隆过滤器数组,包括:
针对各所述推荐区域,分别执行如下处理,得到所述第一布隆过滤器数组:
基于所述推荐区域的位置,确定各所述目标函数的函数值;
其中,所述函数值,用于指示所述推荐区域的位置映射在所述初始布隆过滤器数组中的元素的元素位置;
针对各所述函数值,将所述初始布隆过滤器数组中、元素位置为所述函数值的元素置为1,以将所述推荐区域的位置映射至所述初始布隆过滤器数组中。
7.如权利要求3所述的方法,其特征在于,当所述推荐区域的区域数量为多个时,所述基于所述区域数量,构建初始布隆过滤器数组,包括:
获取各所述推荐区域的推荐优先级,所述推荐优先级,用于指示将所述媒体共享房间推荐至所述推荐区域的对象的优先级;
当存在不同的所述推荐优先级、且不同的所述推荐优先级的数量为多个时,构建m进制格式的初始布隆过滤器数组,所述初始布隆过滤器数组中各元素为0,所述m为大于所述推荐优先级的数量的整数;
所述基于所述至少一个目标函数,将所述推荐区域的位置映射至所述初始布隆过滤器数组中,得到所述第一布隆过滤器数组,包括:
针对各所述推荐区域,分别执行如下处理,得到所述第一布隆过滤器数组:
基于所述推荐区域的位置,确定各所述目标函数的函数值;
其中,所述函数值,用于指示所述推荐区域的位置映射在所述初始布隆过滤器数组中的元素的元素位置;
获取所述推荐区域的推荐优先级所对应的目标值,所述目标值为大于0且小于所述m的整数,所述目标值与所述推荐优先级正相关;
针对各所述函数值,将所述初始布隆过滤器数组中、元素位置为所述函数值的元素置为所述目标值,以将所述推荐区域的位置映射至所述初始布隆过滤器数组中。
8.如权利要求6或7所述的方法,其特征在于,所述结果通过所述第一布隆过滤器数组和第二布隆过滤器数组相乘得到的乘积数组表征;
所述接收所述终端返回的用于指示所述目标对象是否处于所述推荐区域的结果之后,所述方法还包括:
获取所述乘积数组中非0元素的第一数量、以及所述目标函数的第二数量;
当所述第一数量等于所述第二数量时,确定所述结果用于指示所述目标对象处于所述推荐区域;
当所述第一数量不等于所述第二数量时,确定所述结果用于指示所述目标对象未处于所述推荐区域。
9.如权利要求6或7所述的方法,其特征在于,所述接收所述终端返回的用于指示所述目标对象是否处于所述推荐区域的结果,包括:
当所述第一布隆过滤器数组中的目标位置均为非0元素时,接收所述终端返回的用于指示所述目标对象处于所述推荐区域的结果;
当所述第一布隆过滤器数组中的目标位置不是均为非0元素时,接收所述终端返回的用于指示所述目标对象未处于所述推荐区域的结果;
其中,所述目标位置,为所述第二布隆过滤器数组中非0元素所处的位置。
10.如权利要求7所述的方法,其特征在于,所述结果通过所述第一布隆过滤器数组和第二布隆过滤器数组相乘得到的乘积数组表征;
所述接收所述终端返回的用于指示所述目标对象是否处于所述推荐区域的结果之后,所述方法还包括:
获取所述乘积数组中非0元素的第一数量、以及所述目标函数的第二数量;
当所述第一数量等于所述第二数量时,确定所述非0元素的元素最小值、以及对应所述元素最小值的目标推荐优先级;
确定所述目标对象处于所述目标推荐优先级的目标推荐区域;
所述媒体共享房间的待推荐对象的数量为多个,多个所述待推荐对象包括所述目标对象,所述将所述媒体共享房间推荐至所述终端,包括:
确定第一待推荐对象所处推荐区域的第一推荐优先级,所述第一待推荐对象为多个所述待推荐对象除所述目标对象之外的待推荐对象;
当所述目标推荐优先级高于所述第一推荐优先级时,将所述媒体共享房间推荐至所述终端。
11.如权利要求1所述的方法,其特征在于,所述发送所述第一布隆过滤器数组至所述目标对象的终端,包括:
对所述第一布隆过滤器数组进行同态加密处理,得到加密布隆过滤器数组;
发送所述加密布隆过滤器数组至所述目标对象的终端;
其中,所述加密布隆过滤器数组,用于供所述终端将所述第二布隆过滤器数组和所述加密布隆过滤器数组进行相乘,并将相乘得到的乘积数组中各元素的元素位置进行随机打乱,得到乱序乘积数组,并返回所述乱序乘积数组;
其中,所述乱序乘积数组,用于指示所述目标对象是否处于所述推荐区域的结果;
所述接收所述终端返回的用于指示所述目标对象是否处于所述推荐区域的结果,包括:接收所述终端返回的所述乱序乘积数组。
12.如权利要求1所述的方法,其特征在于,所述响应于目标对象的媒体共享房间获取请求,确定待推荐的媒体共享房间所关联的推荐区域,包括:
响应于目标对象的媒体共享房间获取请求,确定所述目标对象是否存在关联的目标媒体共享房间;
当所述目标对象不存在关联的目标媒体共享房间时,确定待推荐的媒体共享房间所关联的推荐区域。
13.如权利要求1所述的方法,其特征在于,所述响应于目标对象的媒体共享房间获取请求,确定待推荐的媒体共享房间所关联的推荐区域之前,所述方法还包括:
当检测到所述目标对象触发针对媒体共享房间推荐界面的打开操作时,建立与所述终端之间的通信长连接,并
将所述目标对象加入媒体共享房间的待推荐对象列表;
所述方法还包括:
当检测到所述目标对象触发针对媒体共享房间推荐界面的退出操作时,在目标时长后,断开与所述终端之间的通信长连接。
14.如权利要求1所述的方法,其特征在于,所述方法还包括:
当针对所述目标对象已发送目标数量的目标布隆过滤器数组,且针对各所述目标布隆过滤器数组均接收到用于指示所述目标对象未处于相应推荐区域的结果时,发送提示信息至所述终端;
其中,所述目标布隆过滤器数组与目标媒体共享房间相对应,所述提示信息,用于提示所述目标对象在目标时长后重新发送所述获取请求。
15.一种媒体共享房间的推荐装置,其特征在于,所述装置包括:
确定模块,用于响应于目标对象的媒体共享房间获取请求,确定待推荐的媒体共享房间所关联的推荐区域;
其中,所述推荐区域与所述媒体共享房间的创建对象间的距离低于距离阈值,所述媒体共享房间,用于供加入所述媒体共享房间的至少一个观看对象,观看所述媒体共享房间所播放的媒体内容;
生成模块,用于生成所述推荐区域的位置对应的第一布隆过滤器数组,并发送所述第一布隆过滤器数组至所述目标对象的终端;
接收模块,用于接收所述终端返回的用于指示所述目标对象是否处于所述推荐区域的结果,所述结果基于所述第一布隆过滤器数组和第二布隆过滤器数组确定,所述第二布隆过滤器数组与所述目标对象的位置相对应;
推荐模块,用于当所述结果用于指示所述目标对象处于所述推荐区域时,将所述媒体共享房间推荐至所述终端。
16.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令时,实现权利要求1至14任一项所述的媒体共享房间的推荐方法。
17.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令被处理器执行时,实现权利要求1至14任一项所述的媒体共享房间的推荐方法。
18.一种计算机程序产品,包括计算机可执行指令,其特征在于,所述计算机可执行指令被处理器执行时,实现权利要求1至14任一项所述的媒体共享房间的推荐方法。
CN202211528328.1A 2022-11-30 2022-11-30 媒体共享房间的推荐方法、装置、设备、介质及程序产品 Pending CN118118196A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211528328.1A CN118118196A (zh) 2022-11-30 2022-11-30 媒体共享房间的推荐方法、装置、设备、介质及程序产品
PCT/CN2023/088324 WO2024113634A1 (zh) 2022-11-30 2023-04-14 媒体共享房间的推荐方法、装置、电子设备、存储介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211528328.1A CN118118196A (zh) 2022-11-30 2022-11-30 媒体共享房间的推荐方法、装置、设备、介质及程序产品

Publications (1)

Publication Number Publication Date
CN118118196A true CN118118196A (zh) 2024-05-31

Family

ID=91214469

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211528328.1A Pending CN118118196A (zh) 2022-11-30 2022-11-30 媒体共享房间的推荐方法、装置、设备、介质及程序产品

Country Status (2)

Country Link
CN (1) CN118118196A (zh)
WO (1) WO2024113634A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101467415B1 (ko) * 2013-07-23 2014-12-03 주식회사 엘지유플러스 이동 단말기, 컨텐트 공유 서버 및 이들을 이용한 컨텐트 공유 방법
US9423922B2 (en) * 2013-12-24 2016-08-23 Dropbox, Inc. Systems and methods for creating shared virtual spaces
CN103905552A (zh) * 2014-04-04 2014-07-02 深圳市金立通信设备有限公司 一种文件共享方法、终端及服务器
CN112052398A (zh) * 2020-10-13 2020-12-08 腾讯科技(深圳)有限公司 媒体信息推荐方法、装置、电子设备及存储介质
KR102491482B1 (ko) * 2021-02-18 2023-01-26 주식회사 엠투소프트 전자문서 공유방법

Also Published As

Publication number Publication date
WO2024113634A1 (zh) 2024-06-06

Similar Documents

Publication Publication Date Title
US10757102B2 (en) Methods, apparatus, and systems for identity authentication
US9585011B2 (en) Anonymizing location information of a mobile device
US8655960B2 (en) Location-aware instant messaging
CN104202396B (zh) 一种信息分享方法、装置、服务器、终端设备及系统
US9686679B2 (en) Transmission of beacon message
US20160261606A1 (en) Location-based network security
US20160132774A1 (en) Method and system for predicting a geographic location of a network entity
CN106897586B (zh) 一种应用程序编程接口api权限管理方法与装置
US11706184B2 (en) Space time region based communications
JP5119900B2 (ja) 行動履歴情報生成装置、行動履歴情報生成システム、行動履歴情報生成方法およびコンピュータプログラム
CN112804240B (zh) 功能控制方法、装置、服务器、存储介质及产品
US20150040148A1 (en) Systems and Methods For Detecting Improper Use of Telecommunications Reception Device
CN105578412A (zh) 一种基于位置服务的位置匿名方法及系统
KR102667841B1 (ko) 정확한 위치 이벤트 측정시의 데이터 조작 방지 및 사용자 프라이버시 보호
CN113784277B (zh) 用于存储位置信息的系统、方法和装置
CN110083771A (zh) 一种信息推送的方法、装置、设备和介质
CN108055356A (zh) 一种信息处理方法、服务器、客户端及可读存储介质
KR102021269B1 (ko) 위치공유자 단말기의 위치정보 공유방법
CN118118196A (zh) 媒体共享房间的推荐方法、装置、设备、介质及程序产品
KR20160066661A (ko) 위치 기반 서비스에서 익명성을 확보하는 방법 및 시스템
US20140011525A1 (en) Information aggregation display method and device for location based service
KR101817414B1 (ko) 이중 로그인 탐지 방법 및 이중 로그인 탐지 시스템
CN113472895B (zh) 用于提供服务入口的系统、方法以及存储介质
Michalakos et al. G2G: Location-aware mobile social networking with applications in recommender systems and gaming
Ellis et al. Replay (far) away: Exploiting and fixing google/apple exposure notification contact tracing

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