欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2019103219687
申请人: 北京工业大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2025-03-05
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种考虑用户评价的资源或服务推荐方法,包括四个模块:用户特征编码模块(1)、资源或服务编码模块(2)、Encoder模块(3)、Decoder模块(4);

(1)用户特征编码模块:

该模块将用户特征语句通过分词之后进行多层次编码,其中word-embedding使用word2vec中的Skip-Gram形式,position-embedding使用cos、sin函数得到位置编码,将两种编码方式按位相加得到用户特征的输入向量;

(2)资源或服务编码模块:

该模块将用户特征语句所对应的资源或服务数据进行多层次编码,其中onehot-embedding编码将该用户所使用的所有资源或服务信息设置为1其他设置为0,QOE-embedding使用softmax得到当前资源或服务向量的重要性程度概率、QOS-embedding使用softmax得到当前资源或服务向量的重要性程度概率,将三种编码方式按位相乘得到最终资源或服务的输入向量;

(3)Encoder模块:

该模块将用户特征向量作为输入,得到中间的隐藏向量;Encoder结点的结构为Encoder Mulit-Head Self-Attention层、全连接层,在每一层均使用了残差结构;Encoder端为相同的若干个Encoder结点串行组成;

(4)Decoder模块:

该模块将资源或服务向量与Encoder端的中间隐藏向量作为输入,得到最终得到输出向量通过softmax得到推荐结果;Decoder结点的结构为Decoder Mulit-Head Self-Attention层、Encoder-Decoder Self-Attention层、全连接层,在每一层均使用了残差结构;Decoder端为相同的若干个Decoder结点串行组成。

2.根据权利要求1所述的一种考虑用户评价的资源或服务推荐方法,其特征在于步骤(1),具体如下:该模块将用户输入的语句转变为Encoder端的输入向量;具体做法为将输入的语句以词的级别先进行word-embedding,word-embedding模型采用Google公司开源的词向量库;

对输入的语句做position-embedding,其具体公式如下:

其中pos为单词在句子中的位置,k为单词的维度,dmodel为模型常数,设为100,PE结果为第pos个单词第k个位置上的位置编码结果;

将每个单词计算得到的word-embedding向量与position-embedding向量按位相加得到用户特征的输入向量Xembedding。

3.根据权利要求1所述的一种考虑用户评价的资源或服务推荐方法,其特征在于步骤(2),具体如下:该模块将资源或服务输入转变为Decoder端的输入向量;用该用户所对应的资源或服务数据按照有无采用onehot-embedding,即当存在某个资源或服务时在该资源或服务所对应的编码位置设置为1否则设置为0;QOE-embedding为用户体验质量编码,采用softmax的形式计算该用户使用的的所有资源或服务中的重要性加权评分,其具体的公式如下所示:其中m为第m个资源或服务的序号,QOEm为第m个资源或服务的用户质量评分,通过softmax的得到该资源或服务的重要性加权评分 得到所有的资源或服务的重要性加权评分得到QOE-embedding编码向量;

QOS-embedding为服务质量编码,采用softmax的形式计算该用户使用的所有资源或服务的中的重要性加权评分,其具体公式如下所示:其中p为第p个资源或服务的序号,QOSp为第p个资源或服务的服务质量评分,通过softmax的得到该资源或服务的重要性加权评分 得到所有的资源或服务的重要性加权评分得到QOS-embedding编码向量;

将得到onehot-embedding与QOE-embedding与QOS-embedding按位相乘得到资源或服务的输入向量Yembedding。

4.根据权利要求1所述的一种考虑用户评价的资源或服务推荐方法,其特征在于步骤(3),具体如下:该模块以用户特征输入向量为输出,输出中间向量给Decoder模块;附图2为具体的Encoder节点结构;在Encoder端有numEncoder个Encoder节点组成,其设置为6个;具体的Encoder节点包括Mulit-Head Self-Attention层、全连接层两层结构,并且在每一层均采用了残差网络结构;在Mulit-Head Self-Attention层中共由numAttention个注意力矩阵组成,其设置为6个;将用户特征输入向量按位分割为6个短向量,将每个短向量输入对应的注意力矩阵中得到所对应的短注意向量,将6个短注意力向量拼接在一起通过残差网络得到该节点的最终注意力向量;将注意力向量通过具有残差网络的全连接层得到该节点的输出向量;对于前一个Encoder节点的输出向量作为输入向量输入到后一个Encoder节点;将最后一个Encoder节点的输出向量作为Encoder端的输出向量输入到Decoder端;

