Can Apache-AGE handle graph algorithms such as shortest path, centrality measures, and page rank? - graph-databases

I'm interested in using Apache-AGE for graph data storage and analysis. Can Apache-AGE handle common graph algorithms such as shortest path, centrality measures, and page rank? I would like to know if Apache-AGE provides built-in functions or APIs for these algorithms, or if I would need to implement them myself using the provided data access interfaces. Any information on this topic would be greatly appreciated.

For now these algorithms are not implemented, but what you can do is download any driver e.g Apache Age Python driver. Then use that to implement those algorithms yourself in python. You can do these in other languages which support Apache Age. You can find ther drivers here

I'll go through for each algorithm mentioned:
Shortest Path
Referring to this closed Github issue for shortest path, there is no direct implementation of it in AGE due to complexity. In this case there are two options:
Create own query for AGE -> Video lecture, Slides
Implementation of algorithm in AGE -> Paper that can be used for reference
Centrality Measures
It seems the older AgensGraph did have a centrality measuring algorithm. You may attempt on AGE using this reference. However, currently no official documentation or support regarding it.
Page Rank
Neo4j has an implementation documentation which you can follow to create queries or implement the algorithm directly.

Related

Which graph algorithms are available in Memgraph?

I know that there are like 100s of graph algorithms out there. Which one are available in Memgraph? Is there some command like help list algorithms that would tell me what can I use?
As far as I know, there is no Cypher command that would list all of the available/implemented graph algorithms.
If you have "pure" Memgraph then you have:
Depth-first search (DFS)
Breadth-first search (BFS)
Weighted shortest path (WSP)
All shortest paths (ASP)
This are built in graph algorithms.
As Iłya Bursov has written in his comment there is also MAGE. It is an open-source repository that contains graph algorithms and modules written by the team behind Memgraph and its users in the form of query modules.
At the moment MAGE includes the following algorithms:
Betweenness Centrality
Biconnected Components
Bipartite Matching
Bridge Detection
Community Detection
Cycle Detection
Graph Coloring
Katz Centrality
Maximum Flow
Node Similarity
PageRank
Union Find
Dynamic Betweenness Centrality
Dynamic Community Detection
Dynamic node2vec
Dynamic Katz Centrality
Dynamic PageRank
A complete list of algorithms and implementation details within MAGE can be found at https://memgraph.com/docs/mage/algorithms.

MLKit face detection 's algorithm

