A package for interleaving / multileaving ranking generation in go
Switch branches/tags
Nothing to show
Clone or download
Latest commit 61b3155 Dec 4, 2018



CircleCI MIT License

A package for interleaving / multileaving ranking generation in go

It is mainly tailored to be used for generating interleaved or multileaved ranking based on the following algorithm

  • Balanced Interleaving/Multileaving (in github.com/mathetake/itergo/bm package)
  • Optimized Multileaving (in github.com/mathetake/intergo/om package)
  • Team Draft Interleaving/Multileaving (in github.com/mathetake/itergo/tdm package)

NOTE: this package aims only at generating a single combined ranking and does not implement the evaluation functions of the given rankings.

How to use

Note that all of your ranking satisfy the intergo.Ranking interface

type Ranking interface {
	GetIDByIndex(int) interface{}
	Len() int

which is used for removing duplications in the list.

Anyway, the following example is self-explanatory:

package main

import (


type tRanking []int

func (rk tRanking) GetIDByIndex(i int) interface{} {
	return rk[i]

func (rk tRanking) Len() int {
	return len(rk)

var _ intergo.Ranking = tRanking{}

func main() {
	TDM := &tdm.TeamDraftMultileaving{}
	rankingA := tRanking{1, 2, 3, 4, 5,}
	rankingB := tRanking{10, 20, 30, 40, 50}

	idxToRk := map[int]tRanking{
		0: rankingA,
		1: rankingB,

	res, _ := TDM.GetInterleavedRanking(4, rankingA, rankingB)
	iRanking := tRanking{}
	for _, it := range res {
		iRanking = append(iRanking, idxToRk[it.RankingIDx][it.ItemIDx])

	fmt.Println("Result: ", iRanking)


  1. Radlinski, Filip, Madhu Kurup, and Thorsten Joachims. "How does clickthrough data reflect retrieval quality?." Proceedings of the 17th ACM conference on Information and knowledge management. ACM, 2008.

  2. Schuth, Anne, et al. "Multileaved comparisons for fast online evaluation." Proceedings of the 23rd ACM International Conference on Conference on Information and Knowledge Management. ACM, 2014.

  3. Manabe, Tomohiro, et al. "A comparative live evaluation of multileaving methods on a commercial cqa search." Proceedings of the 40th International ACM SIGIR Conference on Research and Development in Information Retrieval. ACM, 2017.