摘要:
# 设计原则 ## 1.开闭原则 **对扩展开放,修改关闭**。在程序需要扩展的时候,不能去修改原有代码,实现一个热插拔的效果。为了使程序的扩展性好,易于维护和升级 为了达到这样的效果,我们需要使用接口和抽象类 ## 2.里氏代换原则 **任何基类可以出现的地方,子类一定可以出现。**也就是子类继承 阅读全文
摘要:
# 创建者模式 创建者模式的主要关注点是“怎样创建对象”,主要特点是“将对象的创建与使用分离” 这样可以降低系统的耦合度,使用者不关心对象的创建细节 创建者模式可以分为: + 单例模式 + 工厂模式 + 抽象工程模式 + 原型模式 + 建造者模式 ## 单例设计模型 涉及到一个单一的类,该类**负责 阅读全文
摘要:
# Java的部分八股 ## 1.Hashmap和Hashtable的区别 1.安全性 hashtable是线程安全的,hashmap是非线程安全的 但是hashmap的性能高于hashtable 多线程下使用hashmap需要使用一个线程安全的集合 2.容量部分 Hashmap的初始容量为16,h 阅读全文
摘要:
# Redis使用细节 ## 分布式锁 因为Redis是单线程的,所以可以用setnx来模拟锁的获取释放从而实现分布式锁 在用setnx实现分布式锁时,会出现一些问题 + 业务超时解锁,导致并发问题。业务执行时间超过了锁超时的时间 + redis主从切换临界点问题,主从切换后,A持有的锁还没有同步到 阅读全文
摘要:
# GNN学习 Knowledge Graph Embedding 前面提到的方法都是只有一种边的类型,接下来要扩展到有向,多种边的类型的图上,即异质图(heterogeneous graph) 异质图有这样的几种类型: + Relational GCNs + Knowledge Graphs + 阅读全文
摘要:
# GNN学习 GNN理论 ## 增强GNN的表现力 GCN=mean-pool+Linear+ReLU1 GraphSAGE=MLP+max-pool 问题: GNN节点embedding能否区分不同节点的局部邻居结构,在什么情况下会区分失败 接下来讲GNN如何捕获局部邻居结构 ### 计算图 G 阅读全文
摘要:
# GNN学习 GNN增强和训练 ## 1.图增强 分为结构增强和特征增强 原始的图数据可能并不适合直接用于GNN 特征层面: + 输入图可能缺少特征 结构层面: + 图过于稀疏,导致信息传递效率低 + 图过于稠密,导致信息传递代价太高 + 图可能太大,导致GPU装不下 输入图很难是恰好适宜embe 阅读全文
摘要:
# GNN学习 GNN Layer ## GNN的通用框架 + 1.对GNN的一个网络层进行信息转换和信息聚合两个操作 + 2.连接GNN的网络层 + 3.图增强,分为图特征增强和图结构增强 + 4.学习目标,有监督学习还是无监督学习,节点/边/图级别 ## 1.信息转换和信息聚合 GNN Laye 阅读全文
摘要:
# GNN学习 GNN Model 这部分主要讲如何使用图神经网络GNN来进行节点嵌入 我们首先会想到,将邻接矩阵和特征合并到一起应用到深度神经网络上,问题在于: + 需要O(|V|)的参数 + 不适用于不同大小的图 + 对节点顺序敏感 我们可以将卷积神经网络泛化到图上,并应用的节点特征数据 但是图 阅读全文
摘要:
# Redis分片集群 Redis主从虽然解决了高可用,高并发读的问题,但是依然有问题没有解决 + 海量数据存储 + 高并发写 分片集群特征 + 集群中有多个master,每个master保持不同数据 + 每个master都可以有多个slave节点 + master之间通过ping监测彼此健康状态 阅读全文