Skip to content

Commit

Permalink
Fixed header typo in post/tidy-collaborative-filtering
Browse files Browse the repository at this point in the history
  • Loading branch information
christophscheuch committed May 27, 2024
1 parent 8e2e6d8 commit 19c1e4c
Show file tree
Hide file tree
Showing 16 changed files with 32 additions and 112 deletions.

Large diffs are not rendered by default.

82 changes: 19 additions & 63 deletions docs/index.html

Large diffs are not rendered by default.

38 changes: 1 addition & 37 deletions docs/posts/sakura-visualizations/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,6 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">



<link rel="stylesheet" href="../../assets/css/styles-global.css">
<link rel="stylesheet" href="../../assets/css/styles-blog.css">
<meta property="og:title" content="Sakura Visualizations">
Expand Down Expand Up @@ -585,75 +584,40 @@ <h5 class="no-anchor card-title listing-title">Interactive Data Visualization wi

</main> <!-- /main -->
<footer class="footer-custom">

<div class="custom-footer">

<div class="copyright">© Christoph Scheuch 2024. All rights reserved.</div>

<a href="https://www.tidy-intelligence.com/impressum.html">Impressum</a>

<a href="#" id="open_preferences_center">Cookie Preferences</a>

</div>

</footer>



<script>

document.addEventListener("DOMContentLoaded", function() {

var giscusDiv = document.querySelector('.giscus');

var footer = document.querySelector('.footer-custom');



if (giscusDiv && footer) {

giscusDiv.parentNode.insertBefore(footer, giscusDiv.nextSibling);

}

});

</script>

<script>

document.addEventListener('DOMContentLoaded', function() {

// Create the new link element

var followButton = document.createElement('a');

followButton.href = 'https://www.linkedin.com/in/christophscheuch';

followButton.target = '_blank';

followButton.role = 'button';

followButton.className = 'linkedin-follow-button';

followButton.innerHTML = '<i class="fa-brands fa-linkedin-in"></i> Follow';



// Find the element that contains the name

var nameElement = document.querySelector('.quarto-title-meta-contents p');



// Insert the follow button after the name element

nameElement.parentNode.insertBefore(followButton, nameElement.nextSibling);

});

</script>

