Dataset `update_interactions` method
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Funcionalidade
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Domínio
- data, machine-learning
Direção de pesquisa
Read the discussion in issue #176 and review the Dataset implementation to understand how interactions, user and item ID maps, and feature rows are represented. Decide the intended API and whether to implement add or replace; the issue leaves both the method name and first release scope open. Done means interaction updates preserve the required ID map and feature row ordering, with behavior for duplicate pairs defined.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Feature Description
Draft functionality (to be discussed):
update_interactions method of the Dataset accepts:
interactions_df : pd.DataFramemethod: tp.Literal["add", "replace"]
The main goal is to get old dataset id maps, extend them to new users and items. Then convert new interactions to internal ids and append those new interactions to the old ones.
We have one very important thing to remember: dataset id_map always has hot users (who have interactions) before warm users (who don't have interactions but have features). New hot users should start from the last id that was relevant for the old hot users.
But previously these id belonged to warm users. So warm users will have their ids changed. So user_features array should also be changed. Row numbers in user_features correspond to internal user ids.
Same for items.
In the first PR we can implement just one of the methods.
"add" method should just append new interactions to the old ones. (duplicate user-item pairs will have multiple entries, this will result in their weights summed in user-item matrix)
"replace" method should remove old interactions.
Why this feature?
This allows for incremental training for models that support fit_partial.
Additional context
Discussed here: https://github.com/MobileTeleSystems/RecTools/issues/176
Updating user and item features should be done in next PRs.
Maybe we should call this method update_data or smth like that to create only one method for interactions and features with optional arguments.
To be discussed
- Linguagem predominante
- Python
- Estrelas
- 457
- Forks
- 55
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de MTSWebServices/RecTools
-
good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
MTSWebServices/RecTools#330 ·
-
Is it not possible to `load` transformer model on cpu onlyTalvez já em andamento @maxteneff assumiu há 22 dias. Abertabug good first issue
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
MTSWebServices/RecTools#286 · 3 comentários ·
-
bug good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 35/100
MTSWebServices/RecTools#269 · 4 comentários ·
-
enhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
MTSWebServices/RecTools#249 ·
-
enhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
MTSWebServices/RecTools#243 ·
Todas as issues de MTSWebServices/RecTools
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 83/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 87/100
Mantenedores costumam responder em até 7 dias
-
S9.7: Methodology pageAbertaarea: web priority: P1 story
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
nfiasco/Quant-Time-Machine#151 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
autowarefoundation/autoware_carla_scenario#2019 ·
Mantenedores costumam responder em até 1 dia
-
Broken links found in docsAbertadocs pydanty:is-working
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 85/100
pydantic/pydantic-ai#12892 ·
Mantenedores costumam responder em até 1 dia