MLKit provides good API documentations and guides for Face detection (https://developers.google.com/ml-kit/vision/face-detection). However, I can not find any informations about the algorihms/baseline model or related research papers behind the scene. Can someone provide any suggestions about it's implementation ?
It likely uses blazeface for face detection used on mediapipe. I could not find a direct answer, but when analyzing an apk with mlkit face detection blazeface.tfl can be found on assets folder.
Mediapipe pose detection doc mentions blazepose powers the ML Kit Pose Detection API. So, blazeface is likely to power mlkit on device face detection.
Links to documentation, paper, poster,
https://google.github.io/mediapipe/solutions/face_detection.html
https://arxiv.org/abs/1907.05047
https://docs.google.com/presentation/d/1YCtASfnYyZtH-41QvnW5iZxELFnf0MF-pPWSLGj8yjQ/present?slide=id.g5bc8aeffdd_1_0
https://drive.google.com/file/d/1u6aB6wxDY7X2TmeUUKgFydulNtXkb3pu/view
ML Kit's selection of APIs run on-device or in the cloud. The on-device APIs can work when there's no network connection. The cloud-based APIs is built on top of TensorFlow Lite along with the integrated Neural Network API. So we do not need to integrate AI-based algorithms into mobile apps. I found the explanation on wiki:
Face detection can be regarded as a specific case of object-class detection. Face-detection algorithms focus on the detection of frontal human
faces.
A reliable face-detection approach based on the genetic algorithm and
the eigen-face technique.
There are other face recognition algorithms, like Principal Component Analysis(PCA) and Linear Discriminate Analysis (LDA) algorithms.

Are there any SageMaker resources on how to perform training in a distributed manner with a custom algorithm?

I've seen that SageMaker's built in algorithms support distributed training. However, I haven't found any documentation for how to structure my data and/or my image containing the custom algorithm so that training can be done in a distributed manner. Any help here would be much appreciated.
this has already been discussed here: AWS Sagemaker custom user algorithms: how to take advantage of extra instances
Basically, you need to managed communication between the different containers. You'll find some pointers here:
https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo.html#your-algorithms-training-algo-running-container-dist-training
Alternatively, you could use one of the built-in algos (object classification, detection, segmentation) or one of the built-in DL environments (TF, MXNet, etc.). Is there any specific reason why you use a custom container?

Ground Truth datasets for Evaluating Open Source NLP tools for Named Entity Recognition

I am working on building a document similarity graph for a collection. I already do all the basic things like tokenization, stemming, stop-word removal, and bag-of-word representation to represent the documents and computing similarity using Jaccard coefficient. I am now trying to extract Named Entities and evaluate if these would be helpful in improving the quality of the document similarity graph. I have been spending much of time on finding ground-truth datasets for my analysis. I have been very disappointed with Message Understanding Conference (MUC) datasets. They are cryptic to understand and requires sufficient data cleaning/massaging before it can be used on a different platform (like Scala)
My questions are here more specifically
Are there tutorials on getting started with MUC datasets that would make it easier for analyzing the results using open source NLP tools like openNLP
there other datasets available?
Tools like OpenNLP and Stanford Core NLP employ approaches that are essentially supervised. Correct?
GATE is a great tool for hand-annotating your own text corpus Correct?
For a new test dataset (that I hand-create) how can I compute the baseline (Vocabulary Transfer) or what kind of metrics can I compute?
First of all, I have a few concerns about using Jaccard coefficient to compute similarity. I'd expect TF.IDF and cosinus similarity to give better results.
Some answers to your questions:
See the CoNLL 203 evaluation campaign: it also provides data, evaluation tools, etc. You ma also have a look at ACE.
Yes
Gate is also a pipeline that automatically annotates text, but as far as I know NER is a rule-based component.
A baseline is most of the time a very simple algorithm (e.g. majority classes) so it is not a baseline to compare corpus, but to compare approaches.

Where can I get very simple inroduction to all Artificial intelligent techniques with Real world Examples

I know that Artificial Intelligence field is very vast and there are many books on it. But i just want to know the any resource where i can get the simple inroduction to all Artificail Intelligence techniques like
It would like to have 1 or 2 page introduction of all techniques and their examples of how they can be applied or for what purpose they can be used. I am interested in
Backpropagation Algoritm
Hebbs Law
Bayesian networks
Markov Chain Models
Simulated Annealing
Tabu Search
Genetic Algorithms or Evolutionary Algos
Now there are many variants and more AI techniques. And each one have many books written on them. i am unable to decide which algos i can use unless i know what they are capable of doing.
So can i find 1-2 page inroduction of them with Application examples
Essentials of Metaheuristics covers several of these - I can't promise it'll cover all of them, but I know there's good stuff on simulated annealing and genetic algorithms in there. Probably at least a few of the others, but I'd have to re-download it to check. It's available for free download.
It can be a bit light on the theory, but it'll give you a straightforward description, some explanation of when you'd want to use each, and a lot of useful pseudocode.
Here's an image on local search (= tabu search without tabu) from the Drools Planner manual:
I am working on similar images for Greedy algorithms, brute force, branch and bound and simulated annealing.
As an example of Genetic Algorithms implementation I can give you this.
It's an API I developed for GA, with one implementation for each operator, and one concrete example problem solved ((good) Soccer Team among ~600 players with budget restriction). Its all setup so you run it with mvn exec:java and watch it evolving in the console output. But you can implement your own problem structure, or even other operators (crossing, mutating, selection) methods.

Resources