Table of Contents
二、应用:神经-图协同过滤算法 Neural Graph Collaborative Filtering
写在前面
导师让我2周看6篇他发给我的paper,有关KG的构建和应用,应用主要在recommendation和drug方面的,然后2周后写个总结,写不好,估计就不要我啦T_T 这次主要看我和他方向和研究符不符合,对他做的东西感不感兴趣。To be honest,我也不晓得。兴趣这东西是我对这方面熟悉,有些了解,在这上面得到一些成就感,才会喜欢吧,至少我这么认为的~~
昨晚冒着被骂的风险把我简陋的总结发给导师,今早约谈,趁着还有时间再整理总结一下~
一、应用:药物之间的相互作用预测
Large-scale structural and textual similarity-based mining of knowledge graph to predict drug–drug interactions
下图是我看完paper的整理的图【如有误,请指出】
该paper主要讲利用KG链接预测药物之间的相互作用(DDI,drug-drug interaction)。
DDI预测的以前研究是基于特征向量,直接进行特征提取与选择,将实例的特征向量表示输入机器学习模型中;本文基于相似性度量,先计算drug-drug的相似度,再计算药物对与药物对之间的相似度(将已知有interaction的药物对与未知的药物对进行相似性度量)。
1.KG构建
- 数据集dataset:来自于不同的的格式(XML,relational,graph,CSV),来自不同的数据库(DrugBank,DailyMed,Comparative Toxicogenomics Database,Uniprot,BioGRID,Unified Medical Language System,Medical Subject Headings(MeSH),National Drug File)
- 语法歧义消除:可采用余弦相似性(cosine similarity)、编辑距离(edit distance)、语言模型技术(language model)等;
- 余弦相似性:将词向量化(embedding)后计算两个向量夹角的余弦值cos(θ)=(A·B)/(|A|·|B|),范围为[0,1]
- 编辑距离:将一个词转为另外一个词时所需的最少编辑次数,即代价;相似度计算=1-(1/max(str1,str2));
- 语言模型技术:包括语言文法模型、统计语言模型(N-gram model、unigram model、bigram model、trigram);用于计算一个橘子的概率大小,即量化该句子是否符合人说出来的自然语句,得分越高,句子越好。
- 语义分析:检查实体的概念属性,语义分析的目的?
- 数据集成:将上述不同来源于不同格式的数据融合,采用链接开放数据法(Linked Open Data methodology)
2.药物相似性度量
本文模型训练的数据是采用相似性度量值作为模型输入,而作相似性度量前需进行特征工程,这里采用局部特征和全局特征。
- 局部特征:根据有关药物直接相关的可用信息(化学结构、药物靶、作用机理、生理效应等)来设计特征。
- IDF:逆向文件频率(inverse document frequency),原用于处理文本,表示该词在所有文档中出现的次数,次数越多,表示该词越常见越不重要,如‘的’、‘a’等词。在这里,用IDF来处理权重,即在某一特征中,利用IDF加重罕见信息(如作用机理)的权重。
- cosine similarity:对直接相关特征IDF处理后进行余弦相似性度量,如:Mechainsm of action,IDF(t,Drugs),再对moa(d1)和moa(d2)余弦相似性度量;
- 全局特征:
- 词嵌入:使用Word2vec中的Skip-gram模型——基于神经网络的词的分布表示
- word2vec:两层神经网络,用于词的向量化,是实现CBOW和skip-gram语言模型的工具
- skip-gram模型:根据某个词预测上下文,,相比CBOW(根据上下文预测某个词)有更准确的表示
- 图嵌入:TransH、HolE——知识表示
- TransH:将知识嵌入到某个超平面,使得一个实体在不同关系下有不同的表示,h+r=t(用预定义的特征评分函数来评估KG三元组的正确性,该过程中对实体/关系向量化)
- HolE:将关系矩阵压缩为矢量(It represents a pair of entities (a, b) using the circular correlation (a compression of the tensor product) of their vectors)
- 词嵌入:使用Word2vec中的Skip-gram模型——基于神经网络的词的分布表示
3.模型
- 逻辑回归模型 Logistic regression:通过sigmoid()函数处理二分类问题的线性回归模型
- 数据不平衡:设置DDI发生率在10%~30%;模型调参
- 评估:用F1-score和AUPR进行模型评估
- 结果:DDI发生率在30%、特征组合以及结合本地和全局嵌入时训练的模型效果最佳
早上脑子有点不清醒,突然发现自己总结的都是什么乱七八糟的东西......还得继续努力学习啊!下午再继续把东西搬上来,现在去看昨天自己写的东西啦~~
emmmm肥来了,早上聊的还行,虽然没聊啥,但是我的态度让老师还挺满意的吧,我就闭眼瞎讲hhhhhhh接下来继续学习,要复现一篇论文.....难度指数upupup
代码,数据,算法搞起来!!
二、应用:神经-图协同过滤算法 Neural Graph Collaborative Filtering
1.概念:
①collaborative signal:user-item interaction中的隐性因子;
②embedding propagation:learning better user and item representations;
③High-order connectivity:利用多层layer结构更好地为user推荐item;
④collaborative filtering:an estimation of how likely a user will adopt an item based on the historical interactions
2.NGCF算法:
①NGCF: exploits the user-item graph structure by propagating embeddings on it. This leads to the expressive modeling of high-order connectivity in user-item graph, effectively injecting the collaborative signal into the embedding process in an explicit manner.
②Improvement:
existing method:build the embedding function with the descriptive features
MGCF: build the embedding function with the user-item interaction
3.主要推荐算法
这边看了reference里的一些论文和参考一些资料,自己总结的。
CF模型介绍与比较
CF模型关键两个要点:embedding(将描述性特征转化为向量)和interaction modeling(向量的相似性度量)
1.Model-based CF Methods:
- 矩阵分解MF:又为Latent Factor Model(LFM),主要思想:计算user对各个latent factor的preference程度(p1,p2,…,pn)(即隐性向量),再计算item在各个latent factor上的概率分布(q1,q2,…,qn),最后将两个向量inner product【对user与item之间的interaction建模】
- 神经CF模型(NeuCF):通过用神经结构代替内积,可以从数据中拟合任意连续函数,使用multi-layer perceptron去学习用户-项目之间交互函数(即non-linearities);具体算法:Generalized Matrix Factorization(GMF)、Multi-Layer Perceptron(MLP)和Neural Collaborative Litering(NCL);NCF框架为:Input layer;Embedding layer;Neural CF layers;Output layer【如下图】
- translation-based CF model:使用Euclidean distance metric作为交互函数,如LRML、TransRec等算法
- Latent Relational Metric Learning(LRML ):主要思想:对于每个user-item,生成latent relation vector r;再计算所有用户项对的关系向量之间的余弦相似度,并选择其中用户关系对之间的余弦相似度最高的用户项对。理想情况下,此向量r应该捕获每个隐式交互之间的隐藏语义,并通过neural attention mechanism在auxiliary memory module上学习
- TransRec: modeling third-order interactions between users, their previously consumed items, and their next item.(用一个模型来模拟用户,visited item,next item之间的三阶交互;对不同item之间的关系建模,进行item到item的推荐)
Note:MC(Markov Chain,马尔可夫链):对交互过程中的物品对进行建模,通常通过对转移矩阵进行分解提高其泛化能力。FPMC:结合MF和MC
2. Graph-based CF Methods:exploit user-item interaction graph
- ItemRank和BIRank:定义标签作为interacted items,在historical item和target item之间建模,本质是neighbor-based methods
- itemRank:a random–walk based scoring algorithm
- BIRank:通过对user与item之间的二元关系进行建模,对item的受欢迎程度进行预测的一般排名方案,以及通过对user与item之间的三元关系进行建模,对item推荐进行个性化排名
- HOP-Rec(高阶邻近增强推荐):combine factorization-based( captures user preferences by factorizing the observed direct interactions between users and items ) and graph-based models( extracts indirect preferences from the graphs constructed by user-item interactions ).通过在user-item二元图中对用户进行随机游走来发现每个user附近item的高阶间接信息;【如左图】
- graph convolutional network(GCN):专门设计graph convolution operation用于user-item interaction graph(有GC-MC、Pinsage、SpetralCF);
- NGCF:利用user-item graph传播嵌入,进行高阶连通性的表达建模,以显示方式将协作信号注入到嵌入过程【如右图】
3.Memory-based CF Methods:
- Item-based: similar users which have similar ratings for similar items are found and then target user’s rating for the item which target user has never interacted is predicted.
- User-based:find similar items to items which target user already rated or interacted.
- CMN(collaborative memory network):a deep architecture to unify latent factor model and neighborhood-based structure in a nonlinear fashion;represent the neighborhood-based component with a Memory Network to capture higher order complex relations between users and items.
其他的就不搬上来了,这两篇作的总结还算可以看,但是不是特别详细,也不涉及算法,只是简单的一个描述~