Learn more Learn more

Upcoming Deadlines


Recent Discussions

Browse all discussions »

Announcements

Course Wrapup

The course has been graded and we have requested Coursera to email Statements of Accomplishment to those who earned them. This process may take about a week.

There were1109 SoA's issued, of which 477 were "with distinction." Congratulations to all those who completed the course. We know you worked hard.

Mon 16 Nov 2015 9:40 PM CET

The Final Exams

There are two final exams for this class: Basic and Advanced. You can take only the Basic or you may take both basic and advanced. They both will be available from 00:01 Monday Nov. 9, 2015 (Pacific Standard Time, or GMT -8:00) through 23:59 Sunday Nov. 15, PST). You have three hours to complete each exam. Remember that to get the Statement of Accomplishment, the basic homework and basic final will each count equally; the advanced components will not count at all. You must score 50% of the points to get the SoA. To get the SoA with Distinction, you must do both the Basic and Advanced finals, and you can do them in either order. The homeworks (Basic and Advanced) represent half your score, and the Basic and Advanced finals represent the other half of your score. You must score 80% to get distinction.

There are two new discussion groups that have been set up for the finals. The first is for reporting errors on the final. Please be reasonably sure there is an error, and explain why you think your answer is correct. The second, which should be read just before you open one of the finals, will contain information about errors or explanations about the meaning of questions if we have not changed the final itself.

Two things to bear in mind:

  1. The exam is open-book. Any inanimate source can be used.
  2. There is no penalty for wrong guesses.

Best of luck to everyone!

Mon 2 Nov 2015 9:01 AM CET

Week 7 Materials

The two topics for the final week of the course are both extensions of material we have seen earlier:

  1. More about Locality-Sensitive Hashing:  The "bands" technique for LSH that we learned in Week 2 is actually just a special case of a more general technique.  We cover this theory in the first two videos.  The next four videos look at a completely different approach to LSH, which is preferable when we are looking for sets of very high Jaccard similarity.  This idea appears in the next four videos.
  2. More about Link Analysis: The last seven videos explore some extensions to the PageRank idea from Week 1.  These include the "Hubs and Authorities" expansion of PageRank, and how one deals with "Web spam," techniques that have been devised to subvert the purpose of PageRank in focusing users on important pages.

Homework

We again have two homeworks, one basic and one advanced.  Note that unlike all the other homeworks, the hard deadline and the soft deadline are the same: a minute before midnight on Monday, March 30th.

Readings

  1. For LSH: Sect. 3.6, 3.7, 3.9
  2. For Link Analysis: Sect. 5.3 - 5.5.
Sat 24 Oct 2015 9:01 AM CEST

Week 6 Materials

In Week 6, we have three topics:

  1. Support-Vector Machines,  The first six videos talk about one of the most powerful techniques available for large-scale machine learning.
  2. Decision Trees.  This is one of the oldest forms of machine-learning, but there are issues that come up when the data size is large.  We cover these in the next five videos.
  3. MapReduce Algorithms.  The last four videos deal with how one designs a good algorithm to run under MapReduce.  They also discuss the limitations of MapReduce algorithms, and why these are not just any parallel algorithm.

There are also two new homeworks, one basic, one advanced.

Readings

  1. Support-Vector machines are in Sect. 12.3.  You might also want to read Sect. 12.2 on Perceptrons as an introduction.
  2. Decision Trees are not really covered in the book, except briefly in Sect. 9.2.7 and 12.1.3.
  3. The new material on MapReduce is in Sect. 2.3, 2.5.1, 2.5.2, and 2.6.


Sat 17 Oct 2015 9:01 AM CEST

Week 5 Materials

The two topics for this week are:

1. Clustering (the first five videos).  The problem is to take large numbers of points and group them into a small number of groups so that points are much closer to other points in their group than to points in other groups.  This subject, although it has a long history, is sometimes referred to by the retronym "unsupervised learning," because you "learn" something about the data without needed a training set.

2. Computational Advertising (the last four videos).  The problem is to select ads to show with other information, typically answers to search queries.  Usually, the proprietor (e.g., Google) is paid only if there is a click on the ad.   Advertisers bid on searches with certain words, and the system selects the ads to maximize its income.  Doing so involves not only considering the bids, but the budgets of advertisers (if we do not show an ad, will the same advertiser have another chance to place the ad?) and the likelihood that this ad will be clicked.

Readings

Sect. 7.1 through 7.4, all of Ch. 8.

Homework

We again have two homeworks, A is advanced and B is basic.  Note that the advanced homework contains one question from week 4's materials.
Sat 10 Oct 2015 9:01 AM CEST

Week 4 Materials

The topics for this week are related. We begin with a discussion of Collaborative Filtering, the techniques for using one person's behavior to predict what other people will do. The canonical example is the "Netflix Challenge," where it was desired to predict whether one person would like a particular movie based on the preferences of people with similar tastes. The first five videos look at a number of approaches, including attempts to use the properties of items such as movies.

