Recommender System
Last edited: August 8, 2025Recommender System is a system that provide recommendations due to search; it combines Information Retrival with another goal:
- Editorial/Hand-Curated lists: “list of favorites”, “essential items”, etc.
- Aggregates: top 10 lists, most popular, recent uploads
- (hardest) Individual tailors: user-based recommendation
Formal Model
- \(X\) the set of users
- \(S\) the set of things to recommend
- \(R\) the set of distinct and totally ordered ratings (stars 1-5, real number 0-1, etc.)
- Utility function: \(U:X \times S \to R\) (“how much
Three key problems:
reduce
Last edited: August 8, 2025reduce reduces compute time for list-based operations: it changes a linear series of events to divide-and-conquer so you can parallelize it
in theory reduce only works for associative operations?
reductive paraphrase
Last edited: August 8, 2025in NSM, reductive paraphrase is the act of reducing all utterances in a language into semantic primes.
This is usually done with the application of an inherent, universal grammar: the conceptual grammar of semantic primes.
problems with reductive paraphrasing
In the experiment conducted by (Labov 1973), Labov (according to (Geeraerts 2009), manuscript not found) showed that the boundaries of cup vs. mug are not clearly delineated.
Regarding R@N
Last edited: August 8, 2025Thanks for opening Jack’s long rambly PDF. Please read all of it; I wanted to get this out there before anything else so I apologize in advance for a letter that’s on the longer side and I didn’t have time to write a shorter one.
Before you begin, please read Michael’s AMAZING notes on our pitch to get the context. It’s amazing. I will not repeat here anything mentioned there.
Pat yourself on the back
Oh god was that a difficult semester. We got through many a challenges and worked together to solve most of them. That’s cool. We also built a thing that the XRT team liked; so that’s cool too.
Register Allocation
Last edited: August 8, 2025Intermediate code uses “unlimited” temporaries. We have more temporaries than there are registers. Key: assign multiple temporaries to each register
example
Consider:
a := c + d
e := a + b
f := e - 1
notice how a and e are both dead after use, we can then allocate:
r1 := r2 + r3
r1 := r1 + r4
r1 := r1 - r1
key: *you can share a register between \(t_{1}\) and \(t_{2}\) if at any point at most one of \(t_1\) and \(t_2\) are alive.
algorithm
liveness check
go through liveness analysis to see what’s live or not at any particular moment.