Encoder Mulit-Head Self-Attention层的具体公式如下所示:其中Xembeddingi为在Encoder端的第i个分割之后的短向量,i为Encoder端的短向量序号与对应的注意力矩阵序号;

在公式(5)中, 为在Encoder节点中的Key矩阵, 为得到的在Encoder节点key向量;

在公式(6)中, 为在Encoder节点Query矩阵, 为得到的在Encoder节点query向量;

在公式(7)中, 为在Encoder节点Value矩阵, 为得到的在Encoder节点value向量;

在公式(8)中, 为在Encoder节点的第i个注意力矩阵得到注意力短向量,将所有的注意力短向量拼接起来得到该节点的最终注意力向量AttentionE;

在公式(9)中,将得到的最终注意力向量AttentionE与输入向量Xembedding按位相加得到该层的输出向量全连接层的具体公式如下所示:

在公式(10)中, 为全连接层矩阵,bx为该公式中的偏置,Xout为该节点的输出向量;

对于每一个Encoder节点的输出向量都作为输入向量输入到下一个Encoder节点中,对于最后一个Encoder节点其输出向量将作为中间向量输入到Decoder端中;

在Encoder端中的所有矩阵与偏置均采用截断的高斯分布输入网络,当参数收敛或得到最大迭代次数50次时停止训练;在Encoder端中的所有向量长度均设置为500。

5.根据权利要求1所述的一种考虑用户评价的资源或服务推荐方法,其特征在于步骤(4),具体如下:该模块以资源或服务的输入向量与Encoder端的输出向量为输入,输出最终的隐层向量得到最后的推荐结果;Decoder端由numDecoder个Decoder结点,设置为6;Decoder结点的结构为Decoder Mulit-Head Self-Attention层、Encoder-Decoder Self-Attention层、全连接层,在每一层均使用了残差结构;在Decoder Mulit-Head Self-Attention层中共由numAttention个注意力矩阵组成,其设置为6;将资源或服务输入向量按位分割为6个短向量,将每个短向量输入对应的注意力矩阵中得到所对应的短注意向量,将6个短注意力向量拼接在一起通过残差网络得到该节点的最终注意力向量;将注意力向量通过具有残差网络的全连接层得到该节点的输出向量;对于前一个Decoder节点的输出向量作为输入向量输入到后一个Decoder节点;最后的一个Decoder节点的输出向量作为最终的输出向量,通过softmax层得到最终分类向量,将分类向量中数值最大的前K个资源或服务作为该用户的推荐资源或服务,K设置为6;

Decoder Mulit-Head Self-Attention层的具体公式如下所示:其中Yembeddingj为在Decoder端的第j个分割之后的短向量,j为Decoder端短向量序号与对应的注意力矩阵序号;

在公式(11)中, 为在Dncoder节点中的Key矩阵, 为得到的在Dncoder节点key向量;

在公式(12)中, 为在Dncoder节点Query矩阵, 为得到的在Dncoder节点query向量;

在公式(13)中, 为在Dncoder节点Value矩阵, 为得到的在Dncoder节点value向量;

在公式(14)中, 为在Dncoder节点的第j个注意力矩阵得到注意力短向量,将所有的注意力短向量拼接起来得到该节点的最终注意力向量AttentionD;

在公式(15)中,将得到的最终注意力向量AttentionD与输入向量Yembedding按位相加得到该层的输出向量Encoder-Decoder Self-Attention层的具体公式如下所示:

在公式(16)中, 为该层权重矩阵,by为该层偏置, 为上一层的最终注意力向量输出向量,Xout为Encoder节点的输出向量,YED为该层的输出向量;

全连接层的具体公式如下所示:

在公式(17)中, 为该层的权重矩阵,YED为上一层的输出向量,by为该层的偏置,Yout为该层的输出向量;

每一个Decoder节点的输出向量作为下一个Decoder节点的输入向量,最后一个的Decoder节点的输出向量Youtfinally为最终的输出向量;将最终的输出向量Youtfinally做softmax操作,将分类向量中数值最大的前K个资源或服务作为该用户的推荐资源或服务,K设置为6;

在Decoder端中的所有矩阵与偏置采用截断的高斯分布做初始化,当参数收敛或者达到最大迭代次数50次时结束训练;在Decoder端中所有的向量长度均设置为500;最终的输出向量长度为资源或服务数据个数的长度,设置为2000。