http://git-wip-us.apache.org/repos/asf/incubator-hivemall-site/blob/ba518dab/userguide/eval/rank.html ---------------------------------------------------------------------- diff --git a/userguide/eval/rank.html b/userguide/eval/rank.html index fba33ca..6179e90 100644 --- a/userguide/eval/rank.html +++ b/userguide/eval/rank.html @@ -598,14 +598,30 @@ </li> - <li class="chapter " data-level="3.5" data-path="../ft_engineering/tfidf.html"> + <li class="chapter " data-level="3.5" data-path="../ft_engineering/pairing.html"> - <a href="../ft_engineering/tfidf.html"> + <a href="../ft_engineering/pairing.html"> <b>3.5.</b> - TF-IDF Calculation + FEATURE PAIRING + + </a> + + + + <ul class="articles"> + + + <li class="chapter " data-level="3.5.1" data-path="../ft_engineering/polynomial.html"> + + <a href="../ft_engineering/polynomial.html"> + + + <b>3.5.1.</b> + + Polynomial Features </a> @@ -613,6 +629,11 @@ </li> + + </ul> + + </li> + <li class="chapter " data-level="3.6" data-path="../ft_engineering/ft_trans.html"> <a href="../ft_engineering/ft_trans.html"> @@ -664,6 +685,21 @@ </li> + <li class="chapter " data-level="3.7" data-path="../ft_engineering/tfidf.html"> + + <a href="../ft_engineering/tfidf.html"> + + + <b>3.7.</b> + + TF-IDF Calculation + + </a> + + + + </li> + @@ -761,7 +797,7 @@ - <li class="header">Part V - Prediction</li> + <li class="header">Part V - Supervised Learning</li> @@ -780,27 +816,19 @@ </li> - <li class="chapter " data-level="5.2" data-path="../regression/general.html"> - - <a href="../regression/general.html"> - - - <b>5.2.</b> - - Regression - - </a> - - - </li> - <li class="chapter " data-level="5.3" data-path="../binaryclass/general.html"> + + <li class="header">Part VI - Binary classification</li> + + + + <li class="chapter " data-level="6.1" data-path="../binaryclass/general.html"> <a href="../binaryclass/general.html"> - <b>5.3.</b> + <b>6.1.</b> Binary Classification @@ -810,21 +838,14 @@ </li> - - - - <li class="header">Part VI - Binary classification tutorials</li> - - - - <li class="chapter " data-level="6.1" data-path="../binaryclass/a9a.html"> + <li class="chapter " data-level="6.2" data-path="../binaryclass/a9a.html"> <a href="../binaryclass/a9a.html"> - <b>6.1.</b> + <b>6.2.</b> - a9a + a9a tutorial </a> @@ -833,12 +854,12 @@ <ul class="articles"> - <li class="chapter " data-level="6.1.1" data-path="../binaryclass/a9a_dataset.html"> + <li class="chapter " data-level="6.2.1" data-path="../binaryclass/a9a_dataset.html"> <a href="../binaryclass/a9a_dataset.html"> - <b>6.1.1.</b> + <b>6.2.1.</b> Data preparation @@ -848,12 +869,12 @@ </li> - <li class="chapter " data-level="6.1.2" data-path="../binaryclass/a9a_lr.html"> + <li class="chapter " data-level="6.2.2" data-path="../binaryclass/a9a_lr.html"> <a href="../binaryclass/a9a_lr.html"> - <b>6.1.2.</b> + <b>6.2.2.</b> Logistic Regression @@ -863,12 +884,12 @@ </li> - <li class="chapter " data-level="6.1.3" data-path="../binaryclass/a9a_minibatch.html"> + <li class="chapter " data-level="6.2.3" data-path="../binaryclass/a9a_minibatch.html"> <a href="../binaryclass/a9a_minibatch.html"> - <b>6.1.3.</b> + <b>6.2.3.</b> Mini-batch Gradient Descent @@ -883,14 +904,14 @@ </li> - <li class="chapter " data-level="6.2" data-path="../binaryclass/news20.html"> + <li class="chapter " data-level="6.3" data-path="../binaryclass/news20.html"> <a href="../binaryclass/news20.html"> - <b>6.2.</b> + <b>6.3.</b> - News20 + News20 tutorial </a> @@ -899,12 +920,12 @@ <ul class="articles"> - <li class="chapter " data-level="6.2.1" data-path="../binaryclass/news20_dataset.html"> + <li class="chapter " data-level="6.3.1" data-path="../binaryclass/news20_dataset.html"> <a href="../binaryclass/news20_dataset.html"> - <b>6.2.1.</b> + <b>6.3.1.</b> Data preparation @@ -914,12 +935,12 @@ </li> - <li class="chapter " data-level="6.2.2" data-path="../binaryclass/news20_pa.html"> + <li class="chapter " data-level="6.3.2" data-path="../binaryclass/news20_pa.html"> <a href="../binaryclass/news20_pa.html"> - <b>6.2.2.</b> + <b>6.3.2.</b> Perceptron, Passive Aggressive @@ -929,12 +950,12 @@ </li> - <li class="chapter " data-level="6.2.3" data-path="../binaryclass/news20_scw.html"> + <li class="chapter " data-level="6.3.3" data-path="../binaryclass/news20_scw.html"> <a href="../binaryclass/news20_scw.html"> - <b>6.2.3.</b> + <b>6.3.3.</b> CW, AROW, SCW @@ -944,12 +965,12 @@ </li> - <li class="chapter " data-level="6.2.4" data-path="../binaryclass/news20_adagrad.html"> + <li class="chapter " data-level="6.3.4" data-path="../binaryclass/news20_adagrad.html"> <a href="../binaryclass/news20_adagrad.html"> - <b>6.2.4.</b> + <b>6.3.4.</b> AdaGradRDA, AdaGrad, AdaDelta @@ -964,14 +985,14 @@ </li> - <li class="chapter " data-level="6.3" data-path="../binaryclass/kdd2010a.html"> + <li class="chapter " data-level="6.4" data-path="../binaryclass/kdd2010a.html"> <a href="../binaryclass/kdd2010a.html"> - <b>6.3.</b> + <b>6.4.</b> - KDD2010a + KDD2010a tutorial </a> @@ -980,12 +1001,12 @@ <ul class="articles"> - <li class="chapter " data-level="6.3.1" data-path="../binaryclass/kdd2010a_dataset.html"> + <li class="chapter " data-level="6.4.1" data-path="../binaryclass/kdd2010a_dataset.html"> <a href="../binaryclass/kdd2010a_dataset.html"> - <b>6.3.1.</b> + <b>6.4.1.</b> Data preparation @@ -995,12 +1016,12 @@ </li> - <li class="chapter " data-level="6.3.2" data-path="../binaryclass/kdd2010a_scw.html"> + <li class="chapter " data-level="6.4.2" data-path="../binaryclass/kdd2010a_scw.html"> <a href="../binaryclass/kdd2010a_scw.html"> - <b>6.3.2.</b> + <b>6.4.2.</b> PA, CW, AROW, SCW @@ -1015,14 +1036,14 @@ </li> - <li class="chapter " data-level="6.4" data-path="../binaryclass/kdd2010b.html"> + <li class="chapter " data-level="6.5" data-path="../binaryclass/kdd2010b.html"> <a href="../binaryclass/kdd2010b.html"> - <b>6.4.</b> + <b>6.5.</b> - KDD2010b + KDD2010b tutorial </a> @@ -1031,12 +1052,12 @@ <ul class="articles"> - <li class="chapter " data-level="6.4.1" data-path="../binaryclass/kdd2010b_dataset.html"> + <li class="chapter " data-level="6.5.1" data-path="../binaryclass/kdd2010b_dataset.html"> <a href="../binaryclass/kdd2010b_dataset.html"> - <b>6.4.1.</b> + <b>6.5.1.</b> Data preparation @@ -1046,12 +1067,12 @@ </li> - <li class="chapter " data-level="6.4.2" data-path="../binaryclass/kdd2010b_arow.html"> + <li class="chapter " data-level="6.5.2" data-path="../binaryclass/kdd2010b_arow.html"> <a href="../binaryclass/kdd2010b_arow.html"> - <b>6.4.2.</b> + <b>6.5.2.</b> AROW @@ -1066,14 +1087,14 @@ </li> - <li class="chapter " data-level="6.5" data-path="../binaryclass/webspam.html"> + <li class="chapter " data-level="6.6" data-path="../binaryclass/webspam.html"> <a href="../binaryclass/webspam.html"> - <b>6.5.</b> + <b>6.6.</b> - Webspam + Webspam tutorial </a> @@ -1082,12 +1103,12 @@ <ul class="articles"> - <li class="chapter " data-level="6.5.1" data-path="../binaryclass/webspam_dataset.html"> + <li class="chapter " data-level="6.6.1" data-path="../binaryclass/webspam_dataset.html"> <a href="../binaryclass/webspam_dataset.html"> - <b>6.5.1.</b> + <b>6.6.1.</b> Data pareparation @@ -1097,12 +1118,12 @@ </li> - <li class="chapter " data-level="6.5.2" data-path="../binaryclass/webspam_scw.html"> + <li class="chapter " data-level="6.6.2" data-path="../binaryclass/webspam_scw.html"> <a href="../binaryclass/webspam_scw.html"> - <b>6.5.2.</b> + <b>6.6.2.</b> PA1, AROW, SCW @@ -1117,14 +1138,14 @@ </li> - <li class="chapter " data-level="6.6" data-path="../binaryclass/titanic_rf.html"> + <li class="chapter " data-level="6.7" data-path="../binaryclass/titanic_rf.html"> <a href="../binaryclass/titanic_rf.html"> - <b>6.6.</b> + <b>6.7.</b> - Kaggle Titanic + Kaggle Titanic tutorial </a> @@ -1135,7 +1156,7 @@ - <li class="header">Part VII - Multiclass classification tutorials</li> + <li class="header">Part VII - Multiclass classification</li> @@ -1146,7 +1167,7 @@ <b>7.1.</b> - News20 Multiclass + News20 Multiclass tutorial </a> @@ -1257,7 +1278,7 @@ <b>7.2.</b> - Iris + Iris tutorial </a> @@ -1319,18 +1340,33 @@ - <li class="header">Part VIII - Regression tutorials</li> + <li class="header">Part VIII - Regression</li> - <li class="chapter " data-level="8.1" data-path="../regression/e2006.html"> + <li class="chapter " data-level="8.1" data-path="../regression/general.html"> - <a href="../regression/e2006.html"> + <a href="../regression/general.html"> <b>8.1.</b> - E2006-tfidf regression + Regression + + </a> + + + + </li> + + <li class="chapter " data-level="8.2" data-path="../regression/e2006.html"> + + <a href="../regression/e2006.html"> + + + <b>8.2.</b> + + E2006-tfidf regression tutorial </a> @@ -1339,12 +1375,12 @@ <ul class="articles"> - <li class="chapter " data-level="8.1.1" data-path="../regression/e2006_dataset.html"> + <li class="chapter " data-level="8.2.1" data-path="../regression/e2006_dataset.html"> <a href="../regression/e2006_dataset.html"> - <b>8.1.1.</b> + <b>8.2.1.</b> Data preparation @@ -1354,12 +1390,12 @@ </li> - <li class="chapter " data-level="8.1.2" data-path="../regression/e2006_arow.html"> + <li class="chapter " data-level="8.2.2" data-path="../regression/e2006_arow.html"> <a href="../regression/e2006_arow.html"> - <b>8.1.2.</b> + <b>8.2.2.</b> Passive Aggressive, AROW @@ -1374,14 +1410,14 @@ </li> - <li class="chapter " data-level="8.2" data-path="../regression/kddcup12tr2.html"> + <li class="chapter " data-level="8.3" data-path="../regression/kddcup12tr2.html"> <a href="../regression/kddcup12tr2.html"> - <b>8.2.</b> + <b>8.3.</b> - KDDCup 2012 track 2 CTR prediction + KDDCup 2012 track 2 CTR prediction tutorial </a> @@ -1390,12 +1426,12 @@ <ul class="articles"> - <li class="chapter " data-level="8.2.1" data-path="../regression/kddcup12tr2_dataset.html"> + <li class="chapter " data-level="8.3.1" data-path="../regression/kddcup12tr2_dataset.html"> <a href="../regression/kddcup12tr2_dataset.html"> - <b>8.2.1.</b> + <b>8.3.1.</b> Data preparation @@ -1405,12 +1441,12 @@ </li> - <li class="chapter " data-level="8.2.2" data-path="../regression/kddcup12tr2_lr.html"> + <li class="chapter " data-level="8.3.2" data-path="../regression/kddcup12tr2_lr.html"> <a href="../regression/kddcup12tr2_lr.html"> - <b>8.2.2.</b> + <b>8.3.2.</b> Logistic Regression, Passive Aggressive @@ -1420,12 +1456,12 @@ </li> - <li class="chapter " data-level="8.2.3" data-path="../regression/kddcup12tr2_lr_amplify.html"> + <li class="chapter " data-level="8.3.3" data-path="../regression/kddcup12tr2_lr_amplify.html"> <a href="../regression/kddcup12tr2_lr_amplify.html"> - <b>8.2.3.</b> + <b>8.3.3.</b> Logistic Regression with Amplifier @@ -1435,12 +1471,12 @@ </li> - <li class="chapter " data-level="8.2.4" data-path="../regression/kddcup12tr2_adagrad.html"> + <li class="chapter " data-level="8.3.4" data-path="../regression/kddcup12tr2_adagrad.html"> <a href="../regression/kddcup12tr2_adagrad.html"> - <b>8.2.4.</b> + <b>8.3.4.</b> AdaGrad, AdaDelta @@ -2220,7 +2256,7 @@ </tbody> </table> <p>How can we compare <code>dummy_rec</code> with <code>dummy_truth</code> to figure out the accuracy of <code>dummy_rec</code>?</p> -<p>To be more precise, in case we built a recommender system, let a target user <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>u</mi><mo>∈</mo><mrow><mi mathvariant="script">U</mi></mrow></mrow><annotation encoding="application/x-tex">u \in \mathcal{U}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.72243em;vertical-align:-0.0391em;"></span><span class="base textstyle uncramped"><span class="mord mathit">u</span><span class="mrel">∈</span><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.09931em;">U</span></span></span></span></span>, set of all items <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mrow><mi mathvariant="script">I</mi></mrow></mrow><annotation encoding="application/x-tex">\mathcal{I}</annotation></semantics></math></span><span class="katex -html" aria-hidden="true"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.07382em;">I</span></span></span></span></span>, ordered set of top-k recommended items <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mi>k</mi></msub><mo>(</mo><mi>u</mi><mo>)</mo><mo>⊂</mo><mrow><mi mathvariant="script">I</mi></mrow></mrow><annotation encoding="application/x-tex">I_k(u) \subset \mathcal{I}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="msupsub">< span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped mtight"><span class="mord mathit mtight" style="margin-right:0.03148em;">k</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span><span class="mopen">(</span><span class="mord mathit">u</span><span class="mclose">)</span><span class="mrel">⊂</span><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.07382em;">I</span></span></span></span></span>, and set of truth items <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msubsup><mrow><mi mathvariant="script">I</mi></mrow><mi>u</mi><mo>+</mo></msubsup></mrow><annotation encoding="application/x-tex">\mathcal{I}^+_u</ annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.771331em;"></span><span class="strut bottom" style="height:1.0183309999999999em;vertical-align:-0.247em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.07382em;">I</span></span><span class="msupsub"><span class="vlist"><span style="top:0.247em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped mtight"><span class="mord mathit mtight">u</span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped mtight"><span class="mbin mtight">+</span></span></span><span class="baseline-fix"><span class=" fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span></span>. Hence, when we launch top-2 recommendation for the above tables, <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mrow><mi mathvariant="script">U</mi></mrow><mo>=</mo><mo>{</mo><mn>1</mn><mo separator="true">,</mo><mn>2</mn><mo separator="true">,</mo><mn>3</mn><mo>}</mo></mrow><annotation encoding="application/x-tex">\mathcal{U} = \{1, 2, 3\}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.09931em;">U</span></span><span class="mrel">=</span><span class="mopen">{</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">2</span><span class="mpunct">,</span><span class="mord mathrm">3</span><span class="mclose">}</span></span></span></span>, <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mrow><mi mathvariant="script">I</mi></mrow><mo>=</mo><mo>{</mo><mn>1</mn><mo separator="true">,</mo><mn>2</mn><mo separator="true">,</mo><mn>3</mn><mo separator="true">,</mo><mn>4</mn><mo separator="true">,</mo><mn>5</mn><mo separator="true">,</mo><mn>6</mn><mo>}</mo></mrow><annotation encoding="application/x-tex">\mathcal{I} = \{1, 2, 3, 4, 5, 6\}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.07382em;">I</span></span><span class="mrel">=</span><span class="mopen">{</span><span class="mo rd mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">2</span><span class="mpunct">,</span><span class="mord mathrm">3</span><span class="mpunct">,</span><span class="mord mathrm">4</span><span class="mpunct">,</span><span class="mord mathrm">5</span><span class="mpunct">,</span><span class="mord mathrm">6</span><span class="mclose">}</span></span></span></span> and <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mn>2</mn></msub><mo>(</mo><mi>u</mi><mo>)</mo><mo>=</mo><mo>{</mo><mn>1</mn><mo separator="true">,</mo><mn>3</mn><mo>}</mo></mrow><annotation encoding="application/x-tex">I_2(u) = \{1, 3\}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span ><span class="msupsub"><span class="vlist"><span >style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span >class="fontsize-ensurer reset-size5 size5"><span >style="font-size:0em;">​</span></span><span class="reset-textstyle >scriptstyle cramped mtight"><span class="mord mathrm >mtight">2</span></span></span><span class="baseline-fix"><span >class="fontsize-ensurer reset-size5 size5"><span >style="font-size:0em;">​</span></span>​</span></span></span></span><span > class="mopen">(</span><span class="mord mathit">u</span><span >class="mclose">)</span><span class="mrel">=</span><span >class="mopen">{</span><span class="mord mathrm">1</span><span >class="mpunct">,</span><span class="mord mathrm">3</span><span >class="mclose">}</span></span></span></span> which consists of two >highest-scored items, and <span class="katex"><span >class="katex-mathml"><math><semantics><mrow><msubsup><mrow><mi >mathvariant="script">I</mi></mrow><mi>u</mi><mo>+</mo></msubsup><mo>=</mo><mo>{ </mo><mn>1</mn><mo separator="true">,</mo><mn>2</mn><mo separator="true">,</mo><mn>4</mn><mo>}</mo></mrow><annotation encoding="application/x-tex">\mathcal{I}^+_u = \{1, 2, 4\}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.771331em;"></span><span class="strut bottom" style="height:1.021331em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.07382em;">I</span></span><span class="msupsub"><span class="vlist"><span style="top:0.247em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped mtight"><span class="mord mathit mtight">u</span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">&# x200B;</span></span><span class="reset-textstyle scriptstyle uncramped mtight"><span class="mbin mtight">+</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span><span class="mrel">=</span><span class="mopen">{</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">2</span><span class="mpunct">,</span><span class="mord mathrm">4</span><span class="mclose">}</span></span></span></span>.</p> +<p>To be more precise, in case we built a recommender system, let a target user <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>u</mi><mo>∈</mo><mrow><mi mathvariant="script">U</mi></mrow></mrow><annotation encoding="application/x-tex">u \in \mathcal{U}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.72243em;vertical-align:-0.0391em;"></span><span class="base textstyle uncramped"><span class="mord mathit">u</span><span class="mrel">∈</span><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.09931em;">U</span></span></span></span></span>, set of all items <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mrow><mi mathvariant="script">I</mi></mrow></mrow><annotation encoding="application/x-tex">\mathcal{I}</annotation></semantics></math></span><span class="katex -html" aria-hidden="true"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.07382em;">I</span></span></span></span></span>, ordered set of top-k recommended items <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mi>k</mi></msub><mo>(</mo><mi>u</mi><mo>)</mo><mo>⊂</mo><mrow><mi mathvariant="script">I</mi></mrow></mrow><annotation encoding="application/x-tex">I_k(u) \subset \mathcal{I}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="vlist"><sp an style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord mathit">u</span><span class="mclose">)</span><span class="mrel">⊂</span><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.07382em;">I</span></span></span></span></span>, and set of truth items <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msubsup><mrow><mi mathvariant="script">I</mi></mrow><mi>u</mi><mo>+</mo></msubsup></mrow><annotation encoding="application/x-tex">\mathcal{I}^+_u</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.771331em;"></span><span class="strut bottom" style="height:1.0183309999999999em;vertical-align:-0.247em;"></span><span class="base textstyle uncramped"><span class=""><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.07382em;">I</span></span><span class="vlist"><span style="top:0.247em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">u</span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">+</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</ span></span></span></span></span></span>. Hence, when we launch top-2 recommendation for the above tables, <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mrow><mi mathvariant="script">U</mi></mrow><mo>=</mo><mo>{</mo><mn>1</mn><mo separator="true">,</mo><mn>2</mn><mo separator="true">,</mo><mn>3</mn><mo>}</mo></mrow><annotation encoding="application/x-tex">\mathcal{U} = \{1, 2, 3\}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.09931em;">U</span></span><span class="mrel">=</span><span class="mopen">{</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">2</span><span class="mpunct">,</span><span class="mord mathrm">3</span><span class= "mclose">}</span></span></span></span>, <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mrow><mi mathvariant="script">I</mi></mrow><mo>=</mo><mo>{</mo><mn>1</mn><mo separator="true">,</mo><mn>2</mn><mo separator="true">,</mo><mn>3</mn><mo separator="true">,</mo><mn>4</mn><mo separator="true">,</mo><mn>5</mn><mo separator="true">,</mo><mn>6</mn><mo>}</mo></mrow><annotation encoding="application/x-tex">\mathcal{I} = \{1, 2, 3, 4, 5, 6\}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.07382em;">I</span></span><span class="mrel">=</span><span class="mopen">{</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">2</span><span class="mpunct">, </span><span class="mord mathrm">3</span><span class="mpunct">,</span><span class="mord mathrm">4</span><span class="mpunct">,</span><span class="mord mathrm">5</span><span class="mpunct">,</span><span class="mord mathrm">6</span><span class="mclose">}</span></span></span></span> and <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mn>2</mn></msub><mo>(</mo><mi>u</mi><mo>)</mo><mo>=</mo><mo>{</mo><mn>1</mn><mo separator="true">,</mo><mn>3</mn><mo>}</mo></mrow><annotation encoding="application/x-tex">I_2(u) = \{1, 3\}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="f ontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathrm">2</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord mathit">u</span><span class="mclose">)</span><span class="mrel">=</span><span class="mopen">{</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">3</span><span class="mclose">}</span></span></span></span> which consists of two highest-scored items, and <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msubsup><mrow><mi mathvariant="script">I</mi></mrow><mi>u</mi><mo>+</mo></msubsup><mo>=</mo><mo>{</mo><mn>1</mn><mo separator="true">,</mo><mn>2</mn><mo separator="true">,</mo><mn>4</mn><mo>}</mo></mrow><annotation encoding="application/x-tex"> \mathcal{I}^+_u = \{1, 2, 4\}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.771331em;"></span><span class="strut bottom" style="height:1.021331em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class=""><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.07382em;">I</span></span><span class="vlist"><span style="top:0.247em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">u</span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">+</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5 "><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mopen">{</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">2</span><span class="mpunct">,</span><span class="mord mathrm">4</span><span class="mclose">}</span></span></span></span>.</p> <p>Evaluation of the ordered sets can be done by the following query:</p> <pre><code class="lang-sql">with truth as ( <span class="hljs-keyword">select</span> userid, collect_set(itemid) <span class="hljs-keyword">as</span> truth @@ -2312,43 +2348,43 @@ rec <span class="hljs-keyword">as</span> ( <p><strong>Recall-at-k (Recall@k)</strong> indicates coverage of truth samples as a result of top-k recommendation. The value is computed by the following equation: <span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mrow><mi mathvariant="normal">R</mi><mi mathvariant="normal">e</mi><mi mathvariant="normal">c</mi><mi mathvariant="normal">a</mi><mi mathvariant="normal">l</mi><mi mathvariant="normal">l</mi><mi mathvariant="normal">@</mi></mrow><mi>k</mi><mo>=</mo><mfrac><mrow><mi mathvariant="normal">∣</mi><msubsup><mrow><mi mathvariant="script">I</mi></mrow><mi>u</mi><mo>+</mo></msubsup><mo>∩</mo><msub><mi>I</mi><mi>k</mi></msub><mo>(</mo><mi>u</mi><mo>)</mo><mi mathvariant="normal">∣</mi></mrow><mrow><mi mathvariant="normal">∣</mi><msubsup><mrow><mi mathvariant="script">I</mi></mrow><mi>u</mi><mo>+</mo></msubsup><mi mathvariant="normal">∣</mi></mrow></mfrac><mi mathvariant="normal">.</mi></mrow><annotation encoding="application/x-tex"> \mathrm{Recall@}k = \frac{|\mathcal{I}^+_u \cap I_k(u)|}{|\mathcal{I}^+_u|}. -</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:1.448331em;"></span><span class="strut bottom" style="height:2.384331em;vertical-align:-0.936em;"></span><span class="base displaystyle textstyle uncramped"><span class="mord displaystyle textstyle uncramped"><span class="mord mathrm">R</span><span class="mord mathrm">e</span><span class="mord mathrm">c</span><span class="mord mathrm">a</span><span class="mord mathrm">l</span><span class="mord mathrm">l</span><span class="mord mathrm">@</span></span><span class="mord mathit" style="margin-right:0.03148em;">k</span><span class="mrel">=</span><span class="mord reset-textstyle displaystyle textstyle uncramped"><span class="mopen sizing reset-size5 size5 reset-textstyle textstyle uncramped nulldelimiter"></span><span class="mfrac"><span class="vlist"><span style="top:0.686em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></s pan><span class="reset-textstyle textstyle cramped"><span class="mord textstyle cramped"><span class="mord mathrm">∣</span><span class="mord"><span class="mord textstyle cramped"><span class="mord mathcal" style="margin-right:0.07382em;">I</span></span><span class="msupsub"><span class="vlist"><span style="top:0.247em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped mtight"><span class="mord mathit mtight">u</span></span></span><span style="top:-0.28900000000000003em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped mtight"><span class="mbin mtight">+</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span><span class="mord mathrm">∣</span></span></span></span><span style="top:-0.2300000000000001em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle textstyle uncramped frac-line"></span></span><span style="top:-0.677em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle textstyle uncramped"><span class="mord textstyle uncramped"><span class="mord mathrm">∣</span><span class="mord"><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.07382em;">I</span></span><span class="msupsub"><span class="vlist"><span style="top:0.247em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped mtight"><span class="mord mathit mtight">u</span></span></span><span style="top:-0.363em;margin-ri ght:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped mtight"><span class="mbin mtight">+</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span><span class="mbin">∩</span><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped mtight"><span class="mord mathit mtight" style="margin-right:0.03148em;">k</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</spa n></span></span></span><span class="mopen">(</span><span class="mord mathit">u</span><span class="mclose">)</span><span class="mord mathrm">∣</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose sizing reset-size5 size5 reset-textstyle textstyle uncramped nulldelimiter"></span></span><span class="mord mathrm">.</span></span></span></span></span> -Here, <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi mathvariant="normal">∣</mi><msubsup><mrow><mi mathvariant="script">I</mi></mrow><mi>u</mi><mo>+</mo></msubsup><mo>∩</mo><msub><mi>I</mi><mi>k</mi></msub><mo>(</mo><mi>u</mi><mo>)</mo><mi mathvariant="normal">∣</mi></mrow><annotation encoding="application/x-tex">|\mathcal{I}^+_u \cap I_k(u)|</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.771331em;"></span><span class="strut bottom" style="height:1.021331em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathrm">∣</span><span class="mord"><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.07382em;">I</span></span><span class="msupsub"><span class="vlist"><span style="top:0.247em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">  0B;</span></span><span class="reset-textstyle scriptstyle cramped mtight"><span class="mord mathit mtight">u</span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped mtight"><span class="mbin mtight">+</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span><span class="mbin">∩</span><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped mtight"><span class="mord mathit mtight" style="margin-right:0.03148em; ">k</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span><span class="mopen">(</span><span class="mord mathit">u</span><span class="mclose">)</span><span class="mord mathrm">∣</span></span></span></span> is the number of true positives. If <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mn>2</mn></msub><mo>(</mo><mi>u</mi><mo>)</mo><mo>=</mo><mo>{</mo><mn>1</mn><mo separator="true">,</mo><mn>3</mn><mo>}</mo></mrow><annotation encoding="application/x-tex">I_2(u) = \{1, 3\}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class ="msupsub"><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped mtight"><span class="mord mathrm mtight">2</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span><span class="mopen">(</span><span class="mord mathit">u</span><span class="mclose">)</span><span class="mrel">=</span><span class="mopen">{</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">3</span><span class="mclose">}</span></span></span></span> and <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msubsup><mrow><mi mathvariant="script">I</mi></mrow><mi>u</mi><mo>+</mo></msubsup><mo>=</mo><mo>{</mo><mn>1</mn><mo separator="true">,</mo><mn>2</mn><mo separator="true">,</mo><mn>4</mn><mo>}</mo></mrow><annotation encoding="application/x-tex">\mathcal{I}^+_u = \{1, 2, 4\}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.771331em;"></span><span class="strut bottom" style="height:1.021331em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.07382em;">I</span></span><span class="msupsub"><span class="vlist"><span style="top:0.247em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped mtight"><span class="mord mathit mtight">u</span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scripts tyle uncramped mtight"><span class="mbin mtight">+</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span><span class="mrel">=</span><span class="mopen">{</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">2</span><span class="mpunct">,</span><span class="mord mathrm">4</span><span class="mclose">}</span></span></span></span>, <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mrow><mi mathvariant="normal">R</mi><mi mathvariant="normal">e</mi><mi mathvariant="normal">c</mi><mi mathvariant="normal">a</mi><mi mathvariant="normal">l</mi><mi mathvariant="normal">l</mi><mi mathvariant="normal">@</mi></mrow><mn>2</mn><mo>=</mo><mn>1</mn><mi mathvariant="normal">/</mi><mn>3</mn><mo>≈</mo><mn>0</mn><mi mathvariant="normal">.</mi><mn>3</mn><mn>3</mn><mn>3</mn></mrow><annotation encoding="applicat ion/x-tex">\mathrm{Recall@}2 = 1 / 3 \approx 0.333</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord textstyle uncramped"><span class="mord mathrm">R</span><span class="mord mathrm">e</span><span class="mord mathrm">c</span><span class="mord mathrm">a</span><span class="mord mathrm">l</span><span class="mord mathrm">l</span><span class="mord mathrm">@</span></span><span class="mord mathrm">2</span><span class="mrel">=</span><span class="mord mathrm">1</span><span class="mord mathrm">/</span><span class="mord mathrm">3</span><span class="mrel">≈</span><span class="mord mathrm">0</span><span class="mord mathrm">.</span><span class="mord mathrm">3</span><span class="mord mathrm">3</span><span class="mord mathrm">3</span></span></span></span>.</p> +</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:1.448331em;"></span><span class="strut bottom" style="height:2.384331em;vertical-align:-0.936em;"></span><span class="base displaystyle textstyle uncramped"><span class="mord displaystyle textstyle uncramped"><span class="mord mathrm">R</span><span class="mord mathrm">e</span><span class="mord mathrm">c</span><span class="mord mathrm">a</span><span class="mord mathrm">l</span><span class="mord mathrm">l</span><span class="mord mathrm">@</span></span><span class="mord mathit" style="margin-right:0.03148em;">k</span><span class="mrel">=</span><span class="mord reset-textstyle displaystyle textstyle uncramped"><span class="sizing reset-size5 size5 reset-textstyle textstyle uncramped nulldelimiter"></span><span class="mfrac"><span class="vlist"><span style="top:0.686em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><s pan class="reset-textstyle textstyle cramped"><span class="mord textstyle cramped"><span class="mord mathrm">∣</span><span class=""><span class="mord textstyle cramped"><span class="mord mathcal" style="margin-right:0.07382em;">I</span></span><span class="vlist"><span style="top:0.247em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">u</span></span></span><span style="top:-0.29733em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord">+</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mord mathrm">∣</span></span></span></span><span style="top:-0.230 0000000000001em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle textstyle uncramped frac-line"></span></span><span style="top:-0.677em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle textstyle uncramped"><span class="mord textstyle uncramped"><span class="mord mathrm">∣</span><span class=""><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.07382em;">I</span></span><span class="vlist"><span style="top:0.247em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">u</span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">+</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mbin">∩</span><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord mathit">u</span><span class="mclose">)</span><span class="mord mathrm">∣</span></span></span></span><span c lass="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="sizing reset-size5 size5 reset-textstyle textstyle uncramped nulldelimiter"></span></span><span class="mord mathrm">.</span></span></span></span></span> +Here, <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi mathvariant="normal">∣</mi><msubsup><mrow><mi mathvariant="script">I</mi></mrow><mi>u</mi><mo>+</mo></msubsup><mo>∩</mo><msub><mi>I</mi><mi>k</mi></msub><mo>(</mo><mi>u</mi><mo>)</mo><mi mathvariant="normal">∣</mi></mrow><annotation encoding="application/x-tex">|\mathcal{I}^+_u \cap I_k(u)|</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.771331em;"></span><span class="strut bottom" style="height:1.021331em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathrm">∣</span><span class=""><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.07382em;">I</span></span><span class="vlist"><span style="top:0.247em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span cla ss="reset-textstyle scriptstyle cramped"><span class="mord mathit">u</span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">+</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mbin">∩</span><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size 5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord mathit">u</span><span class="mclose">)</span><span class="mord mathrm">∣</span></span></span></span> is the number of true positives. If <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mn>2</mn></msub><mo>(</mo><mi>u</mi><mo>)</mo><mo>=</mo><mo>{</mo><mn>1</mn><mo separator="true">,</mo><mn>3</mn><mo>}</mo></mrow><annotation encoding="application/x-tex">I_2(u) = \{1, 3\}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensu rer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathrm">2</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord mathit">u</span><span class="mclose">)</span><span class="mrel">=</span><span class="mopen">{</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">3</span><span class="mclose">}</span></span></span></span> and <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msubsup><mrow><mi mathvariant="script">I</mi></mrow><mi>u</mi><mo>+</mo></msubsup><mo>=</mo><mo>{</mo><mn>1</mn><mo separator="true">,</mo><mn>2</mn><mo separator="true">,</mo><mn>4</mn><mo>}</mo></mrow><annotation encoding="application/x-tex">\mathcal{I}^+_u = \{1, 2, 4\}</annotation></semantics></ math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.771331em;"></span><span class="strut bottom" style="height:1.021331em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class=""><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.07382em;">I</span></span><span class="vlist"><span style="top:0.247em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">u</span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">+</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>&#x 200B;</span></span></span><span class="mrel">=</span><span class="mopen">{</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">2</span><span class="mpunct">,</span><span class="mord mathrm">4</span><span class="mclose">}</span></span></span></span>, <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mrow><mi mathvariant="normal">R</mi><mi mathvariant="normal">e</mi><mi mathvariant="normal">c</mi><mi mathvariant="normal">a</mi><mi mathvariant="normal">l</mi><mi mathvariant="normal">l</mi><mi mathvariant="normal">@</mi></mrow><mn>2</mn><mo>=</mo><mn>1</mn><mi mathvariant="normal">/</mi><mn>3</mn><mo>≈</mo><mn>0</mn><mi mathvariant="normal">.</mi><mn>3</mn><mn>3</mn><mn>3</mn></mrow><annotation encoding="application/x-tex">\mathrm{Recall@}2 = 1 / 3 \approx 0.333</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom " style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord textstyle uncramped"><span class="mord mathrm">R</span><span class="mord mathrm">e</span><span class="mord mathrm">c</span><span class="mord mathrm">a</span><span class="mord mathrm">l</span><span class="mord mathrm">l</span><span class="mord mathrm">@</span></span><span class="mord mathrm">2</span><span class="mrel">=</span><span class="mord mathrm">1</span><span class="mord mathrm">/</span><span class="mord mathrm">3</span><span class="mrel">≈</span><span class="mord mathrm">0</span><span class="mord mathrm">.</span><span class="mord mathrm">3</span><span class="mord mathrm">3</span><span class="mord mathrm">3</span></span></span></span>.</p> <h2 id="precision-at-k">Precision-At-k</h2> -<p>Unlike Recall@k, <strong>Precision-at-k (Precision@k)</strong> evaluates correctness of a top-k recommendation list <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mi>k</mi></msub><mo>(</mo><mi>u</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">I_k(u)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped mtight"><span class="mord mathit mtight" style="margin-right:0.03148em;">k</span></span></span><s pan class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span><span class="mopen">(</span><span class="mord mathit">u</span><span class="mclose">)</span></span></span></span> according to the portion of true positives in the list as: +<p>Unlike Recall@k, <strong>Precision-at-k (Precision@k)</strong> evaluates correctness of a top-k recommendation list <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mi>k</mi></msub><mo>(</mo><mi>u</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">I_k(u)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span><span class="baseline-fix"><span class ="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord mathit">u</span><span class="mclose">)</span></span></span></span> according to the portion of true positives in the list as: <span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mrow><mi mathvariant="normal">P</mi><mi mathvariant="normal">r</mi><mi mathvariant="normal">e</mi><mi mathvariant="normal">c</mi><mi mathvariant="normal">i</mi><mi mathvariant="normal">s</mi><mi mathvariant="normal">i</mi><mi mathvariant="normal">o</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">@</mi></mrow><mi>k</mi><mo>=</mo><mfrac><mrow><mi mathvariant="normal">∣</mi><msubsup><mrow><mi mathvariant="script">I</mi></mrow><mi>u</mi><mo>+</mo></msubsup><mo>∩</mo><msub><mi>I</mi><mi>k</mi></msub><mo>(</mo><mi>u</mi><mo>)</mo><mi mathvariant="normal">∣</mi></mrow><mrow><mi mathvariant="normal">∣</mi><msub><mi>I</mi><mi>k</mi></msub><mo>(</mo><mi>u</mi><mo>)</mo><mi mathvariant="normal">∣</mi></mrow></mfrac><mi mathvariant="normal">.</mi></mrow><annotation encoding="application/x-tex"> \mathrm{Precision@}k = \frac{|\mathcal{I}^+_u \cap I_k(u)|}{|I_k(u)|}. -</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:1.448331em;"></span><span class="strut bottom" style="height:2.384331em;vertical-align:-0.936em;"></span><span class="base displaystyle textstyle uncramped"><span class="mord displaystyle textstyle uncramped"><span class="mord mathrm">P</span><span class="mord mathrm">r</span><span class="mord mathrm">e</span><span class="mord mathrm">c</span><span class="mord mathrm">i</span><span class="mord mathrm">s</span><span class="mord mathrm">i</span><span class="mord mathrm">o</span><span class="mord mathrm">n</span><span class="mord mathrm">@</span></span><span class="mord mathit" style="margin-right:0.03148em;">k</span><span class="mrel">=</span><span class="mord reset-textstyle displaystyle textstyle uncramped"><span class="mopen sizing reset-size5 size5 reset-textstyle textstyle uncramped nulldelimiter"></span><span class="mfrac"><span class="vlist"><span style="top:0.68 6em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle textstyle cramped"><span class="mord textstyle cramped"><span class="mord mathrm">∣</span><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped mtight"><span class="mord mathit mtight" style="margin-right:0.03148em;">k</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span><span class="mopen">(</span><span class="mord mathit">u</span><span class="mclose">)</span><span class="mord mathrm">∣</span></span></span></span><span sty le="top:-0.2300000000000001em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle textstyle uncramped frac-line"></span></span><span style="top:-0.677em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle textstyle uncramped"><span class="mord textstyle uncramped"><span class="mord mathrm">∣</span><span class="mord"><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.07382em;">I</span></span><span class="msupsub"><span class="vlist"><span style="top:0.247em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped mtight"><span class="mord mathit mtight">u</span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><sp an style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped mtight"><span class="mbin mtight">+</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span><span class="mbin">∩</span><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped mtight"><span class="mord mathit mtight" style="margin-right:0.03148em;">k</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span><span class="mopen">(</span><span class="m ord mathit">u</span><span class="mclose">)</span><span class="mord mathrm">∣</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose sizing reset-size5 size5 reset-textstyle textstyle uncramped nulldelimiter"></span></span><span class="mord mathrm">.</span></span></span></span></span> -In other words, Precision@k means how much the recommendation list covers true pairs. Here, <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mrow><mi mathvariant="normal">P</mi><mi mathvariant="normal">r</mi><mi mathvariant="normal">e</mi><mi mathvariant="normal">c</mi><mi mathvariant="normal">i</mi><mi mathvariant="normal">s</mi><mi mathvariant="normal">i</mi><mi mathvariant="normal">o</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">@</mi></mrow><mn>2</mn><mo>=</mo><mn>1</mn><mi mathvariant="normal">/</mi><mn>2</mn><mo>=</mo><mn>0</mn><mi mathvariant="normal">.</mi><mn>5</mn></mrow><annotation encoding="application/x-tex">\mathrm{Precision@}2 = 1 / 2 = 0.5</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord textstyle uncramped"><span clas s="mord mathrm">P</span><span class="mord mathrm">r</span><span class="mord mathrm">e</span><span class="mord mathrm">c</span><span class="mord mathrm">i</span><span class="mord mathrm">s</span><span class="mord mathrm">i</span><span class="mord mathrm">o</span><span class="mord mathrm">n</span><span class="mord mathrm">@</span></span><span class="mord mathrm">2</span><span class="mrel">=</span><span class="mord mathrm">1</span><span class="mord mathrm">/</span><span class="mord mathrm">2</span><span class="mrel">=</span><span class="mord mathrm">0</span><span class="mord mathrm">.</span><span class="mord mathrm">5</span></span></span></span> where <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mn>2</mn></msub><mo>(</mo><mi>u</mi><mo>)</mo><mo>=</mo><mo>{</mo><mn>1</mn><mo separator="true">,</mo><mn>3</mn><mo>}</mo></mrow><annotation encoding="application/x-tex">I_2(u) = \{1, 3\}</annotation></semantics></math></span><span class="katex-html" a ria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped mtight"><span class="mord mathrm mtight">2</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span><span class="mopen">(</span><span class="mord mathit">u</span><span class="mclose">)</span><span class="mrel">=</span><span class="mopen">{</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">3</span ><span class="mclose">}</span></span></span></span> and <span >class="katex"><span >class="katex-mathml"><math><semantics><mrow><msubsup><mrow><mi >mathvariant="script">I</mi></mrow><mi>u</mi><mo>+</mo></msubsup><mo>=</mo><mo>{</mo><mn>1</mn><mo > separator="true">,</mo><mn>2</mn><mo >separator="true">,</mo><mn>4</mn><mo>}</mo></mrow><annotation >encoding="application/x-tex">\mathcal{I}^+_u = \{1, 2, >4\}</annotation></semantics></math></span><span class="katex-html" >aria-hidden="true"><span class="strut" >style="height:0.771331em;"></span><span class="strut bottom" >style="height:1.021331em;vertical-align:-0.25em;"></span><span class="base >textstyle uncramped"><span class="mord"><span class="mord textstyle >uncramped"><span class="mord mathcal" >style="margin-right:0.07382em;">I</span></span><span class="msupsub"><span >class="vlist"><span style="top:0.247em;margin-right:0.05em;"><span >class="fontsize-ensurer reset-size5 size5"><span >style="font-size:0em;">​</span></span><span class="res et-textstyle scriptstyle cramped mtight"><span class="mord mathit mtight">u</span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped mtight"><span class="mbin mtight">+</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span><span class="mrel">=</span><span class="mopen">{</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">2</span><span class="mpunct">,</span><span class="mord mathrm">4</span><span class="mclose">}</span></span></span></span>.</p> +</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:1.448331em;"></span><span class="strut bottom" style="height:2.384331em;vertical-align:-0.936em;"></span><span class="base displaystyle textstyle uncramped"><span class="mord displaystyle textstyle uncramped"><span class="mord mathrm">P</span><span class="mord mathrm">r</span><span class="mord mathrm">e</span><span class="mord mathrm">c</span><span class="mord mathrm">i</span><span class="mord mathrm">s</span><span class="mord mathrm">i</span><span class="mord mathrm">o</span><span class="mord mathrm">n</span><span class="mord mathrm">@</span></span><span class="mord mathit" style="margin-right:0.03148em;">k</span><span class="mrel">=</span><span class="mord reset-textstyle displaystyle textstyle uncramped"><span class="sizing reset-size5 size5 reset-textstyle textstyle uncramped nulldelimiter"></span><span class="mfrac"><span class="vlist"><span style="top:0.686em;"> <span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle textstyle cramped"><span class="mord textstyle cramped"><span class="mord mathrm">∣</span><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord mathit">u</span><span class="mclose">)</span><span class="mord mathrm">∣</span></span></span></span><span style="top:-0.2300000000000001em;"><span class="font size-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle textstyle uncramped frac-line"></span></span><span style="top:-0.677em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle textstyle uncramped"><span class="mord textstyle uncramped"><span class="mord mathrm">∣</span><span class=""><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.07382em;">I</span></span><span class="vlist"><span style="top:0.247em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">u</span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">+</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mbin">∩</span><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord mathit">u</span><span class="mclose">)</span><span class="mord mathrm">∣</span></span></span></span><span class="baseline-fix"><span class="fo ntsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="sizing reset-size5 size5 reset-textstyle textstyle uncramped nulldelimiter"></span></span><span class="mord mathrm">.</span></span></span></span></span> +In other words, Precision@k means how much the recommendation list covers true pairs. Here, <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mrow><mi mathvariant="normal">P</mi><mi mathvariant="normal">r</mi><mi mathvariant="normal">e</mi><mi mathvariant="normal">c</mi><mi mathvariant="normal">i</mi><mi mathvariant="normal">s</mi><mi mathvariant="normal">i</mi><mi mathvariant="normal">o</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">@</mi></mrow><mn>2</mn><mo>=</mo><mn>1</mn><mi mathvariant="normal">/</mi><mn>2</mn><mo>=</mo><mn>0</mn><mi mathvariant="normal">.</mi><mn>5</mn></mrow><annotation encoding="application/x-tex">\mathrm{Precision@}2 = 1 / 2 = 0.5</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord textstyle uncramped"><span clas s="mord mathrm">P</span><span class="mord mathrm">r</span><span class="mord mathrm">e</span><span class="mord mathrm">c</span><span class="mord mathrm">i</span><span class="mord mathrm">s</span><span class="mord mathrm">i</span><span class="mord mathrm">o</span><span class="mord mathrm">n</span><span class="mord mathrm">@</span></span><span class="mord mathrm">2</span><span class="mrel">=</span><span class="mord mathrm">1</span><span class="mord mathrm">/</span><span class="mord mathrm">2</span><span class="mrel">=</span><span class="mord mathrm">0</span><span class="mord mathrm">.</span><span class="mord mathrm">5</span></span></span></span> where <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mn>2</mn></msub><mo>(</mo><mi>u</mi><mo>)</mo><mo>=</mo><mo>{</mo><mn>1</mn><mo separator="true">,</mo><mn>3</mn><mo>}</mo></mrow><annotation encoding="application/x-tex">I_2(u) = \{1, 3\}</annotation></semantics></math></span><span class="katex-html" a ria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathrm">2</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord mathit">u</span><span class="mclose">)</span><span class="mrel">=</span><span class="mopen">{</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">3</span><span class="mclose">}</span></span></span ></span> and <span class="katex"><span >class="katex-mathml"><math><semantics><mrow><msubsup><mrow><mi >mathvariant="script">I</mi></mrow><mi>u</mi><mo>+</mo></msubsup><mo>=</mo><mo>{</mo><mn>1</mn><mo > separator="true">,</mo><mn>2</mn><mo >separator="true">,</mo><mn>4</mn><mo>}</mo></mrow><annotation >encoding="application/x-tex">\mathcal{I}^+_u = \{1, 2, >4\}</annotation></semantics></math></span><span class="katex-html" >aria-hidden="true"><span class="strut" >style="height:0.771331em;"></span><span class="strut bottom" >style="height:1.021331em;vertical-align:-0.25em;"></span><span class="base >textstyle uncramped"><span class=""><span class="mord textstyle >uncramped"><span class="mord mathcal" >style="margin-right:0.07382em;">I</span></span><span class="vlist"><span >style="top:0.247em;margin-right:0.05em;"><span class="fontsize-ensurer >reset-size5 size5"><span style="font-size:0em;">​</span></span><span >class="reset-textstyle scriptstyle cramped"><span class="mord >mathit">u</span>< /span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">+</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mopen">{</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">2</span><span class="mpunct">,</span><span class="mord mathrm">4</span><span class="mclose">}</span></span></span></span>.</p> <h2 id="mean-average-precision-map">Mean Average Precision (MAP)</h2> -<p>While the original Precision@k provides a score for a fixed-length recommendation list <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mi>k</mi></msub><mo>(</mo><mi>u</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">I_k(u)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped mtight"><span class="mord mathit mtight" style="margin-right:0.03148em;">k</span></span></span><span class="baseline-fix"><spa n class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span><span class="mopen">(</span><span class="mord mathit">u</span><span class="mclose">)</span></span></span></span>, <strong>mean average precision (MAP)</strong> computes an average of the scores over all recommendation sizes from 1 to <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi mathvariant="normal">∣</mi><mrow><mi mathvariant="script">I</mi></mrow><mi mathvariant="normal">∣</mi></mrow><annotation encoding="application/x-tex">|\mathcal{I}|</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathrm">∣</span><span class="mord textstyle uncramped"><span class="mord mathcal" style="margin-right:0.07 382em;">I</span></span><span class="mord mathrm">∣</span></span></span></span>. MAP is formulated with an indicator function for <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>i</mi><mi>n</mi></msub></mrow><annotation encoding="application/x-tex">i_n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.80952em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">i</span><span class="msupsub"><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped mtight"><span class="mord mathit mtight">n</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><spa n style="font-size:0em;">​</span></span>​</span></span></span></span></span></span></span> (the <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">n</span></span></span></span>-th item of <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>I</mi><mo>(</mo><mi>u</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">I(u)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="mopen">(</span><span class="mord mathit">u</span><span class="mclose">)</span></span></span></span>), as: +<p>While the original Precision@k provides a score for a fixed-length recommendation list <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mi>k</mi></msub><mo>(</mo><mi>u</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">I_k(u)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size 5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord mathit">u</span><span class="mclose">)</span></span></span></span>, <strong>mean average precision (MAP)</strong> computes an average of the scores over all recommendation sizes from 1 to <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi mathvariant="n
<TRUNCATED>