The next four videos deal with latent semantic analysis, the idea that there is a small number of hidden factors that characterize both individuals and items. An example (which surprisingly turns out NOT to be very effective as a predictor) is to categorize movies by genres (e.g., sci-fi, romance) and at the same time characterize what genres individual viewers like. However, there are algorithms for handling large amounts of data and finding a small number of good hidden factors to characterize both individuals and the items they like/hate.

The final eight videos deal more generally with the problem of decomposing very large matrices into products of matrices with at least one small dimension. The "small" dimension corresponds to the hidden factors like movie genre. We cover well-known technique called SVD (singular-value decomposition). SVD is, in a realistic sense, optimal for a given number of hidden factors. However, when the given matrix is large but sparse, as would be the case for a matrix of viewers versus the movies they rate (there are lots of viewers, lots of movies, but the typical viewer only rates a small fraction of the movies), SVD suffers from the problem that the matrices of the decomposition, while they have one small dimension, are normally dense, so we're not simplifying things as much as we hoped. A recent approach called "CUR decomposiion" tries to remedy this problem by decomposing a large, sparse matrix into three smaller matrices, the two larger of which are themselves sparse.

Homeworks

There are three homeworks, labeled "Week 4A", "Week 4B" and "Finding Similar Sentences". "Week 4A" and "Week 4B" are both basic homeworks (this is the only week with the unusual situation of having two basic homeworks). "Finding Similar Sentences" is an optional and challenging programming assignment that won't affect your final grade. We encourage you to do it.

Readings

All of Ch. 9 and Sect. 11.2 through 11.4.

Sat 3 Oct 2015 9:01 AM CEST

Week 3 Materials

For week 3, we have two topics:

  1. Communities in Social Networks:  The first 12 videos cover this topic.  Intuitively, "communities" are sets of individuals in a network like Facebook friends, that have an unusually high density of edges.  The first four videos are part of the basic track, and cover machine-learning techniques for finding the best set of "overlapping communities," following the intuition that people generally belong to more than one community, e.g., their high-school friends, their coworkers, etc.  Videos 5-12 are part of the advanced track.  They use concepts from linear algebra to explain how to break graphs optimally (i.e., break the fewest edges) into disjoint "communities."
  2. Stream Algorithms:  "Streams" are data inputs to a system that arrive at a very high rate, typically too fast to do anything significant with each arriving input.  Examples include data beamed down from a satellite, or click streams for a popular Web site.  In this model, it is often necessary to accept a less-than-accurate answer to questions such as "how many different items have I seen at least once in this stream?"  The last five videos cover algorithms in the stream model.

Basic Vs. Advanced

We would like you to remember that we have divided the work into two levels, "basic" and "advanced."  There are certain videos that are designated [Advanced] in their title, and you are able to skip these if you are willing to forgo the SoA "with distinction."  If you are not sure, we suggest you watch the videos and try to do the homeworks that are designated advanced.

Readings

Sect. 10.1 through 10.5, Sect. 4.1 through 4.6.

Homeworks for Week 3

There are three homeworks this week:
1. "Week 3A" is advanced.
2. "Week 3B" is basic.
3. "PageRank" is an optional programming assignment. It won't affect your final grade but we encourage you to do it in order to start implementing scalable algorithms on real data.
Sat 26 Sep 2015 9:01 AM CEST

Week 2 Materials

In Week 2 we are going to study three different topics.

  1. Locality-Sensitive Hashing:  (First 7 videos) This is the first half of discussion of a powerful technique for focusing search on things that are likely to be relevant, while avoiding the examination of things unlikely to be what we are looking for, in much the way ordinary hashing gets us to records we want without looking through an entire database.  This subject will continue in week 7.
  2. Nearest-Neighbor Learning:  (8th video)  The course will cover several different techniques for large-scale machine learning.  This single video discusses a simple example that is useful in many situations.
  3. Frequent Itemsets: (Last 4 videos) Often called "association rules," we shall learn a number of techniques for finding items that appear unusually often together.  The classical story of "beer and diapers" (people who buy diapers in a supermarket are unusually likely to buy beer) is an example of this data-mining technique.

Sources of Useful Information


If you have not seen them, we recommend you check out the Coursera Course Page for the class at  https://www.coursera.org/course/mmds  It gives you the syllabus, the prerequisites, and a link to the free MMDS book.  Much of this is repeated in the "Syllabus" and "Grading and Logistics" items in the left menu of the home page for the class  https://class.coursera.org/mmds-002   Also remember to check out the Welcome post (scroll down on the class home page), which gives you useful information about the basic and advanced tracks, how the homework is managed, the grading policy for the course, how homework deadlines work, and a few other details.

Basic and Advanced Tracks

This week, there will be a difference in the level of work between the basic and advanced tracks.  We have three homeworks, labeled Week 2A, 2B, and 2C.  Everyone is expected to do 2A and 2B.  However, 2C is designated as "advanced," and is based on the last two videos ("Improvements to A-Priori" and "All-or-Most Frequent Itemsets"), which are also designated as advanced topics.  You should do the advanced work if you hope to get a statement of accomplishment (SoA) with distinction.

Programming Project

