-
Notifications
You must be signed in to change notification settings - Fork 0
/
conclusion.html
95 lines (84 loc) · 5.54 KB
/
conclusion.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>CS109 Spotify Project</title>
<!-- Bootstrap core CSS -->
<link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="css/logo-nav.css" rel="stylesheet">
</head>
<body>
<!-- Navigation -->
<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
<div class="container">
<a class="navbar-brand" href="#">
<img src="spotify4.png" width="100" height="30" alt="">
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ml-auto">
<li class="nav-item active">
<li class="nav-item">
<a class="nav-link" href="index.html">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="literaturereview.html">Literature Review</a>
</li>
<li class="nav-item">
<a class="nav-link" href="eda.html">EDA</a>
</li>
<li class="nav-item">
<a class="nav-link" href="model.html">Model</a>
</li>
<li class="nav-item">
<a class="nav-link" href="results.html">Results</a>
</li>
<li class="nav-item">
<a class="nav-link" href="conclusion.html">Conclusion</a>
</li>
<li class="nav-item">
<a class="nav-link" href="citations.html">References</a>
</li>
</ul>
</div>
</div>
</nav>
<!-- Page Content -->
<div class="container">
<h1 class="mt-5">Conclusion</h1>
<p>
In this project, we implemented a collaborative filtering method to generate recommendations for a Spotify playlist. Our project tackles a difficult problem of predicting a singular held out song. This gives us confidence that the broader task this project sets out to accomplish - not just guessing left out validation sets but providing relevant new predictions for actual users - is done fairly well by this model.
</p>
<p>
Of course, there is plenty of room to build off our model. While the success of our model confirms our intuition that collaborative filtering is a strong start to tackling the problem (relative to purely content or user-based approaches), it does not rule out the potential for combining other methods in an ensemble to build an even stronger model.
</p>
<p>
Furthermore, even when it comes to the general problem of playlist generation, we operated only under a singular evaluative framework: accuracy. We neglected other non-accuracy based methods, not to mention ratings evaluations which have become hugely popular evaluation metrics on other streaming platforms. One of Spotify’s MRS features is a weekly playlist titled “Discover Weekly” which aims at providing 30 “new discoveries and deep cuts.” Building such a feature could utilize an ensemble method of collaborative filtering and other user-based data such as previous listens (discovery) and content-based data such as listen count (deep cuts), while evaluating the predictions on a different metric such as novelty.
</p>
<p>
One thing our evaluative framework (accuracy on randomly selected left out validation song) neglects is order. Considering these playlists as unordered lists is not an unreasonable assumption: the majority of Spotify users are not subscribers, meaning they can only ‘shuffle play’ their playlists, effectively rendering order arbitrary. However, there are applications for taking order into account. Premium subscribers, who don’t have to adhere to shuffle play, can benefit from the order in which a playlist ‘flows.’ Spotify’s radio generation function should take flow and order into account as well. Considering the failure of our word embeddedness approach, order-sensitive recommendations would require more information from content or user-based techniques to capture the nuance of order in a playlist.
</p>
<p>
Overall, our finding that a pure collaborative filtering model yields a model that can predict an exact song almost in almost 1 out of 20 playlists should not be underlooked. When using 10 predictions, the number jumps to 13.25% which is not an insignificant accuracy score. Furthermore, its simplicity allows ample room for other methods to be added on top, an exciting prospect for the complex, unsolved problem of music recommendation systems.
</p>
</div>
<!-- /.container -->
<!-- Bootstrap core JavaScript -->
<script src="vendor/jquery/jquery.min.js"></script>
<script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<footer class="py-5 bg-dark">
<div class="container">
<p class="m-0 text-center text-white">Template from Startbootstrap.com Logonav design </p>
<p class="m-0 text-center text-white">By David Gibson and Theo Lebryk</p>
<p class="m-0 text-center text-white">Group #53</p>
</div>
<!-- /.container -->
</footer>
</body>
</html>