Recommendation API

From Meta, a Wikimedia project coordination wiki
Jump to navigation Jump to search

The Wikimedia Recommendation API is an open-access HTTP API, currently under development, that will provide personalized recommendations for a variety of use-cases. The initial use-case for this API is ContentTranslation where it recommends articles to translate from one language to another by using traffic trends, activity logs, and other signals to identify gaps in coverage and to match those to editors based on interest. The API is intended to be flexible enough to serve as a basis for new features by third-party developers or researchers.

Contact us[edit]

The best way to contact us is through #wikimedia-research IRC channel on freenode.

Consumers[edit]

The Translation Recommendation Type is being used by mw:ContentTranslation as part of their "Suggestions" feature.

Type Endpoints[edit]

Type RESTBase Production Cloud VPS Experimental
API GapFinder API GapFinder API GapFinder API GapFinder
Translation Yes check.svg Yes check.svg Yes check.svg Yes check.svg Yes check.svg Yes check.svg
Missing Sections Yes check.svg Yes check.svg
Related Articles Yes check.svg Yes check.svg

Service overview[edit]

Recommendation API[edit]

the service that we’re trying to productionize

  • Provides endpoints for all the Recommendation Types and the Recommendation Tool
    • These can live independently of each other

Recommendation Type[edit]

an endpoint of the Recommendation API that provides a type of recommendation

Translation[edit]

  • Recommend articles for translation that exist in a source language wiki but are absent from a target language wiki
  • Spec: https://recommend.wmflabs.org/types/translation/spec
  • Ex query: /types/translation/v1/articles?source=en&target=de&seed=Apple
    • Returns articles that exist in enwiki but are missing from dewiki that are related to the article “Apple”
  • Currently uses morelike search, Pageview API, and Wikidata queries to provide recommendations
  • Currently can use the experimental Related Articles Recommendation Type for building the list of candidate articles in place of morelike

Related Articles[edit]

  • experimental
  • Waiting for results from study
  • Recommend articles that are related to a seed article in a given language
  • Spec: https://recommend-related-articles.wmflabs.org/types/related_articles/spec
  • Ex query: /types/related_articles/v1/articles?source=en&seed=Apple
    • Returns articles that are related to “Apple” that exist in enwiki
  • Ex query: /types/related_articles/v1/items?seed=Q89
    • Returns wikidata items that are related to Q89
  • Uses Wikidata queries
  • Uses computed matrix file
    • Size: measured in Gigabytes
    • Computed offline approx. every month
      • Needs less than a day to build

Missing Sections[edit]

Recommendation Tool[edit]

the UI component that can exercise the API

Current service[edit]

Future service[edit]

Recommendation Service Sequence Diagram.jpg

Our intentions for productization[edit]

To support the current use case of ContentTranslation, we want to productionize the Recommendation API providing only the Translation Recommendation Type endpoint at this time, without relying on any experimental functionality (that is, don’t use the Related Articles Recommendation Type in place of morelike). Without needing the Related Articles Recommendation Type, the Recommendation API will mostly consist of I/O bound calls to mw/pageview/wikidata endpoints. The Recommendation API should have a publicly accessible endpoint.

Beyond this initial use case, more Recommendation Types can be added to the Recommendation API as they’re vetted. These may have varying technical requirements and will likely require further collaboration before production infrastructure can support them. For example, the Related Article Recommendation Type needs a large computed matrix file.

See also[edit]