Tuesday 10 January 2023

Serendipity in Recommender Systems: updates of 2023

Recommender systems are ubiquitous. Netflix recommends movies and tv series to users. Spotify recommends audio tracks. Facebook recommends friends. Although these recommendations are often precise, they are also often boring. For example, these systems often suggest items, such as movies or audio recordings that users are already familiar with or would find anyway by themselves. To mitigate this problem, researchers started optimising recommender systems not only for accuracy (items that users like), but also for serendipity. There is no consensus on the definition of the term serendipity in recommender systems (RecSys), but most often researchers consider an item serendipitous if it is relevant, novel and unexpected to the user. Relevance indicates that the user is interested in the item, novelty - the user had been unaware of the item prior to consuming it, while unexpectedness has a number of definitions with the most common being that the item is dissimilar to what the user usually consumes.

Friday 14 January 2022

Difference between interpreting linear and logistic regression coefficients

Linear regression

Let's assume, we have the following linear regression model:

Then,  the difference between two outcomes is going to be as follows:

Let's assume that x has one-unit increase, but z stays unchanged:

The difference is then as follows:
We can say that one-unit increase in x, when other parameters held constant, results in b1 increase in y.

Saturday 8 May 2021

Paper: Revisiting the Tag Relevance Prediction Problem

 Paper link: https://www.researchgate.net/publication/351347450_Revisiting_the_Tag_Relevance_Prediction_Problem

GitHub: https://github.com/Bionic1251/Revisiting-the-Tag-Relevance-Prediction-Problem

Traditionally, recommender systems provide a list of suggestions to a user based on past interactions with items of this user. These recommendations are usually based on user preferences for items and generated with a delay. Critiquing recommender systems allow users to provide immediate feedback to recommendations with tags and receive a new set of recommendations in response. However, these systems often require rich item descriptions that contain relevance scores indicating the strength, with which a tag applies to an item. For example, this relevance score could indicate how violent the movie ``The Godfather'' is on a scale from 0 to 1. Retrieving these data is a very demanding process, as it requires users to explicitly indicate the degree to which a tag applies to an item. This process can be improved with machine learning methods that predict tag relevance. In this paper, we explore the dataset from a different study, where the authors collected relevance scores on movie-tag pairs. In particular, we define the tag relevance prediction problem, explore the inconsistency of relevance scores provided by users as a challenge of this problem and present a method, which outperforms the state-of-the-art method for predicting tag relevance. We found a moderate inconsistency of user relevance scores. We also found that users tend to disagree more on subjective tags, such as ``good acting'', ``bad plot'' or ``quotable'' than on objective tags, such as ``animation'', ``cars'' or ``wedding'', but the disagreement of users regarding objective tags is also moderate.

Saturday 3 October 2020

YKI testi (actual tasks)

Tasks from the actual YKI test (as I remembered them)

YKI testi 03.10.2020

Kirjoittaminen

Tehtävä 1

Kutsut ystäväsi kilpailuun. Keksi itse:

Mikä kilpailu on?

Miksi kutsut ystäväsi?

Milloin ja missä kilpailu on?

Miten voit voittaa?

Friday 18 September 2020

Too wide lines (hbox overfull)


In latex, lines are sometimes wider than the line length (hbox overfull error). One way to avoid it is to use the parameter: \tolerance. The parameter changes between 0 and 10000.

Monday 27 April 2020

CheckExitCalled exception

Exception:
org.junit.contrib.java.lang.system.internal.CheckExitCalled: Tried to exit with status 0.
at org.junit.contrib.java.lang.system.internal.NoExitSecurityManager.checkExit(NoExitSecurityManager.java:24)
at java.base/java.lang.Runtime.exit(Runtime.java:111)
at java.base/java.lang.System.exit(System.java:1785)
at example.InputStats.countInput(InputStats.java:23)
at example.InputStatsTest.testCountInput2(InputStatsTest.java:60)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.contrib.java.lang.system.ExpectedSystemExit$1.evaluate(ExpectedSystemExit.java:130)
at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
at org.junit.contrib.java.lang.system.internal.LogPrintStream$1$1.evaluate(LogPrintStream.java:30)
at org.junit.contrib.java.lang.system.internal.PrintStreamHandler$3.evaluate(PrintStreamHandler.java:48)
at org.junit.contrib.java.lang.system.internal.LogPrintStream$1.evaluate(LogPrintStream.java:26)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:830)

Thursday 19 April 2018

Summary: Investigating Serendipity in Recommender Systems Based on Real User Feedback

Full text available: proceedings direct link.

Denis Kotkov, Joseph A. Konstan, Qian Zhao, and Jari Veijalainen. 2018. Investigating Serendipity in Recommender Systems Based on Real User Feedback. In Proceedings of SAC 2018: Symposium on Applied Computing , Pau, France, April 9–13, 2018 (SAC 2018), 10 pages. DOI: 10.1145/3167132.3167276