--- 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. ![](https://i.imgur.com/pM1peh0.png) ![](https://i.imgur.com/cEs3XfF.png) Lectura: https://recsysml.substack.com/p/recommendations-using-graph-neural Two-tower model: ![](https://i.imgur.com/jfqojGI.png) ## 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