We shall also publish this week an interesting programming project.  It is completely optional and does not affect your ability to earn a SoA.  However, it should give you a feeling of how the choice of algorithm does matter when it comes to handling big data. Note: All programming assignments will appear under the same tab as Homeworks.

Readings

If you are using the MMDS text, the following sections are relevant to this week's material:
  1. Locality-Sensitive Hashing: Sect. 3.1 through 3.5.
  2. Nearest-Neighbor Learning Sect. 12.4
  3. Frequent Itemsets: 6.1 and 6.2 are basic; 6.3 and 6.4 are advanced.
Quantity of Work

There is a lot of video to watch this week, even if you only follow the "basic" track.  This level of work is not going to be typical.  In particular, for the third week there are few videos for the basic track, and even those following the advanced track will find less work to do.

Getting Hold of "Big Data"

It is generally difficult to get owners of large, interesting datasets to share them with the world.  They generally want a license agreement with each individual or with an institution.  Stanford cannot act for the participants in a MOOC in this way.  However, one exception that might be of interest to those who want to try out some of the algorithms we teach is the Yahoo Webscope collection that you can obtain here:  http://webscope.sandbox.yahoo.com/catalog.php
Sat 19 Sep 2015 9:01 AM CEST

Important Course Survey

This is a repeat of the message that was sent to the class on Monday. It corrects the URL for the survey, so it should work this time. Sorry about the mistake.

We would like to find out more about your background and motivation for taking this course. To this end, we created a short course survey for you. We encourage you to take it at the beginning of the class. There will also be a quick check-in survey later in the course.

Thanks and see you in class!

- Jure, Anand, and Jeff

Tue 15 Sep 2015 12:00 AM CEST

Welcome to MMDS

A big fat welcome from Jure Leskovec, Anand Rajaraman, Jeff Ullman, and Teaching assistant Derek Farren, to the Stanford/Coursera course on Mining of Massive Datasets.  In the next seven weeks, we will present to you many of the important tools for extracting information from very large datasets.  Each week there will be a number of videos to watch, and one or more homeworks to do.  The materials are backed up by a free on-line textbook, also published by Cambridge University Press, also called "Mining of Massive Datasets."  You can download the book at http://www.mmds.org

The first week is devoted to two topics:

  1. MapReduce: A programming system for easily implementing parallel algorithms on commodity clusters.  This material is in the first four videos available for the week.
  2. Link Analysis: The remaining seven videos discuss the PageRank algorithm that made Google more effective than previous search engines.
There is also a single homework covering both topics.  This homework is classified as "Basic."  See below for an explanation of basic vs. advanced work, and the significance.

Basic and Advanced Material  All videos and homeworks are classified as "Basic" or "Advanced."  Videos of the latter kind are labeled explicitly.  For the first week, only one of the videos, the 4th on Combiners, is Advanced.   In order to get a Statement of Accomplishment (SoA), you will have to get at least 50% of the marks on the homeworks labeled "basic" and on the basic final; homeworks and the final contribute equally to your grade.  To get the SoA "with distinction," you need to get at least 80% of the marks on both basic and advanced homeworks.  There will also be an additional part of the final that covered advanced material.  Again, homework and final count equally.

How the Homework Operates  Our homeworks use the Gradiance technology, where you are expected to solve each problem before you select from the choices given.  You are allowed to repeat a homework as many times as you like (well actually there is a limit of 100 tries, but nobody has ever reached the limit), and your score will be the maximum of all submissions.  Each time you try a homework, you get the same questions, but the choices are different.  If you make a mistake, you are given some hint or an explanation of why your choice was wrong, and you repeat the homework.  Thus, the goal is to get 100% on each homework and to learn as you do so.  Hint: try to solve the problems and write down the solutions on scratch paper before you select your answers on the homework page itself.  That way, if you have a question right, you should be able to select the correct answer quickly, no matter how many times you retry the homework.

Rhythm of the Course  The materials for each week will be made available at 00:01 on a Saturday, starting with Saturday September 12, 2015.  All times are Pacific Time (GMT -7:00, and later GMT -8:00 when we go off daylight time on November first).  Homeworks are due on Monday night 11:59PM, 16 days after they are delivered.  For example, HW 1 is due Monday September 28, 11:59PM, and the homeworks for week 2 will be due Monday October 5, 11:59PM.  These are what Coursera refers to as "soft deadlines."  You can get full credit only if you submit by the soft deadline.  However, the hard deadline for all homeworks (except for the last two weeks'), will be seven weeks after the beginning of the course, that is, Monday Nov. 2, 11:59PM.  The eighth week will be for people to catch up with the lectures, and the ninth week is "finals week"; you are expected to take the final exam (or exams if you go for "distinction") sometime during that week, from Monday November 9, 00:01 through Sunday November15, 11:59PM.  Note: Coursera has the ability to give late days, but we are not using that feature.  Each homework has a soft and hard deadline.  Prior to the soft deadline, you get full credit. Between the soft and hard deadlines, you get half credit.

Readings  We recommend the following readings in the MMDS book (www.mmds.org) for the first week: Sections 2.1, 2.2, 5.1, and 5.2.

Sat 12 Sep 2015 9:01 AM CEST