<script id="quarto-html-after-body" type="application/javascript">
window.document.addEventListener("DOMContentLoaded", function (event) {
const toggleBodyColorMode = (bsSheetEl) => {
Expand Down Expand Up @@ -1081,7 +1045,7 @@ <h5 class="no-anchor card-title listing-title">Interactive Data Visualization wi
</div>
</div>
</footer>
<script>var lightboxQuarto = GLightbox({"descPosition":"bottom","selector":".lightbox","closeEffect":"zoom","loop":false,"openEffect":"zoom"});
<script>var lightboxQuarto = GLightbox({"closeEffect":"zoom","selector":".lightbox","descPosition":"bottom","loop":false,"openEffect":"zoom"});
window.onload = () => {
lightboxQuarto.on('slide_before_load', (data) => {
const { slideIndex, slideNode, slideConfig, player, trigger } = data;
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
8 changes: 4 additions & 4 deletions docs/posts/tidy-collaborative-filtering/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ <h2 id="toc-title">On this page</h2>
<li><a href="#a-primer-on-recommender-systems" id="toc-a-primer-on-recommender-systems" class="nav-link active" data-scroll-target="#a-primer-on-recommender-systems">A Primer on Recommender Systems</a>
<ul class="collapse">
<li><a href="#collaborative-filtering" id="toc-collaborative-filtering" class="nav-link" data-scroll-target="#collaborative-filtering">Collaborative Filtering</a></li>
<li><a href="#content-based-filering" id="toc-content-based-filering" class="nav-link" data-scroll-target="#content-based-filering">Content-Based Filering</a></li>
<li><a href="#content-based-filtering" id="toc-content-based-filtering" class="nav-link" data-scroll-target="#content-based-filtering">Content-Based Filtering</a></li>
<li><a href="#hybrid-recommenders" id="toc-hybrid-recommenders" class="nav-link" data-scroll-target="#hybrid-recommenders">Hybrid Recommenders</a></li>
</ul></li>
<li><a href="#train-collaborative-filtering-recommenders-in-r" id="toc-train-collaborative-filtering-recommenders-in-r" class="nav-link" data-scroll-target="#train-collaborative-filtering-recommenders-in-r">Train Collaborative Filtering Recommenders in R</a></li>
Expand Down Expand Up @@ -258,8 +258,8 @@ <h3 class="anchored" data-anchor-id="collaborative-filtering">Collaborative Filt
<p>In collaborative filtering, recommendations are based on past user interactions and items to produce new recommendations. The central notion is that past user-item interactions are sufficient to detect similar users or items. Broadly speaking, there are two sub-classes of collaborative filtering: the memory-based approach, which essentially searches nearest neighbors based on recorded transactions and is hence model-free, and the model-based approach, where new representations of users and items are built based on some generative pre-estimated model. Theoretically, the memory-based approach has a low bias (since no latent model is assumed) but a high variance (since the recommendations change a lot in the nearest neighbor search). The model-based approach relies on a trained interaction model. It has a relatively higher bias but a lower variance, i.e., recommendations are more stable since they come from a model.</p>
<p>Advantages of collaborative filtering include: (i) no information about users or items is required; (ii) a high precision can be achieved with little data; (iii) the more interaction between users and items is available, the more recommendations become accurate. However, the disadvantages of collaborative filtering are: (i) it is impossible to make recommendations to a new user or recommend a new item (cold start problem); (ii) calculating recommendations for millions of users or items consumes a lot of computational power (scalability problem); (iii) if the number of items is large relative to the users and most users only have interacted with a small subset of all items, then the resulting representation has many zero interactions and might hence lead to computational difficulties (sparsity problem).</p>
</section>
<section id="content-based-filering" class="level3">
<h3 class="anchored" data-anchor-id="content-based-filering">Content-Based Filering</h3>
<section id="content-based-filtering" class="level3">
<h3 class="anchored" data-anchor-id="content-based-filtering">Content-Based Filtering</h3>
<p>Content-based filtering methods exploit information about users or items to create recommendations by building a model that relates available characteristics of users or items to each other. The recommendation problem is hence cast into a classification problem (the user will like the item or not) or more generally a regression problem (which rating will the user give an item). The classification problem can be item-centered by focusing on available user information and estimating a model for each item. If there are a lot of user-item interactions available, the resulting model is fairly robust, but it is less personalized (as it ignores user characteristics apart from interactions). The classification problem can also be user-centered by working with item features and estimating a model for each user. However, if a user only has a few interactions then the resulting model becomes easily unstable. Content-based filtering can also be neither user nor item-centered by stacking the two feature vectors, hence considering both input simultaneously, and putting them into a neural network.</p>
<p>The main advantage of content-based filtering is that it can make recommendations for new users without any interaction history or recommend new items to users. The disadvantages include: (i) training needs a lot of users and item examples for reliable results; (ii) tuning might be much harder in practice than collaborative filtering; (iii) missing information might be a problem since there is no clear solution how to treat missingness in user or item characteristics.</p>
</section>
Expand Down Expand Up @@ -928,7 +928,7 @@ <h2 class="anchored" data-anchor-id="create-predictions">Create Predictions</h2>
</div>
</div>
</footer>
<script>var lightboxQuarto = GLightbox({"loop":false,"selector":".lightbox","closeEffect":"zoom","openEffect":"zoom","descPosition":"bottom"});
<script>var lightboxQuarto = GLightbox({"closeEffect":"zoom","descPosition":"bottom","openEffect":"zoom","selector":".lightbox","loop":false});
window.onload = () => {
lightboxQuarto.on('slide_before_load', (data) => {
const { slideIndex, slideNode, slideConfig, player, trigger } = data;
Expand Down
Binary file not shown.
2 changes: 1 addition & 1 deletion docs/search.json
Original file line number Diff line number Diff line change
Expand Up @@ -739,7 +739,7 @@
"href": "posts/tidy-collaborative-filtering/index.html#a-primer-on-recommender-systems",
"title": "Tidy Collaborative Filtering: Building A Stock Recommender",
"section": "A Primer on Recommender Systems",
"text": "A Primer on Recommender Systems\n\nCollaborative Filtering\nIn collaborative filtering, recommendations are based on past user interactions and items to produce new recommendations. The central notion is that past user-item interactions are sufficient to detect similar users or items. Broadly speaking, there are two sub-classes of collaborative filtering: the memory-based approach, which essentially searches nearest neighbors based on recorded transactions and is hence model-free, and the model-based approach, where new representations of users and items are built based on some generative pre-estimated model. Theoretically, the memory-based approach has a low bias (since no latent model is assumed) but a high variance (since the recommendations change a lot in the nearest neighbor search). The model-based approach relies on a trained interaction model. It has a relatively higher bias but a lower variance, i.e., recommendations are more stable since they come from a model.\nAdvantages of collaborative filtering include: (i) no information about users or items is required; (ii) a high precision can be achieved with little data; (iii) the more interaction between users and items is available, the more recommendations become accurate. However, the disadvantages of collaborative filtering are: (i) it is impossible to make recommendations to a new user or recommend a new item (cold start problem); (ii) calculating recommendations for millions of users or items consumes a lot of computational power (scalability problem); (iii) if the number of items is large relative to the users and most users only have interacted with a small subset of all items, then the resulting representation has many zero interactions and might hence lead to computational difficulties (sparsity problem).\n\n\nContent-Based Filering\nContent-based filtering methods exploit information about users or items to create recommendations by building a model that relates available characteristics of users or items to each other. The recommendation problem is hence cast into a classification problem (the user will like the item or not) or more generally a regression problem (which rating will the user give an item). The classification problem can be item-centered by focusing on available user information and estimating a model for each item. If there are a lot of user-item interactions available, the resulting model is fairly robust, but it is less personalized (as it ignores user characteristics apart from interactions). The classification problem can also be user-centered by working with item features and estimating a model for each user. However, if a user only has a few interactions then the resulting model becomes easily unstable. Content-based filtering can also be neither user nor item-centered by stacking the two feature vectors, hence considering both input simultaneously, and putting them into a neural network.\nThe main advantage of content-based filtering is that it can make recommendations for new users without any interaction history or recommend new items to users. The disadvantages include: (i) training needs a lot of users and item examples for reliable results; (ii) tuning might be much harder in practice than collaborative filtering; (iii) missing information might be a problem since there is no clear solution how to treat missingness in user or item characteristics.\n\n\nHybrid Recommenders\nHybrid recommender systems combine both collaborative and content-based filtering to overcome the challenges of each approach. There are different hybridization techniques available, e.g., combining the scores of different components (weighted), chosing among different component (switching), following strict priority rules (cascading), presenting outputs from different components at the same time (mixed), etc."
"text": "A Primer on Recommender Systems\n\nCollaborative Filtering\nIn collaborative filtering, recommendations are based on past user interactions and items to produce new recommendations. The central notion is that past user-item interactions are sufficient to detect similar users or items. Broadly speaking, there are two sub-classes of collaborative filtering: the memory-based approach, which essentially searches nearest neighbors based on recorded transactions and is hence model-free, and the model-based approach, where new representations of users and items are built based on some generative pre-estimated model. Theoretically, the memory-based approach has a low bias (since no latent model is assumed) but a high variance (since the recommendations change a lot in the nearest neighbor search). The model-based approach relies on a trained interaction model. It has a relatively higher bias but a lower variance, i.e., recommendations are more stable since they come from a model.\nAdvantages of collaborative filtering include: (i) no information about users or items is required; (ii) a high precision can be achieved with little data; (iii) the more interaction between users and items is available, the more recommendations become accurate. However, the disadvantages of collaborative filtering are: (i) it is impossible to make recommendations to a new user or recommend a new item (cold start problem); (ii) calculating recommendations for millions of users or items consumes a lot of computational power (scalability problem); (iii) if the number of items is large relative to the users and most users only have interacted with a small subset of all items, then the resulting representation has many zero interactions and might hence lead to computational difficulties (sparsity problem).\n\n\nContent-Based Filtering\nContent-based filtering methods exploit information about users or items to create recommendations by building a model that relates available characteristics of users or items to each other. The recommendation problem is hence cast into a classification problem (the user will like the item or not) or more generally a regression problem (which rating will the user give an item). The classification problem can be item-centered by focusing on available user information and estimating a model for each item. If there are a lot of user-item interactions available, the resulting model is fairly robust, but it is less personalized (as it ignores user characteristics apart from interactions). The classification problem can also be user-centered by working with item features and estimating a model for each user. However, if a user only has a few interactions then the resulting model becomes easily unstable. Content-based filtering can also be neither user nor item-centered by stacking the two feature vectors, hence considering both input simultaneously, and putting them into a neural network.\nThe main advantage of content-based filtering is that it can make recommendations for new users without any interaction history or recommend new items to users. The disadvantages include: (i) training needs a lot of users and item examples for reliable results; (ii) tuning might be much harder in practice than collaborative filtering; (iii) missing information might be a problem since there is no clear solution how to treat missingness in user or item characteristics.\n\n\nHybrid Recommenders\nHybrid recommender systems combine both collaborative and content-based filtering to overcome the challenges of each approach. There are different hybridization techniques available, e.g., combining the scores of different components (weighted), chosing among different component (switching), following strict priority rules (cascading), presenting outputs from different components at the same time (mixed), etc."
},
{
"objectID": "posts/tidy-collaborative-filtering/index.html#train-collaborative-filtering-recommenders-in-r",
Expand Down
2 changes: 1 addition & 1 deletion docs/site_libs/bootstrap/bootstrap.min.css

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions docs/sitemap.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://blog.tidy-intelligence.com/index.html</loc>
<lastmod>2024-02-01T08:23:10.414Z</lastmod>
<lastmod>2024-02-05T08:20:24.875Z</lastmod>
</url>
<url>
<loc>https://blog.tidy-intelligence.com/posts/interactive-data-visualization-with-r/index.html</loc>
Expand All @@ -18,7 +18,7 @@
</url>
<url>
<loc>https://blog.tidy-intelligence.com/posts/sakura-visualizations/index.html</loc>
<lastmod>2024-05-27T16:08:13.662Z</lastmod>
<lastmod>2024-05-26T13:30:09.234Z</lastmod>
</url>
<url>
<loc>https://blog.tidy-intelligence.com/posts/ggplot2-vs-plotnine/index.html</loc>
Expand Down Expand Up @@ -62,7 +62,7 @@
</url>
<url>
<loc>https://blog.tidy-intelligence.com/posts/tidy-collaborative-filtering/index.html</loc>
<lastmod>2024-01-27T21:22:10.735Z</lastmod>
<lastmod>2024-05-27T16:32:27.269Z</lastmod>
</url>
<url>
<loc>https://blog.tidy-intelligence.com/posts/dplyr-vs-ibis/index.html</loc>
Expand Down
2 changes: 1 addition & 1 deletion posts/tidy-collaborative-filtering/index.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ In collaborative filtering, recommendations are based on past user interactions

Advantages of collaborative filtering include: (i) no information about users or items is required; (ii) a high precision can be achieved with little data; (iii) the more interaction between users and items is available, the more recommendations become accurate. However, the disadvantages of collaborative filtering are: (i) it is impossible to make recommendations to a new user or recommend a new item (cold start problem); (ii) calculating recommendations for millions of users or items consumes a lot of computational power (scalability problem); (iii) if the number of items is large relative to the users and most users only have interacted with a small subset of all items, then the resulting representation has many zero interactions and might hence lead to computational difficulties (sparsity problem).

### Content-Based Filering
### Content-Based Filtering

Content-based filtering methods exploit information about users or items to create recommendations by building a model that relates available characteristics of users or items to each other. The recommendation problem is hence cast into a classification problem (the user will like the item or not) or more generally a regression problem (which rating will the user give an item). The classification problem can be item-centered by focusing on available user information and estimating a model for each item. If there are a lot of user-item interactions available, the resulting model is fairly robust, but it is less personalized (as it ignores user characteristics apart from interactions). The classification problem can also be user-centered by working with item features and estimating a model for each user. However, if a user only has a few interactions then the resulting model becomes easily unstable. Content-based filtering can also be neither user nor item-centered by stacking the two feature vectors, hence considering both input simultaneously, and putting them into a neural network.

Expand Down

0 comments on commit 19c1e4c

Please sign in to comment.