1.一种基于矩阵分解的食物-疾病关联预测方法,其特征在于包括以下步骤:
步骤1:利用成分表构建食物相似度网络W1;
步骤2:利用国际疾病分类数据构建疾病相关度网络W2;
步骤3:正则化食物相似度网络,得到正则化的食物相似度网络
步骤4:正则化疾病相关度网络,得到正则化的疾病相关度网络
步骤5:构造已知的二元食物-疾病关联网络
步骤6:随机初始化要预测的食物-疾病关联矩阵Y;
步骤7:引入捕捉食物相似度真实情况的拟合矩阵S1和疾病相关度真实情况的拟合矩阵S2,迭代学习模型参数,输出预测的食物-疾病关联矩阵Y、食物相似度真实情况的拟合矩阵S1和疾病相关度真实情况的拟合矩阵S2;
所述步骤1的具体实现方法为:将每一个节点设置为“食物-量-食用方法”的组合,在“量-食用方法”不同的情况下,将两两节点关系置为0;在“量-食用方法”相同的情况下,根据食物成分表,利用余弦公式,计算两两食物之间的相似度,作为节点关系值,从而得到食物相似度网络W1;
所述步骤2的具体实现方法为:根据国际疾病分类数据,如果两种疾病同属同一类目,则相关度设置为k,如果两种疾病同属同一亚目,则相关度设置为2k,如果两种疾病同属同一细目,则相关度设置为3k,其中3k∈(0,1),从而得到疾病相关度网络W2;
所述步骤3的具体实现方法为:设n为“食物名-量-食用方法”的组合数,W1∈Rn×n是食物相似度网络,则W1用于构造正则化的食物相似度网络 为: 其中,D1是W1的对角化矩阵,对角线上元素为对应的W1的行和;
所述步骤4的具体实现方法为:设m为疾病数,W2∈Rm×m是疾病相关度网络,则W2用于构造正则化的疾病相关度网络 为: 其中,D2是对角化矩阵,对角线上元素为对应的W2的行和;
所述步骤5的具体实现方法为:设已知的食物-疾病关联由二进制矩阵 表示,将细化食物与疾病的关联,利用“食物名-量-食用方法-疾病”进行建模,对于已验证关联的四元组设置为1,否则为0;
所述步骤6的具体实现方法为:通过对食物-疾病关联矩阵Y中的每一个值赋予0-1之间的任意数作为初始化;
所述步骤7的具体实现方法为:对食物-疾病关联进行建模,在建模过程中进行如下设定:相似度高的食物可能会导致同一个疾病、同一种食物可能会导致密切相似的疾病、食物相似度矩阵和疾病相关度矩阵的数值是含噪的;引入捕捉食物相似度真实情况的拟合矩阵S1和疾病相关度真实情况的拟合矩阵S2,在拟学习的食物-疾病关联矩阵Y上传播食物相似和疾病相似关系,设计如下损失函数:参照链式法则,交替优化Ψ1(Y,S1)和Ψ2(Y,S2),输出预测的食物-疾病关联矩阵Y、食物相似度真实情况的拟合矩阵S1、疾病相关度真实情况的拟合矩阵S2;
其中,Ψ1(Y,S1)、Ψ2(Y,S2)分别为食物-疾病关联矩阵Y与食物相似度真实情况的拟合矩阵S1的损失函数和食物-疾病关联矩阵Y与疾病相关度真实情况的拟合矩阵S2的损失函数;μ、ζ、ν、η分别为对应项的权重,权重均为人为指定的超参数;I为单位矩阵,该单位矩阵对角线元素全部为1,其他元素全部为0;tr(A)是矩阵A的主对角线上各个元素的总和;
是A矩阵中所有不为0的元素的平方和;YT是指Y矩阵的转置,即将矩阵Y中元素的角标前后交换。