Posts

Recommender System

Last edited: August 8, 2025

Recommender 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, 2025

reduce 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, 2025

in 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, 2025

Thanks 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, 2025

Intermediate 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.