QCRI Home Arabic Language Technologies ALT Server ALT Server Tools KeLP Kernel-Based Learning Platform

About

KeLP (Kernel-based Learning Platform) is a machine learning platform developed a maintained within a collaboration between the Semantic Analytic Group (SAG) of the Department of Enterprise Engineering at the University of Roma Tor Vergata and the Arabic Language Tecnologies (ALT) group of the QCRI. It is entirely written in Java and it is strongly focused on Kernel Machines. It includes different online and batch learning algorithms as well as several kernel functions, ranging from vector-based to structural kernels. KeLP allows to build complex kernel machine based systems, leveraging on the Java language and on a JSON interface to store and load classifiers configurations as well as to save the models to be reused.

KeLP contains several data representations, kernels and learning algorithms that can be efficiently and effectively applied in variegate scenarios:

  • Binary, Multi-class and Multi-label Classification
  • Regression
  • Clustering
  • Online and Batch learning
  • Linear and Kernel-based learning
  • Preference Learning in Re-ranking tasks
  • Learning over pairs (Q/A, Textual Entailment, Paraphrasing,…)
  • Multi-kernel learning over multiple structured and unstructured data

KeLP is:

  • Modular: Algorithms and Kernels are completely decoupled so that a new kernel is immediately available to all the existing algorithms
  • Extendible: KeLP can be easily extended with new data representations, additional Kernels and novel Algorithms
  • Easy to use: a simple JSON/XML interface allows to initialize all kernels and algorithms and to easily combine them
  • Lightweight: KeLP is organized in several maven projects thus only the required components need to be imported

Related publications

  • Simone Filice, Giuseppe Castellucci, Roberto Basili, Giovanni Da San Martino and Alessandro Moschitti. 2015. KeLP: a Kernel-based Learning Platform in Java. The ICML Workshop on Machine Learning Open Source Software (MLOSS)[MLOSS] [BibTeX]
    @misc{FilCasCroBasMarMos15, author={Simone Filice and Giuseppe Castellucci and Danilo Croce and Roberto Basili and Giovanni Da San Martino and Alessandro Moschitti}, title={KeLP: a Kernel-based Learning Platform in Java}, year={2015}, note={The ICML Workshop on Machine Learning Open Source Software (MLOSS)}, howpublished={\url{http://mloss.org/software/view/606/}} }

Download source code

KeLP is released as open source software under the Apache 2.0 license and it is available on githup at https://github.com/SAG-KeLP

Importing KeLP via Maven

All the KeLP packages are released under Maven.

Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information.

For now, a custom repository is used to distribute the maven packages for the whole platform. To use KeLP it is necessary to specify the repository where the platform is located. In the pom.xml of a Maven project KeLP repositories can be specified with the following piece of code:

KeLP has been developed in different Maven packages according to a modularization aimed at logically separating the different components of the library. Currently the following 8 packages are available:

  • core: it contains the core interfaces and classes; it contains the interfaces and abstract classes needed to define novel representations, kernels or algorithms.
  • vectorrepresentation: it contains representations based on vector formalisms;
  • discreterepresentation: it contains tree, sequence and string representations;
  • standardkernel: it contains common kernel functions, such as the Polynomial kernel and the RBF kernel;
  • tree-kernel: it contains several tree kernels and the sequence kernel;
  • batchlearningmargin: it contains the implementation of several large margin learning algorithms, e.g. Support Vector Machines, and corresponding classifiers;
  • online-large-margin: it contains the implementations of Online Learning algorithms, e.g. Perceptron or Passive Aggressive, as well as some budgeted algorithms.
  • kernelclustering: it contains the kernel-based clustering algorithms.

Maven allows to import only the required components. For example, if you need only to work with tree kernel functions and batch learning algorithms, you can import only these two package in your project, adding the following dependencies to your project pom.xml file:

Furthermore a full version of KeLP is also available on maven in the package kelp-full. It includes all the modules that compose the library. To import the 1.1.0 version of kelp-full, you can use the following Maven dependency.

Further Material

Some useful examples of usage, the javadoc and a detailed description of KeLP can be found on http://sag.art.uniroma2.it/demo-software/kelp/

License

KeLP is Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0