tahamajs's picture
|
download
raw
11 kB
# CA10: Advanced Knowledge Graphs
## ๐ŸŽฏ Project Overview
A comprehensive implementation of **Advanced Knowledge Graph** systems with state-of-the-art embedding models, Graph Neural Networks, neural reasoning capabilities, and domain-specific applications. This project demonstrates cutting-edge knowledge graph technologies with practical implementations across healthcare, retail, and financial domains.
### ๐ŸŒŸ What are Knowledge Graphs?
Knowledge Graphs are structured representations of knowledge that capture entities, their attributes, and relationships between them. They enable:
- **Semantic Understanding**: Rich representation of domain knowledge
- **Reasoning**: Infer new facts from existing knowledge
- **Integration**: Connect disparate data sources
- **Explainability**: Transparent knowledge representation
**Example**:
- **Entities**: Person: "Albert Einstein", Concept: "Relativity"
- **Relation**: "discovered"
- **Triple**: (Albert Einstein, discovered, Relativity)
---
## โœจ Key Features
### Core Implementations
- โœ… **5+ Advanced Embedding Models** - TransE, DistMult, ComplEx, SimplE, RotatE, ConvE
- โœ… **4 GNN Architectures** - GCN, GAT, GraphSAGE, R-GCN
- โœ… **4 Neural Reasoning Methods** - Multi-hop, path ranking, neural-symbolic, reasoning chains
- โœ… **3 Domain Applications** - Healthcare, Retail, Financial knowledge graphs
- โœ… **LLM Integration** - Gemini API, LangChain, RAG systems
- โœ… **Interactive Visualizations** - Graph structure, embeddings, metrics
---
## ๐Ÿ“ Project Structure
```
CA10_knowledge_graphs/
โ”œโ”€โ”€ README.md # This file
โ”œโ”€โ”€ requirements.txt # Dependencies
โ”œโ”€โ”€ PROJECT_SUMMARY.md # Project summary
โ”‚
โ”œโ”€โ”€ notebooks/ # ๐Ÿ““ Jupyter Notebooks
โ”‚ โ”œโ”€โ”€ 01_Advanced_KG_Embeddings.ipynb
โ”‚ โ”œโ”€โ”€ 02_Graph_Neural_Networks.ipynb
โ”‚ โ””โ”€โ”€ CA10.ipynb
โ”‚
โ”œโ”€โ”€ src/ # ๐Ÿ”ง Source Code
โ”‚ โ”œโ”€โ”€ core/ # Core KG components
โ”‚ โ”‚ โ”œโ”€โ”€ knowledge_graph.py
โ”‚ โ”‚ โ””โ”€โ”€ scientific_kg.py
โ”‚ โ”œโ”€โ”€ models/ # Embedding and GNN models
โ”‚ โ”‚ โ”œโ”€โ”€ embeddings.py
โ”‚ โ”‚ โ””โ”€โ”€ graph_neural_networks.py
โ”‚ โ””โ”€โ”€ reasoning/ # Neural reasoning
โ”‚ โ”œโ”€โ”€ neural_reasoning.py
โ”‚ โ”œโ”€โ”€ langgraph_reasoning.py
โ”‚ โ””โ”€โ”€ rag_system.py
โ”‚
โ”œโ”€โ”€ demos/ # ๐ŸŽฎ Domain Applications
โ”‚ โ”œโ”€โ”€ healthcare_kg_project.py
โ”‚ โ”œโ”€โ”€ retail_kg_project.py
โ”‚ โ”œโ”€โ”€ financial_kg_project.py
โ”‚ โ””โ”€โ”€ comprehensive_kg_project.py
โ”‚
โ”œโ”€โ”€ scripts/ # ๐Ÿš€ Execution Scripts
โ”‚ โ””โ”€โ”€ run.sh
โ”‚
โ”œโ”€โ”€ integrations/ # ๐Ÿ”— LLM Integrations
โ”œโ”€โ”€ tests/ # ๐Ÿงช Test Suite
โ”œโ”€โ”€ docs/ # ๐Ÿ“‹ Documentation
โ”œโ”€โ”€ data/ # ๐Ÿ“Š Data and Results
โ”œโ”€โ”€ models/ # ๐Ÿ’พ Saved Models
โ””โ”€โ”€ config/ # โš™๏ธ Configuration
```
---
## ๐Ÿš€ Quick Start
### 1. Installation
```bash
cd CA10_knowledge_graphs
pip install -r requirements.txt
```
### 2. Run Main Project
```bash
cd scripts
./run.sh
```
### 3. Run Domain-Specific Projects
```bash
# Healthcare Knowledge Graph
python demos/healthcare_kg_project.py
# Retail Knowledge Graph
python demos/retail_kg_project.py
# Financial Knowledge Graph
python demos/financial_kg_project.py
# Comprehensive System
python demos/comprehensive_kg_project.py
```
### 4. Explore Notebooks
```bash
jupyter notebook notebooks/
```
---
## ๐Ÿ“š Core Components
### 1. Knowledge Graph Embeddings
#### Traditional Embeddings
- **TransE**: Translational embeddings (h + r โ‰ˆ t)
- **DistMult**: Bilinear diagonal model
- **ComplEx**: Complex-valued embeddings
#### Advanced Embeddings
- **SimplE**: Separate head/tail embeddings
- **RotatE**: Rotation-based in complex space
- **ConvE**: 2D convolutional embeddings
- **Graph Attention**: Multi-head attention
- **Transformer-based**: Self-attention mechanisms
**Usage**:
```python
from src.models.embeddings import SimplE, RotatE, ConvE
# Initialize SimplE model
model = SimplE(num_entities=1000, num_relations=50, embedding_dim=100)
# Train the model
trainer = KGEmbeddingTrainer(model, knowledge_graph)
losses = trainer.train(epochs=200, lr=0.01)
# Link prediction
predictions = trainer.predict_links(head_entity, relation, k=10)
```
---
### 2. Graph Neural Networks
#### Supported Architectures
- **GCN** (Graph Convolutional Networks): Aggregate neighbor features
- **GAT** (Graph Attention Networks): Attention-weighted aggregation
- **GraphSAGE**: Sample and aggregate from neighborhoods
- **R-GCN** (Relational GCN): Multi-relational graph processing
- **Temporal GNN**: Time-aware knowledge graph reasoning
**Usage**:
```python
from src.models.graph_neural_networks import GATKnowledgeGraph, RGCNKnowledgeGraph
# Initialize GAT model
gat_model = GATKnowledgeGraph(
num_entities=1000,
num_relations=50,
embedding_dim=64,
num_heads=4
)
# Initialize R-GCN model
rgcn_model = RGCNKnowledgeGraph(
num_entities=1000,
num_relations=50,
embedding_dim=64,
num_bases=30
)
# Forward pass
output = gat_model(edge_index, edge_type)
```
---
### 3. Neural Reasoning
#### Reasoning Methods
- **Multi-Hop Reasoning**: Traverse multiple hops to infer new facts
- **Path Ranking**: Learn to rank reasoning paths
- **Neural-Symbolic Integration**: Combine neural learning with symbolic logic
- **Reasoning Chains**: Step-by-step reasoning with intermediate steps
- **Explainable Reasoning**: Generate interpretable explanations
**Usage**:
```python
from src.reasoning.neural_reasoning import MultiHopReasoning, NeuralSymbolicReasoning
# Multi-hop reasoning
multi_hop = MultiHopReasoning(
num_entities=1000,
num_relations=50,
embedding_dim=64,
max_hops=3
)
# Perform reasoning
answer, reasoning_path = multi_hop.reason(
query_entity="Einstein",
query_relation="discovered",
max_paths=5
)
```
---
### 4. Domain Applications
#### Healthcare Knowledge Graph
**Features**:
- Disease-symptom relationships
- Treatment recommendations
- Comorbidity analysis
- Disease prediction from symptoms
**Usage**:
```python
from demos.healthcare_kg_project import HealthcareKnowledgeGraph
healthcare_kg = HealthcareKnowledgeGraph()
treatments = healthcare_kg.find_treatments_for_disease("diabetes")
predictions = healthcare_kg.predict_disease_from_symptoms(["fever", "cough"])
```
#### Retail Knowledge Graph
**Features**:
- Product recommendations
- Customer behavior analysis
- Frequently bought together
- Category and brand relationships
**Usage**:
```python
from demos.retail_kg_project import RetailKnowledgeGraph
retail_kg = RetailKnowledgeGraph()
recommendations = retail_kg.recommend_products("customer_001", top_k=5)
similar_products = retail_kg.get_products_by_category("electronics")
```
#### Financial Knowledge Graph
**Features**:
- Portfolio analysis
- Risk assessment
- Market correlation analysis
- Diversification opportunities
**Usage**:
```python
from demos.financial_kg_project import FinancialKnowledgeGraph
financial_kg = FinancialKnowledgeGraph()
portfolio = financial_kg.get_investor_portfolio("investor_001")
risk_analysis = financial_kg.analyze_portfolio_risk("investor_001")
```
---
## ๐Ÿ“Š Performance Metrics
### Evaluation Metrics
- **Hits@K**: Percentage of correct predictions in top-K
- **Mean Rank**: Average rank of correct entities
- **MRR** (Mean Reciprocal Rank): Harmonic mean of ranks
- **Training Loss**: Convergence monitoring
### Example Results
| Model | Hits@3 | Mean Rank | Parameters |
| -------- | ------ | --------- | ---------- |
| TransE | 0.65 | 12.3 | 50K |
| DistMult | 0.72 | 10.1 | 50K |
| ComplEx | 0.78 | 8.5 | 100K |
| SimplE | 0.81 | 7.2 | 100K |
| RotatE | 0.83 | 6.8 | 100K |
---
## ๐Ÿงช Testing
```bash
cd tests
python test_embeddings.py
python test_reasoning.py
# Or use pytest
pytest -v
```
---
## ๐ŸŽ“ Educational Value
### Concepts Demonstrated
1. Knowledge graph construction and management
2. Graph embedding techniques
3. Graph Neural Networks
4. Neural reasoning and inference
5. Domain-specific applications
6. LLM integration for knowledge graphs
### Learning Outcomes
- Understand knowledge graph fundamentals
- Implement embedding models
- Apply GNNs to knowledge graphs
- Build reasoning systems
- Create domain-specific applications
---
## ๐Ÿ”ฌ Research Applications
1. **Healthcare**: Medical diagnosis and treatment recommendation
2. **E-commerce**: Product recommendation and customer analysis
3. **Finance**: Portfolio management and risk assessment
4. **Scientific Discovery**: Literature mining and hypothesis generation
5. **Question Answering**: Knowledge-based QA systems
6. **Semantic Search**: Intelligent information retrieval
---
## ๐Ÿ“ฆ Dependencies
### Core Libraries
```
torch>=2.0.0
torch-geometric>=2.4.0
networkx>=3.1
transformers>=4.30.0
```
### LLM and RAG
```
langchain>=0.1.0
langchain-google-genai>=1.0.0
google-generativeai>=0.3.0
chromadb>=0.4.0
faiss-cpu>=1.7.4
```
### Visualization
```
matplotlib>=3.7.0
seaborn>=0.12.0
plotly>=5.15.0
```
**See `requirements.txt` for complete list.**
---
## ๐Ÿ“š References
### Key Papers
1. **TransE**: Bordes et al., "Translating Embeddings for Modeling Multi-relational Data" (2013)
2. **DistMult**: Yang et al., "Embedding Entities and Relations" (2015)
3. **ComplEx**: Trouillon et al., "Complex Embeddings for Simple Link Prediction" (2016)
4. **SimplE**: Kazemi & Poole, "SimplE Embedding for Link Prediction" (2018)
5. **RotatE**: Sun et al., "RotatE: Knowledge Graph Embedding by Relational Rotation" (2019)
6. **ConvE**: Dettmers et al., "Convolutional 2D Knowledge Graph Embeddings" (2018)
7. **R-GCN**: Schlichtkrull et al., "Modeling Relational Data with Graph Convolutional Networks" (2018)
---
## ๐Ÿค Contributing
This project is part of the **Systems in AI** course (CA10). Contributions welcome!
---
## ๐Ÿ“„ License
Part of the System2_in_AI CA collection for educational and research purposes.
---
## ๐ŸŽ‰ Project Status
- **Status**: โœ… **COMPLETE AND FULLY FUNCTIONAL**
- **Version**: 2.0.0
- **Quality**: โญโญโญโญโญ Professional Grade
- **Last Updated**: January 2025
- **Language**: English
---
**Thank you for using the CA10 Advanced Knowledge Graphs project!**
This comprehensive implementation provides everything needed to learn, research, and implement knowledge graph systems with state-of-the-art techniques.
_Happy Learning and Building! ๐ŸŽ“๐Ÿš€_

Xet Storage Details

Size:
11 kB
ยท
Xet hash:
a374518aa2f0f344de1d3c39af46ab4da335f69fd4ddedd3ad6431f34ed23ca4

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.