4 ms·
Cool article, it's fun to see how many situations can be mapped to graph theory. The description of the cost function seems strange, since it's described in te
by sfink 5y ago
Cool article, it's fun to see how many situations can be mapped to graph theory.
The description of the cost function seems strange, since it's described in terms of the distance from "the correct order". It's clear that there is no single correct order. If two movies disagree on the ordering, it is not necessarily the case that one of them is doing it "wrong".
Mathematically, it seems like it would be better to see any given movie's ordering as a sample from a statistical distribution. That suggests that computing cost in confidence terms, as in the probability of generating that ordering given your assumed distribution, might make more semantic sense. So for example you could maybe use the frequency graphs from the article and sum up the surprise of each path from the first to last entry in your list. (Where "surprise" here is the inverse of how frequently one node follows another.) That's linear. Or you could do it quadratically by making a matrix of A-follows-B frequencies and then summing up all pairs of entries in your list (normalizing by the length of the list). The latter takes more of the graph structure into account.
Which is also the other thing that seemed a bit odd -- it seems like the "A follows B" relationship is getting a little mixed up with "A immediately follows B". As in, clumping the generator-related roles together isn't the same thing as saying an intern should follow a principal, and the cost function shouldn't treat those constraints the same way. I don't know how much noise it introduces, but intuitively it seems like the algorithm probably ought to do an ordering and then a clumping. Or perhaps the opposite: do ordering within clumps ("everything with 'generator' in the name"), then treat the clump as a single component for the main ordering pass.
The last thing is that the article seems to take NP-hardness too seriously. Sure, if you really had to consider every possible permutation, it would take too long. But there's way more than enough structure in the problem to take advantage of. Some very very conservative heuristics would surely dramatically reduce the size of the relevant N that participates in the core NP-hard problem. Your Traveling Salesman may have to visit 50 cities in each of Oregon and New York, but you know there's no point in making him fly back and forth between the states more than the minimally required (2). Write your algorithms in such a way that you don't need to even allow the possibility of putting the Gaffer behind the Intern Electrician's Boyfriend's Dog.
- sigil 5y agoIf two movies disagree on the ordering, it is not necessarily the case that one of them is doing it "wrong". (Author here.) Indeed! This is about trying to discover emergent conventions, so we can give first-time filmmakers a good starting point. Or you could do it quadratically by making a matrix of A-follows-B frequencies and then summing up all pairs of entries in your list (normalizing by the length of the list). The latter takes more of the graph structure into account. This is what PageRank (Experiment 3) does! The last thing is that the article seems to take NP-hardness too seriously. Sure, if you really had to consider every possible permutation, it would take too long. But there's way more than enough structure in the problem to take advantage of. I ask this question in a footnote [0] -- is this permutation space amenable to gradient descent? Don't know the answer! If someone knows this area well I'm all ears. [0] https://endcrawl.com/credits-ordering/#fn:permutation-search https://endcrawl.com/credits-ordering/#fn:permutation-search
- JohnKemeny 5y agoHey, great article, great topic! You missed one very interesting angle for the problem (speaking of games), namely Voting theory, which is an important part of game theory! In voting theory, there is a concept called Kemeny ranking (Kemeny–Young method), which I believe is exactly what you are looking for. It is of course an NP-hard problem, but that shouldn't scare you away. In a voting setting, each movie would "vote" for a ranking of, say, the electric unit; i.e., the gaffer comes before the other people. When you have many movies, you have many votes that you want to combine in order to rank all the candidates, while minimizing inconsistencies. A seminal paper was published in the journal of the ACM, Aggregating inconsistent information: Ranking and clustering by Ailon, Charikar, and Newman. An important insight is that your directed graph is actually what we call a tournament; for every two vertices a and b, there is an edge either from a to b, or from b to a. In that case, you want to solve a well known and widely studied problem, namely Feedback Arc Set in Tournaments (FAST). Check out the paper in ISAAC by Karpinski and Schudy, Faster algorithms for feedback arc set tournament, Kemeny rank aggregation and betweenness tournament (it's on arxiv).
- sigil 5y ago