本发明涉及一种基于隐半马尔可夫模型的药品推荐方法。
背景技术:
基于云计算和大数据技术的医药聚合供应链协同平台是药品全产业链大数据资源和公共服务云平台,具有大数据融合和存储、平台大数据挖掘与应用、药品监管和行业信息集成等功能,整合了医药供应链企业的资源,有利于规范医药网上交易市场经济秩序,促进药品全产业链健康、良性地发展。在医药大数据应用服务快速发展的形势下,如何为用户提供精准医药服务成为各大医药平台亟需解决的关键问题,而现有解决方法一般存在推荐结果的相关性不够准确等缺陷。
技术实现要素:
本发明针对现有技术的不足,提供一种基于隐半马尔可夫模型的药品推荐方法。该方法首先根据可观测的用户在云平台上的网络行为序列,预测用户关注的病情,再根据用户最关注的病情向用户推荐相关的药品;其解决医药聚合供应链协同平台上用户药品精准推荐的问题。
为了达到上述目的,本发明一种基于隐半马尔可夫模型的药品推荐方法,主要包括以下步骤:
第一步、训练数据预处理,即对用户在医药平台的上网行为数据进行数据清洗,生成用户行为序列的训练数据集;
第二步、对药品推荐模型的参数进行估计;
第三步、采集用户在医药平台的上网行为序列;
第四步、以用户的上网行为序列为观测值,使用训练好的药品推荐模型推断用户的状态序列;
第五步、计算状态序列的各状态的期望持续时间;
第六步、将所得的各状态的期望持续时间按降序排序,得到用户最关注的前复数个状态,即用户最关注的前复数种病情;
第七步、根据用户最关注的前复数种病情,向用户推荐相应的药品。
优选地,所述药品推荐模型为基于隐半马尔可夫模型的模型。
优选地,所述药品推荐模型的参数模型表示为:θ={π,A,B};其中,π为初始模型的初始状态概率,A为状态转移概率,B为观测概率。
优选地,所述对药品推荐模型的参数进行估计的方法为前向后向算法。
优选地,所述第四步使用训练好的药品推荐模型推断用户的状态序列的推断方法为基于Viterbi算法。
所谓观测值空间,为用户在医药聚合供应链协同平台上的在线行为序列,表示为x=x1,x2,...,xT,包括用户在APP、医药云平台以及机器人等系统或平台上的浏览的页面、访问的资源或提出的问题等。所谓状态的取值空间,为用户关注的病情,表示为y=y1,y2,...yn。
本发明由用户在云平台上的在线行为,准确预测用户关注的病情,再根据用户最关注的病情向用户推荐相关的药品,从而提高药品推荐结果的相关性。
附图说明
图1为本发明基于隐半马尔可夫模型的药品推荐方法的流程示意图。
具体实施方式
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
所谓观测值空间,为用户在医药聚合供应链协同平台上的在线行为序列,表示为x=x1,x2,...,xT,包括用户在APP、医药云平台以及机器人等系统或平台上的浏览的页面、访问的资源或提出的问题等。所谓状态的取值空间,为用户关注的病情,表示为y=y1,y2,...yn。
所述药品推荐模型的参数模型表示为:θ={π,A,B};其中,π为初始模型的初始状态概率,A为状态转移概率,B为观测概率。
为了方便描述模型,本发明采用以下表示符号:
1)t:t+d表示从t开始一直到t+d的时间序列,即t,t+1,...,t+d。
2)S[t-d+1:t]=j表示[t-d+1,t]时间区间上的状态为j,且t+1和t-1的状态都不为j。
3)St]=j表时间t及其之前的状态为j,且t+1的状态不为j。
4)S[t=j表示时间t及其之后的状态为j,且t-1的状态不为j。
药品推荐模型的参数估计任务是由采集到的用户在线行为序列估计出对应的隐半马尔可夫模型的参数。本发明采用前向后向算法解决医药推荐模型的参数估计问题,具体如下所述。
1)定义前向后向变量:
αt(j,d)=P[St-d+1:t=j,o1:t|θ];
βt(j,d)=P[ot+1:T|St-d+1:t=j,θ]。
2)前向后向算法的初始化:
α1(j,d)=πj,
βT(j,d)=1。
3)迭代推导过程:
4)计算中间变量:
ηt(j,d)=P[S[t-d+1:t]=j,o1:T|λ]=αt(j,d)βt(j,d);
ξt(i,d';j,d)=P[St]=i,S[t+1:t+d]=j,o1:T|λ]=αt(i,d')a(i,d')(j,d)bj,d(ot+1:t+d)βt+d(j,d);
5)参数更新公式
其中,当时,否则
给定用户的行为序列,是基于Viterbi算法提取较好的用户兴趣序列y=y1,y2,...yt。
计算状态i的期望持续时间为:可以显示用户在某个状态的总的期望时间,即可以反映了用户关注某种病情的程度。一般地,用户对某个病情的关注程度高低与该病情所对应的状态的期望持续时间长度成正比。
参照图1,本发明实施例一种基于隐半马尔可夫模型的药品推荐方法,主要包括以下步骤:
第一步、训练数据预处理,即对用户在医药平台的上网行为数据进行数据清洗,生成用户行为序列的训练数据集;
第二步、对药品推荐模型的参数进行估计;
第三步、采集用户在医药平台的上网行为序列;
第四步、以用户的上网行为序列为观测值,使用训练好的药品推荐模型推断用户的状态序列;
第五步、计算状态序列的各状态的期望持续时间
第六步、将所得的各状态的期望持续时间按降序排序,得到用户最关注的前N个状态,即用户最关注的前N种病情;
第七步、根据用户最关注的前复数种病情,向用户推荐相应的药品。
所述药品推荐模型为基于隐半马尔可夫模型的模型。所述对药品推荐模型的参数进行估计的方法为前向后向算法。所述第四步使用训练好的药品推荐模型推断用户的状态序列的推断方法为基于Viterbi算法。
本发明实施例由用户在云平台上的在线行为,准确预测用户关注的病情,再根据用户最关注的病情向用户推荐相关的药品,从而提高药品推荐结果的相关性。
以上已将本发明做一详细说明,但显而易见,本领域的技术人员可以进行各种改变和改进,而不背离所附权利要求书所限定的本发明的范围。