{"cells":[{"metadata":{},"cell_type":"markdown","source":"## FTRL (Follow The Regularized Leader)\n![FTRL.png](attachment:FTRL.png)\n\n**FTRL** is an online learning algorithm used for binary classification tasks. It became popular in the advertisement domain showing great results in CTR (Click Through Rate: Predicting if a user will click on an ad) problems with its incremental learning strategy.\n\nRead more about FTRL: https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/41159.pdf\n\nThis notebook provides a **baseline FTRL model** using datatable. Datatable reads the entire dataset very fast as shown [here](https://www.kaggle.com/rohanrao/riiid-with-blazing-fast-rid). It has the **FTRL model inbuilt** which runs extremely fast as well, so it is convenient to use them together.\n","attachments":{"FTRL.png":{"image/png":"iVBORw0KGgoAAAANSUhEUgAABFAAAANnCAYAAAAWX6ynAAAAAXNSR0IArs4c6QAAAIRlWElmTU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABIAAAAAQAAAEgAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAABFCgAwAEAAAAAQAAA2cAAAAAXOfgcgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KTMInWQAAQABJREFUeAHs3QmcZVleF/gTe0RGRuRWWWtXVRdd3Q2CjbK0sjN8BPEzCg6MC8oom4zgOCri6EcchBnRQRQ/LqgwKvpRxwUYFscRHWlsBxhpoOlGu5vu6qqu6tors3KLjIiMiMyMuf9X3Kob790X7714273vfg+fx9vucs73vMyu+8tzzp07zEpSCBAgQIAAAQIECBAgQIAAAQIEugrMd/3GFwQIECBAgAABAgQIECBAgAABAi0BAYofAgECBAgQIECAAAECBAgQIECgh4AApQeQrwkQIECAAAECBAgQIECAAAECAhS/AQIECBAgQIAAAQIECBAgQIBADwEBSg8gXxMgQIAAAQIECBAgQIAAAQIEBCh+AwQIECBAgAABAgQIECBAgACBHgIClB5AviZAgAABAgQIECBAgAABAgQICFD8BggQIECAAAECBAgQIECAAAECPQQEKD2AfE2AAAECBAgQIECAAAECBAgQEKD4DRAgQIAAAQIECBAgQIAAAQIEeggIUHoA+ZoAAQIECBAgQIAAAQIECBAgIEDxGyBAgAABAgQIECBAgAABAgQI9BAQoPQA8jUBAgQIECBAgAABAgQIECBAQIDiN0CAAAECBAgQIECAAAECBAgQ6CEgQOkB5GsCBAgQIECAAAECBAgQIECAgADFb4AAAQIECBAgQIAAAQIECBAg0ENAgNIDyNcECBAgQIAAAQIECBAgQIAAAQGK3wABAgQIECBAgAABAgQIECBAoIeAAKUHkK8JECBAgAABAgQIECBAgAABAgIUvwECBAgQIECAAAECBAgQIECAQA8BAUoPIF8TIECAAAECBAgQIECAAAECBAQofgMECBAgQIAAAQIECBAgQIAAgR4CApQeQL4mQIAAAQIECBAgQIAAAQIECAhQ/AYIECBAgAABAgQIECBAgAABAj0EBCg9gHxNgAABAgQIECBAgAABAgQIEBCg+A0QIECAAAECBAgQIECAAAECBHoICFB6APmaAAECBAgQIECAAAECBAgQICBA8RsgQIAAAQIECBAgQIAAAQIECPQQEKD0API1AQIECBAgQIAAAQIECBAgQECA4jdAgAABAgQIECBAgAABAgQIEOghIEDpAeRrAgQIECBAgAABAgQIECBAgIAAxW+AAAECBAgQIECAAAECBAgQINBDQIDSA8jXBAgQIECAAAECBAgQIECAAAEBit8AAQIECBAgQIAAAQIECBAgQKCHgAClB5CvCRAgQIAAAQIECBAgQIAAAQICFL8BAgQIECBAgAABAgQIECBAgEAPAQFKDyBfEyBAgAABAgQIECBAgAABAgQEKH4DBAgQIECAAAECBAgQIECAAIEeAgKUHkC+JkCAAAECBAgQIECAAAECBAgIUPwGCBAgQIAAAQIECBAgQIAAAQI9BAQoPYB8TYAAAQIECBAgQIAAAQIECBAQoPgNECBAgAABAgQIECBAgAABAgR6CAhQegD5mgABAgQIECBAgAABAgQIECAgQPEbIECAAAECBAgQIECAAAECBAj0EBCg9ADyNQECBAgQIECAAAECBAgQIEBAgOI3QIAAAQIECBAgQIAAAQIECBDoISBA6QHkawIECBAgQIAAAQIECBAgQICAAMVvgAABAgQIECBAgAABAgQIECDQQ0CA0gPI1wQIECBAgAABAgQIECBAgAABAYrfAAECBAgQIECAAAECBAgQIECgh4AApQeQrwkQIECAAAECBAgQIECAAAECAhS/AQIECBAgQIAAAQIECBAgQIBADwEBSg8gXxMgQIAAAQIECBAgQIAAAQIEBCh+AwQIECBAgAABAgQIECBAgACBHgIClB5AviZAgAABAgQIECBAgAABAgQICFD8BggQIECAAAECBAgQIECAAAECPQQEKD2AfE2AAAECBAgQIECAAAECBAgQEKD4DRAgQIAAAQIECBAgQIAAAQIEeggIUHoA+ZoAAQIECBAgQIAAAQIECBAgIEDxGyBAgAABAgQIECBAgAABAgQI9BAQoPQA8jUBAgQIECBAgAABAgQIECBAQIDiN0CAAAECBAgQIECAAAECBAgQ6CEgQOkB5GsCBAgQIECAAAECBAgQIECAgADFb4AAAQIECBAgQIAAAQIECBAg0ENAgNIDyNcECBAgQIAAAQIECBAgQIAAAQGK3wABAgQIECBAgAABAgQIECBAoIeAAKUHkK8JECBAgAABAgQIECBAgAABAgIUvwECBAgQIECAAAECBAgQIECAQA8BAUoPIF8TIECAAAECBAgQIECAAAECBAQofgMECBAgQIAAAQIECBAgQIAAgR4CApQeQL4mQIAAAQIECBAgQIAAAQIECAhQ/AYIECBAgAABAgQIECBAgAABAj0EBCg9gHxNgAABAgQIECBAgAABAgQIEBCg+A0QIECAAAECBAgQIECAAAECBHoICFB6APmaAAECBAgQIECAAAECBAgQICBA8RsgQIAAAQIECBAgQIAAAQIECPQQEKD0API1AQIECBAgQIAAAQIECBAgQECA4jdAgAABAgQIECBAgAABAgQIEOghIEDpAeRrAgQIECBAgAABAgQIECBAgIAAxW9gogLf8MpPpS998SfSMwc3JnpeJyNAgAABAgQIECBAgAABAsMICFCG0bMvAQIECBAgQIAAAQIECBAg0AgBAUojulkjCRAgQIAAAQIECBAgQIAAgWEEBCjD6NmXAAECBAgQIECAAAECBAgQaISAAKUR3ayRBAgQIECAAAECBAgQIECAwDACApRh9OxLgAABAgQIECBAgAABAgQINEJAgNKIbtZIAgQIECBAgAABAgQIECBAYBgBAcowevYlQIAAAQIECBAgQIAAAQIEGiEgQGlEN2skAQIECBAgQIAAAQIECBAgMIyAAGUYPfsSIECAAAECBAgQIECAAAECjRAQoDSimzWSAAECBAgQIECAAAECBAgQGEZAgDKMnn0JECBAgAABAgQIECBAgACBRggIUBrRzRpJgAABAgQIECBAgAABAgQIDCMgQBlGz74ECBAgQIAAAQIECBAgQIBAIwQEKI3oZo0kQIAAAQIECBAgQIAAAQIEhhEQoAyjZ18CBAgQIECAAAECBAgQIECgEQIClEZ0s0YSIECAAAECBAgQIECAAAECwwgIUIbRsy8BAgQIECBAgAABAgQIECDQCAEBSiO6WSMJECBAgAABAgQIECBAgACBYQQEKMPo2ZcAAQIECBAgQIAAAQIECBBohIAApRHdrJEECBAgQIAAAQIECBAgQIDAMAIClGH07EuAAAECBAgQIECAAAECBAg0QkCA0ohu1kgCBAgQIECAAAECBAgQIEBgGAEByjB69iVAgAABAgQIECBAgAABAgQaISBAaUQ3ayQBAgQIECBAgAABAgQIECAwjIAAZRg9+xIgQIAAAQIECBAgQIAAAQKNEBCgNKKbNZIAAQIECBAgQIAAAQIECBAYRkCAMoyefQkQIECAAAECBAgQIECAAIFGCAhQGtHNGkmAAAECBAgQIECAAAECBAgMIyBAGUbPvgQIECBAgAABAgQIECBAgEAjBAQojehmjSRAgAABAgQIECBAgAABAgSGERCgDKNnXwIECBAgQIAAAQIECBAgQKARAgKURnSzRhIgQIAAAQIECBAgQIAAAQLDCAhQhtGzLwECBAgQIECAAAECBAgQINAIAQFKI7pZIwkQIECAAAECBAgQIECAAIFhBAQow+jZlwABAgQIECBAgAABAgQIEGiEgAClEd2skQQIECBAgAABAgQIECBAgMAwAgKUYfTsS4AAAQIECBAgQIAAAQIECDRCQIDSiG7WSAIECBAgQIAAAQIECBAgQGAYAQHKMHr2JUCAAAECBAgQIECAAAECBBohIEBpRDdrJAECBAgQIECAAAECBAgQIDCMgABlGD37EiBAgAABAgQIECBAgAABAo0QEKA0ops1kgABAgQIECBAgAABAgQIEBhGYHGYne1LgAABAgQIECBAgAABAtURODw8THfv3k3xHI+8zM/Pp4WFhfyt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g7aPHYh458fSn0DsGMbNUkbAnC7jrJeLEYj5PbSzby5G+vleuT/v0dd3tpd9yWqXwMsJOCJ4OSfPIjARAtcXl1PcLAQIECBAgAABAgQIECBQVsDbfWW99UaAAAECBAgQIECAAAECBAhMoYAAZQqLZpUJECBAgAABAgQIECBAgACBsgIClLLeeiNAgAABAgQIECBAgAABAgSmUECAMoVFs8oECBAgQIAAAQIECBAgQIBAWQEBSllvvRF4QWBhpvkzbK4+cv/4KB2ORi/8fNIfOD07S38/PWxWcyZtXJ6b9NW1fgQIECBAgAABAgQIEHglAVfheSU2v0Qgn8C7y2vpxspG+mX3Yfri7m/p4zdvpIUmUDnL10UvLcVllI9OR+nHh3fTr3vb6VpzdaD3Vzd76UujBAgQIECAAAECBAgQuGiBmbNmueiV0D+BoQt8fe+P9PnvP6fTJpDYWlhOS7OXmwBlsv80Z5ozTvZHz9L20/10eXYuffPeh+mzq28PvZTGT4AAAQIECBAgQIBApQIClEoLa1jTJ/Dd/TvpqyZI+fNwP500uWac4THJS8Q7c5dm0s0m8Ll97Vb65K2bk7y61o0AAQIECBAgQIAAAQKvJSBAeS0+v0wgr0D8S8y95vNERhN+9kk36tkm5rk6v9ieMdM95p4AAQIECBAgQIAAAQI1CghQaqyqMREgQIAAAQIECBAgQIAAAQJZBVyFJyunxggQIECAAAECBAgQIECAAIEaBQQoNVbVmAgQIECAAAECBAgQIECAAIGsAgKUrJwaI0CAAAECBAgQIECAAAECBGoUEKDUWFVjIkCAAAECBAgQIECAAAECBLIKCFCycmqMAAECBAgQIECAAAECBAgQqFFAgFJjVY2JAAECBAgQIECAAAECBAgQyCogQMnKqTECBAgQIECAAAECBAgQIECgRgEBSo1VNSYCBAgQIECAAAECBAgQIEAgq4AAJSunxggQIECAAAECBAgQIECAAIEaBQQoNVbVmAgQIECAAAECBAgQIECAAIGsAgKUrJwaI0CAAAECBAgQIECAAAECBGoUEKDUWFVjIkCAAAECBAgQIECAAAECBLIKCFCycmqMAAECBAgQIECAAAECBAgQqFFAgFJjVY2JAAECBAgQIECAAAECBAgQyCogQMnKqTECBAgQIECAAAECBAgQIECgRgEBSo1VNSYCBAgQIECAAAECBAgQIEAgq4AAJSunxggQIECAAAECBAgQIECAAIEaBQQoNVbVmAgQIECAAAECBAgQIECAAIGsAgKUrJwaI0CAAAECBAgQIECAAAECBGoUEKDUWFVjIkCAAAECBAgQIECAAAECBLIKCFCycmqMAAECBAgQIECAAAECBAgQqFFAgFJjVY2JAAECBAgQIECAAAECBAgQyCogQMnKqTECBAgQIECAAAECBAgQIECgRgEBSo1VNSYCBAgQIECAAAECBAgQIEAgq4AAJSunxggQIECAAAECBAgQIECAAIEaBQQoNVbVmAgQIECAAAECBAgQIECAAIGsAgKUrJwaI0CAAAECBAgQIECAAAECBGoUEKDUWFVjIkCAAAECBAgQIECAAAECBLIKCFCycmqMAAECBAgQIECAAAECBAgQqFHgXwxc0EpzJkAkAAAAAElFTkSuQmCC"}}},{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"_kg_hide-input":false,"_kg_hide-output":true},"cell_type":"code","source":"# installing datatable\n!pip install ../input/python-datatable/datatable-0.11.0-cp37-cp37m-manylinux2010_x86_64.whl","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"## importing packages\nimport datatable as dt\nimport pandas as pd\n\nfrom datatable.models import Ftrl\nfrom sklearn.metrics import roc_auc_score\n\nimport riiideducation","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Loading data\nUsing the .jay format of the training data is the best option for datatable. It is available as a **Kaggle Dataset** [here](https://www.kaggle.com/rohanrao/riiid-train-data-multiple-formats).\n"},{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"## reading data\ntrain = dt.fread(\"../input/riiid-train-data-multiple-formats/riiid_train.jay\")\nquestions = dt.fread(\"../input/riiid-test-answer-prediction/questions.csv\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"## viewing train data\ntrain","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"## viewing questions data\nquestions","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Data Preparation\nFor this baseline notebook only **6 features** are used. Exploring and creating more features will certainly improve the score.\n\nThe first **90M** rows are used for training and rest for validation as a convenient choice though this might not be the most optimal validation strategy.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"## merging questions metadata with train data\nquestions.key = \"question_id\"\ntrain.names = {\"content_id\": \"question_id\"}\n\ntrain = train[dt.f.content_type_id == 0, :]\ntrain = train[:, :, dt.join(questions)]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"## preparing train and validation data\ntrain_features = [\"user_id\", \"question_id\", \"prior_question_elapsed_time\"]\nquestion_features = [\"bundle_id\", \"part\", \"tags\"]\n\ntarget = train[:, \"answered_correctly\"]\ntrain = train[:, train_features + question_features]\n\nX_train, X_valid = train[:90000000, :], train[90000000:, :]\ny_train, y_valid = target[:90000000, :], target[90000000:, :]","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## FTRL Model\nDatatable can be directly used to build an FTRL model. Documentation: https://datatable.readthedocs.io/en/latest/manual/ftrl.html\n\nFor this baseline notebook, all the default hyper-parameters are used. Tuning the hyper-parameters can improve the model's performance. Training the model on the entire dataset takes less than 20 seconds!"},{"metadata":{"trusted":true},"cell_type":"code","source":"## building and validating FTRL model\nmodel_ftrl = Ftrl() # you can set hyper-parameters with: model_ftrl = Ftrl(alpha = 0.005, nepochs = 1)\n\nmodel_ftrl.fit(X_train, y_train, X_validation=X_valid, y_validation=y_valid)\ny_pred = model_ftrl.predict(X_valid)\n    \nprint(f\"Validation AUC: {roc_auc_score(y_valid.to_numpy(), y_pred.to_numpy())}\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"## rebuilding FTRL model on entire dataset\nmodel_ftrl = Ftrl()\n\nmodel_ftrl.fit(train, target)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Inferencing and Incremental Learning\nOne of the great advantages of FTRL is the ability to perform **incremental learning**. What this really means is for every batch of newly available training data the model weights can be fine-tuned.\n\nSince this is precisely how the test data will be made available from the API, we could easily perform inferencing and then incremental learning of each batch of new data that becomes available."},{"metadata":{"trusted":true},"cell_type":"code","source":"## initializing test environment\nenv = riiideducation.make_env()\niter_test = env.iter_test()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"## inferencing and incremental learning\nprev_test = pd.DataFrame()\n\nfor (current_test, current_prediction_df) in iter_test:\n\n    # extracting previous batch's targets\n    prev_target = eval(current_test[\"prior_group_answers_correct\"].iloc[0])\n\n    # incremental learning of FTRL model\n    if prev_test.shape[0] > 0:\n        prev_test[\"target\"] = prev_target\n        X_prev_test = dt.Frame(prev_test[prev_test.content_type_id == 0].rename(columns = {\"content_id\": \"question_id\"})[train_features + [\"target\"]])\n        X_prev_test = X_prev_test[:, :, dt.join(questions)]\n\n        y_prev_test = X_prev_test[:, \"target\"]\n        X_prev_test = X_prev_test[:, train_features + question_features]\n\n        model_ftrl.fit(X_prev_test, y_prev_test)\n\n    # inferencing of current batch\n    X_test = dt.Frame(current_test[current_test.content_type_id == 0].rename(columns = {\"content_id\": \"question_id\"})[train_features])\n    X_test = X_test[:, :, dt.join(questions)]\n    X_test = X_test[:, train_features + question_features]\n    current_prediction_df.answered_correctly = model_ftrl.predict(X_test).to_numpy().ravel()\n    env.predict(current_prediction_df)\n\n    # retaining current batch data for next batch\n    prev_test = current_test.copy(deep = True)\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Scope of improvement\nWhile the notebook provides a baseline workflow for building an **incremental FTRL model**, there is a lot of scope for improving it. Here are some ideas (and there can be more) worth exploring:\n\n* Choose a good validation dataset that leads to stability\n* Create more features that can work well with FTRL\n* Tune [hyper-parameters of FTRL](https://datatable.readthedocs.io/en/latest/manual/ftrl.html#ftrl-model-parameters)\n* Blend multiple FTRL models or ensemble with models of other types"}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":4}