---
title: Paula Gómez
tags: PhD
slideOptions:
theme: white
transition: 'fade'
---
# Recommenders - Paula
## 13.10.2022 - RL
+ **Coverage**: té un defecte: 1 click a un ítem compta tant com 1000 clicks. El Gini coefficient o Shannon entropy intenten arreglar-ho.
+ **Diversity**: Veure sota + Vendi score
+ **Serendipity**: Attractive + Surpring items. [Paper](https://dl.acm.org/doi/abs/10.1145/3523227.3546753). Amazon rellevant.
+ **Novelty**: 1 - popularity(i)
+ **Reachability**: Alex (rec + user+ data), control de l'usuari.


Lectura: https://recsysml.substack.com/p/recommendations-using-graph-neural
Two-tower model:

## 13.10.2022 - RL
The Vendi Score: A Diversity Evaluation Metric for Machine Learning https://github.com/vertaix/Vendi-Score
A Menu of Recommender Transparency Options
https://techpolicy.press/a-menu-of-recommender-transparency-options/
Building Human Values into Recommender Systems: An Interdisciplinary Synthesis
https://arxiv.org/abs/2207.10192
## 05.09.2022 - RL
https://eugeneyan.com/writing/reinforcement-learning-for-recsys-and-search/
Most recommendation systems learn user preferences and item popularity from historical data, to retrain models at periodic intervals. This comes with a few downsides.
First, they’re designed to maximize the immediate reward of making users click or purchase, and don’t consider long-term consequences. Furthermore, they tend to adopt a greedy approach and overemphasize item popularity, neglecting to explore other items. Finally, they don’t work well when new items and new users are frequently added.
One way to address this is via reinforcement learning. RL can learn to optimize for long-term rewards, balance exploration and exploitation, and continuously learn online.
## 28.07.2022 - Defining Fairnes of exposure
### Definitions
Inside a dataset $\mathcal D_T = \{ (x_i, a_i, r_i) \}$, where $x_i$ is the contextual information, $a_i$ is the recommender action (i.e. show $n$ items following an order) and $r_i$ is the action reward (i.e. click), we have a set of items $I$ where need to be displayed following a specific order designed by $\pi (a_i | x_i)$.
The dataset $D_T$ is composed by a set of interactions which can be represented as $(x_i, I_K)$, where $I_K$ is the set of items consumed within that context $x_i$.
* $K$ is the number of unique items consumed under a given context $x_i$.
Thus, we can state that there exist a set $I_K | x_i$ where for each $item_k$, where $\mathcal k \in$ ${1...K}$, we can represent its merit $M_{item_k|x_i}$ with the following equation: $\ M_{item_k|x_i} = \frac{\text{#consumptions item_k}}{\text{#total consumptions}}$.
### Fairness of Exposure
We know that the recommender $\pi (a_i | x_i)$ will display a the user preferences as a ranking list that we define as $R_i$. Thus, for each context $x_i$ there exist a ranking list $R_i$ which contains the entire set of items $I$ displayed in order $I | R_i$. From those sorted items $R_i$, what we actually show to the user are just the first $n$ items $R_i$ defined as $a_i$(in our case $n = 5$ due to the carrousel space in TV3 website).
Fairness of exposure metric ($FoE(\pi)$) support that each item $i_i \in I$ holds a merit $M_{i_i|x_i}$ and that the exposure of that item should be proportional to that (merit). To measure that, we define the following equation for each context $x_i$:
$\mathcal FoE(\pi) = \sum_{i} (p(x_i) \sum_{j=n}^{I} M(_{R_j}))$
#### Al fer-ho per context, si dins les $R_i$ hi ha items molt populars en general a $C_t$ però que no s'havien consumit en $x_i$, la seva aportació és 0.
1. Hauria de recomanar-se el item molt popular o està bé així, de forma que la seva NO-recomanació es 0 unfair?
2. Es recomanan entre els 5 primers molts items que tenen una $f_{item_k|x_i}$ = 0. Està bé i el que passa es que esperariem que el recomanador recomanés items més diversos oi?
### NO SERIA UNFAIRNES OF EXPOSURE??
## 21.07.2022 - Revisiting pure contextual recommenders
### El cas general
El dataset $\mathcal C_T = \{ (x_i, a_i, r_i) \}$ de dades històriques que podem recollir d'un recomanador en un moment $T$ es pot verure com una mostra del següent model generatiu de dades:
$$ (x_i, a_i, r_i) \sim p(x_i) \pi (a_i | x_i) p(r_i|a_i, x_i) $$
on $x_i$ és la informació del context de la interacció (que pot incloure la informació de l'usuari o estadistics de $\mathcal C_T$), $a_i$ és l'acció que fa el recomanador (p.e. mostrar 1 ítem, o $k$ ítems en un cert ordre), $r_i$ és la recompensa de l'acció (p.e. click, temps de visualització, etc.), $\pi (a_i | x_i)$ la política del recomanador i $p(r_i|a_i, x_i)$ les preferències de l'usuari.
> Fer una exploració del dataset i calcular mètriques (distribució popularitat, "seasonality", etc.).
L'únic element accionable és $\pi (a_i | x_i)$, els altres ens venen donats.
L'objectiu d'un recomanador és maximitzar el seu **valor** de la seva política:
$$ V(\pi) = \mathbb E_{p(x) \pi (a | x) p(r|a, x)} [f(r,\_)] = \mathbb E_{p(x) \pi (a | x) p(r|a, x)} \mathbb E[f(r,\_)|x,a]$$
on $f(r,\_)$ és una funció de $r$ i potser també d'altres variables (com el catàleg d'ítems, la distribució de característiques de continguts dels ítems, la seva distribució de popularitat, etc.) que permetin valorar altres aspectes importants per algun *stakeholder*. $f(r,\_)$ pot tenir en compte aspecte de l'acció com la posició en que es va presentar l´ítem seleccionat en el cas que l'acció és composta.
L'aplicació d'una nova política durant un temps generarà un dataset $\mathcal C_{T+1}$ amb unes característiques possiblement diferents. Comparar els estadístics de $\mathcal C_{T}$ i $\mathcal C_{T+1}$ és interessant per diagnosticar els efectes de les polítiques (p.e. La nova política, redueix el biaix de popularitat? Augmenta el *coverage*?)
### El cas contextual pur i polítiques deterministes
En el cas contextual pur, $x_i$ només té informació sobre el context, no de l'usuari. En el nostre cas és un conjunt finit de contexts resultants del producte cartesià de `(device, isweekend, period)`.
Si $f(r,\_) = 1$ si l'usuari ha seleccionat un dels $k$-ítems mostrats i suposem que els ítems són independents entre ells, la politica $\pi_{Popularity} (\mathbf a_i|x_i)$ consistent en mostrar els $k$-ítems más populars del context $x_i$, maximitza $V(\pi)$.
> Els ítems més populars poden ser els del dia abans, de la setmana abans, etc. També podem considerar funcions amb *decay* quan calculem la popularitat.
Les limitacions d'aquest mètode són clares:
+ Si hi ha una estructura de correlacions entre els ítems del conjunt mostrat.
+ Si la popularitat dels ítems està afectada per efectes temporals (p.e. "seasonality"), tampoc.
+ El valor que es maximitza és $r$ i no condidera altres mètriques importants com *diversity* (calibratge de temàtiques), *coverage*, *reachability*, etc.
L´ús de **models d'aprenentatge** a partir de dades per definir $V(\pi)$ és interessant perquè ens permet incorporar aspectes com:
+ Considerar contexts amb una cardinalitat molt gran o infinita.
+ Enriquir la política considerant la no independència dels ítems i, per exemple, fer models en cascada com:
$$\arg \max_{(a_1,...,a_k)}p(a_1|x_i)p(a_2|a_1,x_1)...p(a_k|a_1,...a_{k-1}, x_i)$$
+ Afegint variables auxiliars al context, com per exemple estadístics de $\mathcal C_T$ que ens donin informació de patrons temporals o informació addicional dels ítems:
+ Considerar una representació del contingut dels ítems
+ Considerar quants dies han passat des de la darrera visualització de cada ítem a $\mathcal C_T$, etc.
#### Tasques
+ Definició dels conjunts de training, validació i test.
+ **Baselines**: Popularitat(s) amb contexts finits; MLP & RF amb contexts molt grans o infinits.
+ **Mètriques**: $V(\pi)$, coverage, reachability.
### El cas contextual pur i polítiques estocàstiques
Fins aquí hem considerat que la política $V(\pi)$ era determinista, però una política estocàstica ens podria ajudar a obtenir un valor més gran quan $f(r,\_)$ és complexa i multiobjectiu i també a resoldre alguns problemes de les polítiques deterministes com el **biaix d'exposició** (el nombre de vegades que es recomana un ítem ha de ser proporcional a la seva relevàcia segons el model).
La forma més simple és, si tenim un classificador multiclasse, mostrejar les classes a partir de la sortida del *softmax* amb una certa temperatura. Això pot ser interessant per mitigar el biaix d'exposició.
Un altre aspecte a considerar quan usem una política estocàstica és l'ús de la incertesa del model (epistèmica i aleatòrica) com a font de variació. La nostra hipòtesi és que la epistèmica (resultat d'entrenar diversos models) pot ser molt gran i per tant les prediccions tindran un "interval de confiança" que agreujarà el biaix d'exposició.
#### Tasques
+ Definició dels conjunts de training, validació i test.
+ **Baselines**: MLP & RF amb incertesa i polítiques estocàstiques.
+ **Mètriques**: $V(\pi)$, coverage, reachability.
## 07.07.2022
### Pure-context recommender
+ Exploració de les dades:
+ Toral interactions per day/week (seasonality?)
+ Most popular per week
+ Topics per week
+ Topics per device
+ Topics per weekday
+ Topics per period
+ Recommenders as prediction engines (accuracy):
+ Baseline: Counting - Most popular per (year, month, week, day)
+ Other baselines: Most popular per (year, month, week, day) x context (device, weekday, period)
+ Classifiers (to detect more complex patterns such as "days from this interaction"): MLP, RF, ...
+ Recommenders as (deterministic/stochastic, Saito) policies:
+ Metrics (diversity, coverage, reachability, recourse, exposure fairness, etc.)
+ Evaluation of these metrics in recommenders as prediction engines
+ Justificació (reating audiences as consumers first, as opposed to citizens): The Case for Public Service Recommender Algorithms, https://piret.gitlab.io/fatrec2018/program/fatrec2018-fields.pdf
+ Stochastic policy for pure-contextual recommendations.
## Bibliografia:
+ Bilateral Self-unbiased Learning from Biased Implicit Feedback, Jae-woong LeeSeongmin ParkJoonseok LeeJongwuk Lee
## Leveraging logged user information
+ Most frequent itemsets graph, Most frequent diverse itemsets graph,
+ 10-week data
## 20.06.2022
+ Cirus proposa dataset 1 any, de cookies interaccions úniques, consum de continguts PPD recomanables, 2.3M de registres.
+ /dades/picae/experiments/recomanador/prova-contextual-cookies-1only.pkl
+ Podem fer alguna cosa interessant a nivell de dataset? Cal fer exploració i preguntar a TV3.
+ S'ha de revisar el camera-ready CCIA 2022. **Agraïments** pactats!
+ S'ha de pulir story-telling article context:
+ Dataset $\sim P(x_i) \Pi(a_i|x_i) r(a_i|x_i, a_i)$
+ Utility de la policy?
+ S'ha de revisar el temari curs FP.
### ML Glossary
1. Accuracy
1. Anomaly detection
1. AUC
1. baseline
1. batch
1. binary classification
1. boosting
1. categorical data
1. classification model
1. class-imbalanced dataset
1. collaborative filtering
1. confusion matrix
1. continuous feature
1. convergence
1. cost
1. cross-entropy
1. cross-validation
1. dataset
1. decision boundary
1. decision tree
1. deep model
2. derivative
3. dimensions
4. discrete feature
5. discriminative model
6. ensemble
7. entropy
8. epoch
9. false negative
10. false negative rate
11. false positive
12. false positive rate
13. feature
14. feature engineering
15. feature vector
16. generalization
17. generalization curve
18. gradient
19. ground truth
20. hinge loss
21. hyperparameter
22. independently and identically distributed (i.i.d)
23. imbalanced dataset
24. inference
25. item matrix
26. items
27. iteration
28. L1 loss
29. L2 loss
30. label
32. linear model
33. linear regression
34. logistic regression
35. logits
36. Log Loss
37. loss
38. loss curve
39. majority class
40. matrix factorization
41. Mean Absolute Error (MAE)
42. Mean Squared Error (MSE)
43. metric
44. minority class
45. model
46. model capacity
47. model training
48. multi-class classification
49. negative class
50. neural network
51. neuron
52. noise
53. normalization
54. numerical data
55. one-hot encoding
56. one-vs.-all
58. optimizer
59. outlier detection
60. overfitting
61. parameter
62. positive class
63. precision
64. prediction
65. quantization
66. random forest
67. ranking
68. recall
69. recommendation system
70. regression model
71. ROC (receiver operating characteristic) Curve
72. Root Mean Squared Error (RMSE)
73. scalar
74. similarity measure
75. softmax
76. sparse feature
77. squared loss
78. step
79. stochastic gradient descent
80. supervised machine learning
81. test set
82. threshold
83. training set
84. true negative
85. true positive
86. true positive rate
87. underfitting
88. unlabeled example
89. user matrix
90. validation set
* Motivation
* Introduction
* What is ML?
* Input and features, Labels and predictions, model
* Example + generalization (video comparison to learning english)
* ML & DL difference in general
* DL is a part of ML
* ML needs features and DL learn them itself
* ML base
* What is actually a feature? How do we choose them?
* Feature engineering
* Good qualities of features
* Cleaning data
* Loss as error measure
* How do we choose the loss ? gradient descent
* Overfitting and underfitting???
* Training, validation and test set
* Supervised Learning
* Regression vs Classification
* Into more complex models
* Feature cross and Non-linearity
* Regression
* Linear regression video
* REGRESSION NOTEBOOK
* logistic regression
* Classification (accuracy) video
* Accuracy
* FP, TN, TP, FN for imbalanced class
* Confusion matrix
* Presition and recall → Roc curve
* Losses → MSE, BCE, CE, Weighed loss¿?
* Regularization (here) → Transparencia
* ML methods (SVM, Decision Tree, Random forest, Boosting)
* Evaluation and potential problems
* Recommendation