CN113553511A - 用户实时推荐方法、装置、系统、设备及可读存储介质 - Google Patents
用户实时推荐方法、装置、系统、设备及可读存储介质 Download PDFInfo
- Publication number
- CN113553511A CN113553511A CN202110875530.0A CN202110875530A CN113553511A CN 113553511 A CN113553511 A CN 113553511A CN 202110875530 A CN202110875530 A CN 202110875530A CN 113553511 A CN113553511 A CN 113553511A
- Authority
- CN
- China
- Prior art keywords
- user
- message
- long connection
- real
- interest model
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000012545 processing Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 18
- 238000005065 mining Methods 0.000 abstract description 13
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 22
- 238000004891 communication Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 230000000903 blocking effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 239000000872 buffer Substances 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012966 insertion method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种用户实时推荐方法、装置、系统、设备及可读存储介质,涉及人工智能技术领域,其中该方法包括:接收业务服务系统发送的用户业务数据,基于所述用户业务数据计算用户兴趣模型;与用户端建立长连接;接收业务服务系统发送的推送消息,基于用户兴趣模型和推送消息,通过长连接向用户端推送消息。本发明结合用户兴趣挖掘和长连接实时推送,解决基于用户兴趣的实时、定向的信息推送,有效提高用户友好度和体验度。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及用户实时推荐方法、装置、系统、设备及可读存储介质。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
一些业务服务系统存在业务需要实时给用户推送消息,但是目前一般不具备定向用户群体的推送,都是将用户进行固定分组,然后对分组内的用户推送消息,无法实现基于用户兴趣进行定向、实时和基于兴趣定时变更的消息推送。
发明内容
本发明实施例提供一种用户实时推荐方法,用以实现基于用户兴趣进行定向、实时和基于兴趣定时变更的消息推送,该方法包括:
接收业务服务系统发送的用户业务数据,基于所述用户业务数据计算用户兴趣模型;
与用户端建立长连接;
接收业务服务系统发送的推送消息,基于用户兴趣模型和推送消息,通过长连接向用户端推送消息。
在一个实施例中,接收业务服务系统发送的用户业务数据,包括:
从消息中间件中的业务数据队列中获取每一条用户业务数据,其中,业务服务系统将用户业务数据发送至消息中间件中。
在一个实施例中,还包括:
对所述用户业务数据进行处理。
在一个实施例中,基于所述用户业务数据计算用户兴趣模型,包括:
根据所述用户业务数据确定用户标签值,基于所述用户标签值确定用户模型;
计算用户模型与预设消息的标签向量的相似度;
将所述相似度与相似度阈值进行比较,基于比较结果确定用户兴趣模型。
在一个实施例中,将所述相似度与相似度阈值进行比较,基于比较结果确定用户兴趣模型,包括:
将所述相似度与相似度阈值进行比较,当所述相似度大于相似度阈值时,确定相应的预设消息的标签向量对应的消息类型所对应的用户兴趣模型。
在一个实施例中,所述用户兴趣模型为{key:用户ID,value:[消息类型1,消息类型2,消息类型3]}。
在一个实施例中,还包括:
将所述用户兴趣模型存储至数据库和/或redis中。
在一个实施例中,还包括:
接收管理端发送的用户兴趣模型查询请求;
基于所述用户兴趣模型查询请求从数据库和/或redis中获取相应的用户兴趣模型返回至管理端,所述管理端对用户兴趣模型进行订正。
在一个实施例中,与用户端建立长连接,包括:
接收用户端发送的用户数据请求;
根据所述用户数据请求获取建立长连接的连接信息;
基于所述建立长连接的连接信息,与用户端建立长连接。
在一个实施例中,与用户端建立长连接,包括:
接收sockjs的用户端发送的创建长连接请求;
基于所述创建长连接请求,与用户端建立websocket双通道的连接。
在一个实施例中,接收业务服务系统发送的推送消息,包括:
从消息中间件中的消息队列中获取每一条推送消息,其中,业务服务系统将推送消息发送至消息中间件中。
在一个实施例中,还包括:
对推送消息进行处理。
在一个实施例中,基于用户兴趣模型和推送消息,通过长连接向用户端推送消息,包括:
基于推送消息的消息类型,确定用户兴趣模型中对应的用户身份标识;
将用户身份标识存入用户身份标识列表;
基于所述用户身份标识列表,通过长连接向相应的用户端推送消息。
在一个实施例中,在通过长连接向用户端推送消息之前,还包括:
接收用户端发送的初始化消息请求;
根据所述初始化消息请求获得初始化消息;
将初始化消息返回至用户端。
本发明实施例还提供一种用户实时推荐装置,用以实现基于用户兴趣进行定向、实时和基于兴趣定时变更的消息推送,该装置包括:
用户兴趣管理模块,用于接收业务服务系统发送的用户业务数据,基于所述用户业务数据计算用户兴趣模型;
长连接服务模块,用于与用户端建立长连接;
消息管理模块,用于接收业务服务系统发送的推送消息,基于用户兴趣模型和推送消息,通过长连接向用户端推送消息。
在一个实施例中,用户兴趣管理模块具体用于:
从消息中间件中的业务数据队列中获取每一条用户业务数据,其中,业务服务系统将用户业务数据发送至消息中间件中。
在一个实施例中,用户兴趣管理模块还用于:
对所述用户业务数据进行处理。
在一个实施例中,用户兴趣管理模块具体用于:
根据所述用户业务数据确定用户标签值,基于所述用户标签值确定用户模型;
计算用户模型与预设消息的标签向量的相似度;
将所述相似度与相似度阈值进行比较,基于比较结果确定用户兴趣模型。
在一个实施例中,用户兴趣管理模块具体用于:
将所述相似度与相似度阈值进行比较,当所述相似度大于相似度阈值时,确定相应的预设消息的标签向量对应的消息类型所对应的用户兴趣模型。
在一个实施例中,所述用户兴趣模型为{key:用户ID,value:[消息类型1,消息类型2,消息类型3]}。
在一个实施例中,还包括:数据库和/或redis,用于存储所述用户兴趣模型。
在一个实施例中,消息管理模块还用于:
接收管理端发送的用户兴趣模型查询请求;
基于所述用户兴趣模型查询请求从数据库和/或redis中获取相应的用户兴趣模型返回至管理端,所述管理端对用户兴趣模型进行订正。
在一个实施例中,长连接服务模块具体用于:
接收用户端发送的用户数据请求;
根据所述用户数据请求获取建立长连接的连接信息;
基于所述建立长连接的连接信息,与用户端建立长连接。
在一个实施例中,长连接服务模块具体用于:
接收sockjs的用户端发送的创建长连接请求;
基于所述创建长连接请求,与用户端建立websocket双通道的连接。
在一个实施例中,消息管理模块具体用于:
从消息中间件中的消息队列中获取每一条推送消息,其中,业务服务系统将推送消息发送至消息中间件中。
在一个实施例中,消息管理模块还用于:
对推送消息进行处理。
在一个实施例中,长连接服务模块还用于:
基于推送消息的消息类型,确定用户兴趣模型中对应的用户身份标识;
将用户身份标识存入用户身份标识列表;
基于所述用户身份标识列表,通过长连接向相应的用户端推送消息。
在一个实施例中,消息管理模块还用于:
在通过长连接向用户端推送消息之前,接收用户端发送的初始化消息请求;
根据所述初始化消息请求获得初始化消息;
将初始化消息返回至用户端。
本发明实施例还提供一种用户实时推荐系统,用以实现基于用户兴趣进行定向、实时和基于兴趣定时变更的消息推送,该系统包括:用户实时推荐装置、业务服务系统和用户端。
在一个实施例中,还包括:消息中间件。
在一个实施例中,还包括:管理端。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述用户实时推荐方法。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述所述用户实时推荐方法的步骤。
本发明实施例中,与现有技术中将用户进行固定分组,然后对分组内的用户推送消息的技术方案相比,通过接收业务服务系统发送的用户业务数据,基于所述用户业务数据计算用户兴趣模型;与用户端建立长连接;接收业务服务系统发送的推送消息,基于用户兴趣模型和推送消息,通过长连接向用户端推送消息。本发明结合用户兴趣挖掘和长连接实时推送,解决基于用户兴趣的实时、定向的信息推送,有效提高用户友好度和体验度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中用户实时推荐系统结构框图一;
图2为本发明实施例中用户实时推荐系统具体的架构图;
图3为本发明实施例中用户实时推荐方法流程图一;
图4为本发明实施例中用户实时推荐方法流程图二;
图5为本发明实施例中用户实时推荐方法流程图三;
图6为本发明实施例中用户实时推荐方法流程图四;
图7为本发明实施例中用户实时推荐方法流程图五;
图8为本发明实施例中用户实时推荐方法流程图六;
图9为本发明实施例中用户实时推荐方法流程图七;
图10为本发明实施例中用户实时推荐方法流程图八;
图11为本发明实施例中用户实时推荐方法流程图六;
图12为本发明实施例中用户实时推荐方法流程图七;
图13为本发明实施例中用户实时推荐方法流程图八;
图14为本发明实施例中用户兴趣计算的交互图;
图15为本发明实施例中用户消息推送的交互图;
图16为本发明实施例中用户实时推荐装置结构框图一;
图17为本发明实施例中用户实时推荐装置结构框图二;
图18为本发明实施例中计算机设备600的系统构成的示意框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
术语解释
Spring Stomp:Sping stomp是spring提供的一种基于webscoket的长连接处理框架;
Websocket:一种在单个TCP连接上提供全双工的通讯协议,是一种长连接常用协议;
本发明实施例提供一种用户实时推荐系统,用以实现基于用户兴趣进行定向、实时和基于兴趣定时变更的消息推送,图1为本发明实施例中用户实时推荐系统结构框图一,如图1所示,该系统包括:用户实时推荐装置、业务服务系统和用户端。
用户实时推荐装置用于基于用户兴趣模型进行消息的实时推送。
业务服务系统用于推送用户业务数据和推送消息。
用户端用于接收推送消息。
在本发明实施例中,如图1所示,还包括:消息中间件,负责接收来自第三方业务服务的用于兴趣挖掘的业务数据,以及来自其他业务服务器的推送消息。
在本发明实施例中,如图1所示,还包括:管理端,负责用户兴趣的管理、设置系统消息推送等。
具体的,如图2所示,该系统包括用户层、服务层和数据层。
用户层:用户端(web端和app端)和管理端(web端)。用户端负责从用户中心获取用户信息和初始推送消息、与长连接服务建立长连接,以及消息的实时展示。
服务层:用户实时推荐装置,该用户实时推荐装置包括用户中心、消息管理模块、长连接服务模块和用户兴趣管理模块,用户中心用于负责管理用户信息,主要包括用户信息管理和用户历史记录(比如用户和谁建立了长连接,用户接收了哪些推送消息,用户进行了哪些请求等等);消息管理模块用于消息设置(比如设置消息标签、消息类型等等)、消息管理(对消息标签进行管理等)、消息接收(从消息中间件接收消息并处理)和初始推送消息(包括系统预留的基础消息)管理;长连接服务模块用于长连接管理、连接创建和主题管理;用户兴趣管理模块用于用户兴趣挖掘和用户兴趣管理,接收来自业务服务的用户业务操作记录,使用简单规则计算用户的兴趣,并且对用户兴趣进行维护;
消息中间件;
业务服务系统,包括用户兴趣挖掘数据来源服务的业务服务系统和推送消息来源服务的业务服务系统。
数据层:包括数据库mysql和redis。
基于上述用户实时推荐系统,本发明提出一种用户实时推荐方法(用户实时推荐装置角度),如图3所示,如图3所示,该方法包括:
步骤301:接收业务服务系统发送的用户业务数据,基于所述用户业务数据计算用户兴趣模型;
步骤302:与用户端建立长连接;
步骤303:接收业务服务系统发送的推送消息,基于用户兴趣模型和推送消息,通过长连接向用户端推送消息。
具体的,不同的业务服务系统发送用户的业务数据带有业务类型。
在本发明实施例中,步骤301接收业务服务系统发送的用户业务数据,包括:
从消息中间件中的业务数据队列中获取每一条用户业务数据,其中,业务服务系统将用户业务数据发送至消息中间件中。
具体的,此时的消息中间件中存储的是业务数据队列,业务服务系统将用户业务数据发送至消息中间件后,是一条一条存入业务数据队列中的,从业务数据队列中消费(即获取、读取)也是一条一条取出的。
在本发明实施例中,如图4所示,还包括:
步骤401:对所述用户业务数据进行处理。
在本发明实施例中,如图5所示,步骤301基于所述用户业务数据计算用户兴趣模型,包括:
步骤501:根据所述用户业务数据确定用户标签值,基于所述用户标签值确定用户模型;
步骤502:计算用户模型与预设消息的标签向量的相似度;
步骤503:将所述相似度与相似度阈值进行比较,基于比较结果确定用户兴趣模型。
具体的,如图6所示,步骤503具体包括:
步骤601:将所述相似度与相似度阈值进行比较,当所述相似度大于相似度阈值时,确定相应的预设消息的标签向量对应的消息类型所对应的用户兴趣模型。
具体的,基于提前定义到的兴趣挖掘算法,挖掘出用户模型,用户模型定义为A={a1,…,ax,…,an},其中ax表示基于用户业务请求数据挖掘出来的第x个标签值。每个消息类型会有一个标签向量,标签向量是针对消息类型说的哈,然后每个消息又归属一种消息类型。每种消息也对应一个标签向量B={b1,…,bx,…,bn};计算用户模型跟每种消息的标签向量的Cosine相似度cos(A,B);基于提前定义好的相似度阈值,得到用户的兴趣模型,用户兴趣模型为{key:用户ID,value:[消息类型1,消息类型2,消息类型3]}。cos值越大,说明相似度越高。cos值等于1,说明用户模型跟每种消息的标签向量完全一样。
在本发明实施例中,如图7所示,还包括:
步骤701:将所述用户兴趣模型存储至数据库和/或redis中。
具体的,redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set--有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
RedisRedis是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。
Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
在本发明实施例中,如图8所示,还包括:
步骤801:接收管理端发送的用户兴趣模型查询请求;
步骤802:基于所述用户兴趣模型查询请求从数据库和/或redis中获取相应的用户兴趣模型返回至管理端,所述管理端对用户兴趣模型进行订正。
具体的,管理员通过管理端查询用户兴趣模型并且可以进行订正管理。
在本发明实施例中,如图9所示,步骤302与用户端建立长连接包括:
步骤901:接收用户端发送的用户数据请求;
步骤902:根据所述用户数据获取建立长连接的连接信息;
步骤903:基于所述建立长连接的连接信息,与用户端建立长连接。
具体的,建立长连接的连接信息可以包括长连接列表,长连接列表中可以包括多个长连接信息。
所谓长连接,指在一个连接上可以连续发送多个数据包,然后断开连接,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况,每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,下次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接用长连接,如果用短连接频繁的通信会造成socket错误,而且频繁的socket创建也是对资源的浪费。
在本发明实施例中,如图10所示,步骤302与用户端建立长连接,包括:
步骤1001:接收sockjs的用户端发送的创建长连接请求;
步骤1002:基于所述创建长连接请求,与用户端建立websocket双通道的连接。
具体的,本发明基于Spring Stomp建立长连接,Sping stomp是spring提供的一种基于webscoket的长连接处理框架。
SockJS是一个浏览器JavaScript库,它提供了一个类似于网络的对象。SockJS提供了一个连贯的、跨浏览器的Javascript API,它在浏览器和web服务器之间创建了一个低延迟、全双工、跨域通信通道。
SockJS的一大好处在于提供了浏览器兼容性。优先使用原生WebSocket,如果在不支持websocket的浏览器中,会自动降为轮询的方式。
除此之外,spring也对socketJS提供了支持。
websocket(长连接传输协议)协议是html5的一种新的协议,提供了通过套接字实现全双工通信的功能,(全双工:意味着服务器可以发送消息给浏览器,浏览器也可以发送消息给服务器)并能够实现web浏览器和服务器之间的异步通信。
Stomp是在WebSocket之上提供了一个基于帧的线路格式层,用于定义消息的语义。Stomp帧由命令、一个或多个头信息以及负载所组成!举例发送数据的一个Stomp帧:
SEND
destination:/app/marco
content-length:20
{\"message\":\"hello\"}
这里Stomp的命令是SEND,后面接发送的目标地址,消息内容长度,然后是一个空行,最后是发送内容,这个里面是一个JSON消息。
这里需要注意的是destination,目标地址,消息会发送到这个目的地,这个目的地有服务端组件来进行处理。
Spring使用Stomp需要进行配置,并且Spring为Stomp消息提供了基于SpringMVC的编程模型。
在本发明实施例中,步骤303接收业务服务系统发送的推送消息,包括:
从消息中间件中的消息队列中获取每一条推送消息,其中,业务服务系统将推送消息发送至消息中间件中。
具体的,此时的消息中间件中存储的是消息队列,业务服务系统将推送消息发送至消息中间件后,是一条一条存入消息队列中的,从消息队列中消费(即获取、读取)也是一条一条取出的。
在本发明实施例中,如图11所示,还包括:
步骤1101:对推送消息进行处理。
具体的,对推送消息进行处理可以包括确定推送消息的类型。
在本发明实施例中,如图12所示,步骤303基于用户兴趣模型和推送消息,通过长连接向用户端推送消息,包括:
步骤1201:基于推送消息的消息类型,确定用户兴趣模型中对应的用户身份标识;
步骤1202:将用户身份标识存入用户身份标识列表;
步骤1203:基于所述用户身份标识列表,通过长连接向相应的用户端推送消息。
具体的,基于推送消息的消息类型,确定对应用户兴趣模型{key:用户ID,value:[消息类型1,消息类型2,消息类型3]}中的哪个消息类型,比如对应消息类型1,则将该用户ID存入用户身份标识列表中,即{消息:用户ID列表}。然后基于用户ID列表中包括的用户ID,向相应的用户端推送消息。
具体的,步骤1203基于所述用户身份标识列表,通过长连接向相应的用户端推送消息,包括:
将推送消息处理成{消息:用户ID列表}格式并且放在阻塞队列中;
从阻塞队列中读取推送消息,基于用户兴趣模型,通过长连接向用户端推送消息。
具体的,什么是阻塞队列:
1)支持阻塞的插入方法:意思是当队列满时,队列会阻塞插入元素的线程,直到队列不满。
2)支持阻塞的移除方法:意思是在队列为空时,获取元素的线程会等待队列变为非空。
在本发明实施例中,如图13所示,在通过长连接向用户端推送消息之前,还包括:
步骤1301:接收用户端发送的初始化消息请求;
步骤1302:根据所述初始化消息请求获得初始化消息;
步骤1303:将初始化消息返回至用户端。
具体的,用户初始化消息队列是预留的基础消息队列,在基于用户兴趣推送消息之前,提前将部分基础消息推送给用户进行展示,解决消息空缺或者等待消息过长的场景。
下面从具体的交互图来描述用户兴趣计算和用户消息推送。
图14为本发明实施例中用户兴趣计算的交互图,如图14所示,包括:
1.不同的业务系统进行业务数据推送,推送至消息中间件;发送到消息中间件的请求数据需要带上业务类型;
2.由用户实时推荐装置的用户兴趣挖掘服务不断从消息中间件的业务数据队列消费业务数据,并且处理消息;
3.从用户中心获取数据:
3.1由用户实时推荐装置的用户兴趣挖掘服务从用户中心进行用户信息查询;
3.2由用户中心返回用户信息;
4.由用户实时推荐装置的用户兴趣挖掘服务基于提前定义到的兴趣挖掘算法,计算用户的兴趣模型,兴趣模型为:{key:用户ID,value:[消息类型1,消息类型2,消息类型3]};用户兴趣挖掘服务将计算结果(用户的兴趣模型)更新到数据库和redis中供后续使用;
5.管理员通过管理端查询用户兴趣模型并且可以进行订正管理:
5.1管理员通过管理端进行用户兴趣模型查询;
5.2由用户实时推荐装置的用户兴趣挖掘服务将用户兴趣模型返回至管理端。
图15为本发明实施例中用户消息推送的交互图,如图15所示,包括:
1.用户端首先请求用户中心服务,获取用户信息,以及用户最新的初始化消息队列(用于第一轮消息轮播展示);
1.1用户端发送用户数据和初始化消息请求至用户中心;
1.2用户中心将初始化消息请求发送至消息管理服务;
1.3消息管理服务返回初始消息;
1.4用户中心将用户数据和初始消息返回至用户端;
2.接入sockjs的用户端向长连接服务器发出创建长连接请求,基于Spring Stomp的长连接服务完成与服务器之间建立websocket双通道的连接;
3.业务系统将需要推送给用户的消息发送给消息中间件;
4.消息管理服务消费消息中间件中的消息队列,并完成消息处理;
5.1消息管理服务将消息推送给长连接服务;
5.2消息管理服务将原始消息留存至数据库中;
6.长连接服务将接收的消息处理成{消息:用户ID列表}格式并且放在阻塞队列中;从redis中获取用户兴趣模型;
7.长连接服务推送线程从阻塞队列中一条条取出消息,并且根据推送给用户的连接请求。
本发明实施例中还提供了一种用户实时推荐装置,如下面的实施例所述。由于该装置解决问题的原理与用户实时推荐方法相似,因此该装置的实施可以参见用户实时推荐方法的实施,重复之处不再赘述。
图16为本发明实施例中用户实时推荐装置结构框图一,如图16所示,该装置包括:
用户兴趣管理模块02,用于接收业务服务系统发送的用户业务数据,基于所述用户业务数据计算用户兴趣模型;
长连接服务模块04,用于与用户端建立长连接;
消息管理模块06,用于接收业务服务系统发送的推送消息,基于用户兴趣模型和推送消息,通过长连接向用户端推送消息。
在本发明实施例中,用户兴趣管理模块02具体用于:
从消息中间件中的业务数据队列中获取每一条用户业务数据,其中,业务服务系统将用户业务数据发送至消息中间件中。
在本发明实施例中,用户兴趣管理模块02还用于:
对所述用户业务数据进行处理。
在本发明实施例中,用户兴趣管理模块02具体用于:
根据所述用户业务数据确定用户标签值,基于所述用户标签值确定用户模型;
计算用户模型与预设消息的标签向量的相似度;
将所述相似度与相似度阈值进行比较,基于比较结果确定用户兴趣模型。
在本发明实施例中,用户兴趣管理模块02具体用于:
将所述相似度与相似度阈值进行比较,当所述相似度大于相似度阈值时,确定相应的预设消息的标签向量对应的消息类型所对应的用户兴趣模型。
在本发明实施例中,所述用户兴趣模型为{key:用户ID,value:[消息类型1,消息类型2,消息类型3]}。
在本发明实施例中,如图17所示,还包括:数据库和/或redis 08,用于存储所述用户兴趣模型。
在本发明实施例中,消息管理模块06还用于:
接收管理端发送的用户兴趣模型查询请求;
基于所述用户兴趣模型查询请求从数据库和/或redis中获取相应的用户兴趣模型返回至管理端,所述管理端对用户兴趣模型进行订正。
在本发明实施例中,长连接服务模块04具体用于:
接收用户端发送的用户数据请求;
根据所述用户数据请求获取建立长连接的连接信息;
基于所述建立长连接的连接信息,与用户端建立长连接。
在本发明实施例中,长连接服务模块04具体用于:
接收sockjs的用户端发送的创建长连接请求;
基于所述创建长连接请求,与用户端建立websocket双通道的连接。
在本发明实施例中,消息管理模块06具体用于:
从消息中间件中的消息队列中获取每一条推送消息,其中,业务服务系统将推送消息发送至消息中间件中。
在本发明实施例中,消息管理模块06还用于:
对推送消息进行处理。
在本发明实施例中,消息管理模块06具体用于:
基于推送消息的消息类型,确定用户兴趣模型中对应的用户身份标识;
将用户身份标识存入用户身份标识列表;
基于所述用户身份标识列表,通过长连接向相应的用户端推送消息。
在本发明实施例中,消息管理模块06具体用于:
在通过长连接向用户端推送消息之前,接收用户端发送的初始化消息请求;
根据所述初始化消息请求获得初始化消息;
将初始化消息返回至用户端。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述用户实时推荐方法。
本发明实施例提供的计算机设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该计算机设备可以参照用户实时推荐方法的实施及用户实时推荐装置,其内容被合并于此,重复之处不再赘述。
图18为本发明实施例的计算机设备600的系统构成的示意框图。如图18所示,该计算机设备600可以包括中央处理器100和存储器140;存储器140耦合到中央处理器100。值得注意的是,该图是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
如图18所示,该计算机设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,计算机设备600也并不是必须要包括图18中所示的所有部件;此外,计算机设备600还可以包括图18中没有示出的部件,可以参考现有技术。
如图18所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制计算机设备600的各个部件的操作。
其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向计算机设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行计算机设备600的操作的流程。
存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由计算机设备使用的数据。存储器140的驱动程序存储部144可以包括计算机设备的用于通信功能和/或用于执行计算机设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一计算机设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述所述用户实时推荐方法的步骤。
本发明实施例中,与现有技术中将用户进行固定分组,然后对分组内的用户推送消息的技术方案相比,通过接收业务服务系统发送的用户业务数据,基于所述用户业务数据计算用户兴趣模型;与用户端建立长连接;接收业务服务系统发送的推送消息,基于用户兴趣模型和推送消息,通过长连接向用户端推送消息。本发明结合用户兴趣挖掘和长连接实时推送,解决基于用户兴趣的实时、定向的信息推送,有效提高用户友好度和体验度。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种用户实时推荐方法,其特征在于,包括:
接收业务服务系统发送的用户业务数据,基于所述用户业务数据计算用户兴趣模型;
与用户端建立长连接;
接收业务服务系统发送的推送消息,基于用户兴趣模型和推送消息,通过长连接向用户端推送消息。
2.如权利要求1所述的用户实时推荐方法,其特征在于,接收业务服务系统发送的用户业务数据,包括:
从消息中间件中的业务数据队列中获取每一条用户业务数据,其中,业务服务系统将用户业务数据发送至消息中间件中。
3.如权利要求1所述的用户实时推荐方法,其特征在于,还包括:
对所述用户业务数据进行处理。
4.如权利要求1所述的用户实时推荐方法,其特征在于,基于所述用户业务数据计算用户兴趣模型,包括:
根据所述用户业务数据确定用户标签值,基于所述用户标签值确定用户模型;
计算用户模型与预设消息的标签向量的相似度;
将所述相似度与相似度阈值进行比较,基于比较结果确定用户兴趣模型。
5.如权利要求4所述的用户实时推荐方法,其特征在于,将所述相似度与相似度阈值进行比较,基于比较结果确定用户兴趣模型,包括:
将所述相似度与相似度阈值进行比较,当所述相似度大于相似度阈值时,确定相应的预设消息的标签向量对应的消息类型所对应的用户兴趣模型。
6.如权利要求4或5所述的用户实时推荐方法,其特征在于,所述用户兴趣模型为{key:用户ID,value:[消息类型1,消息类型2,消息类型3]}。
7.如权利要求1所述的用户实时推荐方法,其特征在于,还包括:
将所述用户兴趣模型存储至数据库和/或redis中。
8.如权利要求7所述的用户实时推荐方法,其特征在于,还包括:
接收管理端发送的用户兴趣模型查询请求;
基于所述用户兴趣模型查询请求从数据库和/或redis中获取相应的用户兴趣模型返回至管理端,所述管理端对用户兴趣模型进行订正。
9.如权利要求1所述的用户实时推荐方法,其特征在于,与用户端建立长连接,包括:
接收用户端发送的用户数据请求;
根据所述用户数据请求获取建立长连接的连接信息;
基于所述建立长连接的连接信息,与用户端建立长连接。
10.如权利要求1所述的用户实时推荐方法,其特征在于,与用户端建立长连接,包括:
接收sockjs的用户端发送的创建长连接请求;
基于所述创建长连接请求,与用户端建立websocket双通道的连接。
11.如权利要求1所述的用户实时推荐方法,其特征在于,接收业务服务系统发送的推送消息,包括:
从消息中间件中的消息队列中获取每一条推送消息,其中,业务服务系统将推送消息发送至消息中间件中。
12.如权利要求1所述的用户实时推荐方法,其特征在于,还包括:
对推送消息进行处理。
13.如权利要求1所述的用户实时推荐方法,其特征在于,基于用户兴趣模型和推送消息,通过长连接向用户端推送消息,包括:
基于推送消息的消息类型,确定用户兴趣模型中对应的用户身份标识;
将用户身份标识存入用户身份标识列表;
基于所述用户身份标识列表,通过长连接向相应的用户端推送消息。
14.如权利要求1所述的用户实时推荐方法,其特征在于,在通过长连接向用户端推送消息之前,还包括:
接收用户端发送的初始化消息请求;
根据所述初始化消息请求获得初始化消息;
将初始化消息返回至用户端。
15.一种用户实时推荐装置,其特征在于,包括:
用户兴趣管理模块,用于接收业务服务系统发送的用户业务数据,基于所述用户业务数据计算用户兴趣模型;
长连接服务模块,用于与用户端建立长连接;
消息管理模块,用于接收业务服务系统发送的推送消息,基于用户兴趣模型和推送消息,通过长连接向用户端推送消息。
16.一种用户实时推荐系统,其特征在于,包括:权利要求15所述的用户实时推荐装置、业务服务系统和用户端。
17.如权利要求16所述的用户实时推荐系统,其特征在于,还包括:消息中间件。
18.如权利要求16所述的用户实时推荐系统,其特征在于,还包括:管理端。
19.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至14任一所述用户实时推荐方法。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至14任一所述用户实时推荐方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110875530.0A CN113553511A (zh) | 2021-07-30 | 2021-07-30 | 用户实时推荐方法、装置、系统、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110875530.0A CN113553511A (zh) | 2021-07-30 | 2021-07-30 | 用户实时推荐方法、装置、系统、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113553511A true CN113553511A (zh) | 2021-10-26 |
Family
ID=78133442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110875530.0A Pending CN113553511A (zh) | 2021-07-30 | 2021-07-30 | 用户实时推荐方法、装置、系统、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113553511A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113848748A (zh) * | 2021-11-15 | 2021-12-28 | 苏州蓝赫朋勃智能科技有限公司 | 一种智能家居控制方法和智能家居系统 |
CN114205323A (zh) * | 2021-12-13 | 2022-03-18 | 厦门傲播网络科技有限公司 | 一种体育消息推送处理方法及推送处理系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108683653A (zh) * | 2018-05-07 | 2018-10-19 | 常熟市第人民医院 | 一种基于WebSocket的主动式消息推送系统 |
CN111737029A (zh) * | 2020-06-23 | 2020-10-02 | 中国建设银行股份有限公司 | 一种服务端、数据推送方法、数据推送系统 |
WO2021027143A1 (zh) * | 2019-08-14 | 2021-02-18 | 平安科技(深圳)有限公司 | 信息推送方法、装置、设备及计算机可读存储介质 |
CN112417274A (zh) * | 2020-11-17 | 2021-02-26 | 中国建设银行股份有限公司 | 一种消息推送方法、装置、电子设备及存储介质 |
CN113157466A (zh) * | 2021-04-27 | 2021-07-23 | 上海销氪信息科技有限公司 | 一种消息推送方法、装置、系统、电子设备和存储介质 |
-
2021
- 2021-07-30 CN CN202110875530.0A patent/CN113553511A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108683653A (zh) * | 2018-05-07 | 2018-10-19 | 常熟市第人民医院 | 一种基于WebSocket的主动式消息推送系统 |
WO2021027143A1 (zh) * | 2019-08-14 | 2021-02-18 | 平安科技(深圳)有限公司 | 信息推送方法、装置、设备及计算机可读存储介质 |
CN111737029A (zh) * | 2020-06-23 | 2020-10-02 | 中国建设银行股份有限公司 | 一种服务端、数据推送方法、数据推送系统 |
CN112417274A (zh) * | 2020-11-17 | 2021-02-26 | 中国建设银行股份有限公司 | 一种消息推送方法、装置、电子设备及存储介质 |
CN113157466A (zh) * | 2021-04-27 | 2021-07-23 | 上海销氪信息科技有限公司 | 一种消息推送方法、装置、系统、电子设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113848748A (zh) * | 2021-11-15 | 2021-12-28 | 苏州蓝赫朋勃智能科技有限公司 | 一种智能家居控制方法和智能家居系统 |
CN114205323A (zh) * | 2021-12-13 | 2022-03-18 | 厦门傲播网络科技有限公司 | 一种体育消息推送处理方法及推送处理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108282529B (zh) | 发布和订阅数据的系统、方法和装置 | |
CN1988535B (zh) | 文件存储同步方法、系统及客户端 | |
CA2710036C (en) | A method and system for the delivery of large content assets to a mobile device over a mobile network | |
CN109710905B (zh) | 文档协同编辑方法、装置、存储介质及电子设备 | |
CN113553511A (zh) | 用户实时推荐方法、装置、系统、设备及可读存储介质 | |
WO2022111027A1 (zh) | 视频获取方法、电子设备及存储介质 | |
CN109462640B (zh) | 一种元数据同步方法、数据端、交互系统及介质 | |
US10997000B1 (en) | Event publishing system for heterogeneous events | |
US11706498B2 (en) | Playback method, system, device and readable storage medium of live broadcast content | |
CN110365587B (zh) | 设备间通信方法、装置、设备和存储介质 | |
CN113138995A (zh) | 微服务集群中更新通知方法及装置 | |
CA2881123A1 (en) | Message synchronization with extended properties | |
CN103179190A (zh) | 一种图片传输方法、装置和系统 | |
CN109525622B (zh) | 分片资源id的生成方法、资源分享方法,装置及电子设备 | |
CN107579929B (zh) | 一种可靠连接通信队列对的设置方法、系统及相关装置 | |
CN112328413A (zh) | 应用服务的调用方法、装置及系统 | |
CN106899605B (zh) | 基于stomp协议的通信方法和装置 | |
CN111436009B (zh) | 一种实时视频流传送、显示方法以及传送和播放系统 | |
US20210185401A1 (en) | Preload hinting for low latency http live streaming system | |
CN110677443A (zh) | 数据发送和接收方法、发送端、接收端、系统及存储介质 | |
CN113783913A (zh) | 一种消息推送管理方法和装置 | |
CN103327026A (zh) | 一种数据更新方法和更新系统 | |
CN107040455B (zh) | 一种基于redis的即时消息通讯方法和系统 | |
CN114900489B (zh) | 一种消息处理方法、装置、电子设备及存储介质 | |
CN104735643A (zh) | 一种信息处理的方法及数据服务器 |
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 |