All Projects β†’ mathetake β†’ intergo

mathetake / intergo

Licence: MIT license
A package for interleaving / multileaving ranking generation in go

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to intergo

awesome-semantic-search
A curated list of awesome resources related to Semantic SearchπŸ”Ž and Semantic Similarity tasks.
Stars: ✭ 161 (+436.67%)
Mutual labels:  information-retrieval, ranking
deep recommenders
Deep Recommenders
Stars: ✭ 214 (+613.33%)
Mutual labels:  ranking, recommendation-system
Recommenders
Best Practices on Recommendation Systems
Stars: ✭ 11,818 (+39293.33%)
Mutual labels:  ranking, recommendation-system
Knowledge Graph based Intent Network
Learning Intents behind Interactions with Knowledge Graph for Recommendation, WWW2021
Stars: ✭ 116 (+286.67%)
Mutual labels:  information-retrieval, recommendation-system
Ranking
Learning to Rank in TensorFlow
Stars: ✭ 2,362 (+7773.33%)
Mutual labels:  information-retrieval, ranking
GNN-Recommender-Systems
An index of recommendation algorithms that are based on Graph Neural Networks.
Stars: ✭ 505 (+1583.33%)
Mutual labels:  information-retrieval, recommendation-system
Ranking Papers
Papers on recommendation system / search ranking.
Stars: ✭ 29 (-3.33%)
Mutual labels:  ranking, recommendation-system
cs6101
The Web IR / NLP Group (WING)'s public reading group at the National University of Singapore.
Stars: ✭ 17 (-43.33%)
Mutual labels:  information-retrieval, recommendation-system
mildnet
Visual Similarity research at Fynd. Contains code to reproduce 2 of our research papers.
Stars: ✭ 76 (+153.33%)
Mutual labels:  recommendation-system
AI booklet CE-AUT
Booklet and exam of Artificial Intelligence Master Degree at Amirkabir University of technology.
Stars: ✭ 14 (-53.33%)
Mutual labels:  information-retrieval
BERT4Rec-VAE-Pytorch
Pytorch implementation of BERT4Rec and Netflix VAE.
Stars: ✭ 212 (+606.67%)
Mutual labels:  recommendation-system
FieldedSDM
Fielded Sequential Dependence Model (code and runs)
Stars: ✭ 32 (+6.67%)
Mutual labels:  information-retrieval
ir datasets
Provides a common interface to many IR ranking datasets.
Stars: ✭ 190 (+533.33%)
Mutual labels:  information-retrieval
hidden-gems
Ranking of Steam games which favors "hidden gems". Featured in PC Gamer.
Stars: ✭ 37 (+23.33%)
Mutual labels:  ranking
crystal-web-framework-stars
⭐️ Web frameworks for Crystal, most starred on Github
Stars: ✭ 40 (+33.33%)
Mutual labels:  ranking
memex-gate
General Architecture for Text Engineering
Stars: ✭ 47 (+56.67%)
Mutual labels:  information-retrieval
Recommendation-System-Baseline
Some common recommendation system baseline, with description and link.
Stars: ✭ 34 (+13.33%)
Mutual labels:  recommendation-system
JD2Skills-BERT-XMLC
Code and Dataset for the Bhola et al. (2020) Retrieving Skills from Job Descriptions: A Language Model Based Extreme Multi-label Classification Framework
Stars: ✭ 33 (+10%)
Mutual labels:  recommendation-system
llda
Labeled LDA in Python
Stars: ✭ 19 (-36.67%)
Mutual labels:  information-retrieval
ScoreboardStats
Bukkit plugin for customizing the sidebar of the scoreboard feature from minecraft
Stars: ✭ 29 (-3.33%)
Mutual labels:  ranking

intergo

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)
  • Greedy Optimized Multileaving (in github.com/mathetake/intergo/gom 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.

Usage

Make sure that all of your rankings implement intergo.Ranking interface defined in intergo.go

package intergo

type ID string

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

Then choose one of bm or gom or tdm package which corresponds to the algorithm you want to use.

In each of these packages, there is a type which implements intergo.Interleaving interface defined in intergo.go,

package intergo

type Result struct {
	RankingIndex int
	ItemIndex int
}

type Interleaving interface {
	GetInterleavedRanking(num int, rankings ...Ranking) ([]*Result, error)
}

and you can generate interleaved/multileaved ranking by calling GetInterleavedRanking.

The following is an example using Team Draft MultiLeaving (implemented in tdm package)

package main

import (
	"fmt"
	"strconv"

	"github.com/mathetake/intergo"
	"github.com/mathetake/intergo/tdm"
)

type tRanking []int

func (rk tRanking) GetIDByIndex(i int) intergo.ID {
	return intergo.ID(strconv.Itoa(rk[i]))
}

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

// tRanking implements intergo.Ranking interface
var _ intergo.Ranking = tRanking{}

func main() {
	ml := &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, _ := ml.GetInterleavedRanking(4, rankingA, rankingB)
	iRanking := tRanking{}
	for _, it := range res {
		iRanking = append(iRanking, idxToRk[it.RankingIndex][it.ItemIndex])
	}

	fmt.Printf("Result: %v\n", iRanking)
}

References

  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.
  4. Kojiro Iizuka, Takeshi Yoneda, Yoshifumi Seki. "Greedy Optimized Multileaving for Personalization." Proceedings of the 13th International ACM Conference on Recommender Systems. ACM, 2019.

Author

license

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].