How's it going everyone Caleb here with latent sports cards? We're gonna be working on the almanac ultra high-end multi sports volume number nine case break number one This is a live hit draft here guys. Thanks again everyone for joining. I do appreciate it Thank you all We're gonna start this out with a random to determine what case we are gonna be ripping This is case number one break number one We have not ripped any cases yet So you can see one two three four five six seven eight nine and ten are all here in The pool so let's go ahead and roll the dice and determine what case we're gonna be ripping first This rolling six times the number at top will be the case. We're ripping six times here One two three four five six Case number one. There we go Case number one Sean's gonna grab that right now case numero uno Slide that back. There you go case one And now let's go ahead and do the random for the draft order So we have all of the participants right here ten spots. I would like to highlight drew em You did go ahead and win one almanac spot for the entire year That was via the national promo so congrats again drew em Remember guys to always beginning in on the national breaks We do some insane things including things like an almanac spot for the entire year Drew this is a twenty five hundred dollars spot that you won yourself here a few more to come in great stuff So once again, there's the names. This is the order so we have we're gonna go ahead and Randomized all of the names guys and the list of the spots here and Match you up with one of those numbers the spot you get matched up with is your draft pick This was twenty five hundred of spots. Let's roll the dice Five times. Yes each group break almanac exactly does not include the personals But I mean hey, that's still pretty dang good man five times on each here. We go guys Good luck one two three four and five drew em down to Nathan beat and five on the order Read this off, and we'll start ripping one two three four five Five spot down to the two spot Let me go ahead and grab those results Each run of the almanac cases one through five are breaking tonight. That is correct Drew gets a free spot in each run of the almanac Alright guys here's the draft order Uh, let's do that drew em is gonna be selecting a fifth Brandon a third Patrick and sixth Dan M 8th Bernie S 7th Joel 10th Ryan B first overall selection. Good luck, man Cheyenne L number nine George K for and Nathan B number two Let's get right to it. I'm gonna post those results in your chats And we are gonna start here in just a moment Okay Results link is coming on the order guys Order go go Not quite uh, not quite the usual rich. That's for sure All right guys, let's get this going. Thanks all You've got the first five cases tonight guys one through five tonight six through 10 tomorrow Let's keep selling out the spots and cases six through 10 Good luck all here we go. It should be a good time man. These are always crazy Ultra high-end this time. Good luck. Sorry Joe Well, we'll get it figured out for you Joe. I know you got a couple more goes at it We'll get it sorted out All right guys. Thanks again for joining. Good luck here Wow rich, that's brutal That's that stuff. Jeez Okay, here we go Good luck That's tough. I see we're at rich. I see where we are at Good to know All right, good luck here guys Let's do it Thanks again for joining This is true. This is true. This is true All right Sorry, I'm with a Beckett graded card Nice. It's gonna be a rookie ticket Autograph Tyler Murray. It's gonna be a nine and a half ten quad nine five ten on the auto Nice on-card autograph there Very nice it's Tyler Murray Solid start Not too bad there. Yep. This was 2,500 of spots I know doesn't it forced I couldn't agree more Nice way to get it going Tyler Rookie ticket auto on-card nine five ten Good stuff Keep all the cards I give you in order So like I'm gonna give you this and I just put it on top So I'm back when I or when I put them on the stand so I can put them back in the same order Nice way to start it Good luck Yeah, we'll certainly take that right off the rip. All right. Here we go Oh, this is a huge card Oh my goodness. What is this thing? Oh my goodness What am I about to What am I about to unwrap right now? What am I about to unwrap? What am I about to unwrap? Four of 10 Holy cow. What is this? What is this?  Oh my goodness Ken Morrow Mark Pavlich Mark Wells Mike Yarrowson Mike Ramsey Phil Filver Chata. This is insane. There's no way. This is how we're starting Rob McClannahan and Steve, uh, Janaszek. I got goosebumps dude. This is insane. There's no way we're starting like this There's no way this is only the second card out. What are we about to find? Holy cow. Yeah, this is like a this is like a I think this is like 7500 point right here This is insane. What a hit miracle 1980 USA The dream team four of 10 Dude, there's no way. This is how we're starting There's no way Sick. Wow. Good luck. Of course. This is gonna be uh In the draft. Holy cow. Yep, just put it back in exactly how it was. Yep Geez, I don't know if I'm ready. Are you guys ready? I I don't know man. I just don't know Incredibly unique to say the least. Yeah Incredible booklet Let's keep going. That's uh only the uh first two cards out Good luck Next up here. It's gonna be NFL rare artifacts Nice that's sick from upper deck Uh, it's gonna be 07 artifacts. Nice one of one Dan Marino Patch auto with a sick NFL shield logo There you go Beautiful one of one Great start guys Great start Once again, that's 2007 artifacts football That's awesome.  Absolutely has to be Cheese very nice card Great patches on there. It is a sticker auto. That is correct. Yes sticker auto That is correct and Here we go next one up Continuing along Yes, this is a great start. Uh all star sticker auto that is correct.  I think it's It's this one right here, right? I think so. Yes.  This is a booklet 2018 triple threads All right, check it out right there. Albert powalls as you saw that is a one of one Awesome instant redemption Great instant redemption Angels powalls there I hope he gets to 700 I pray he does Rich, I think you're lying so good stuff guys. Good luck on that in the draft Um, I don't think we necessarily need that but just keep it around Keep it with the with the card I guess Why not? Next one up Yeah, it does look great in that, uh, Joel. Yes, it does. It looks fantastic in that All right next up Wow, no way Ken Griffey jr Star rookie ps8 10. What? Boom Gem in 10 Dude, we're not ready. We were not ready.  Wow Upper deck star rookie. I mean that's the one that is the one ps8 gem in 10 Yeah, we are getting better and better and better right now Oh, man Perfect grade recent slab That's awesome. Like I said recent slab This is no like uh so true It's how it feels man next one up That's a great hit there. Good luck on that guys It's a big time card Good luck I mean that is just the guy. Yep Whoa 11 to 25 Oh man camo prism rookie Lamar Jackson boom 11 of 25 guys, that's the blue camo prism Unreal man big rookie guard there Sam would be like trying to steal this one. Yeah, he'd be trying to get in the draft There it is prism rookie to 25. It's a mint nine ps a mint nine Even his base ps a like rookie sell well To 25 there That's awesome. Check that out crazy, man Do it do Let's keep it going. That's nice That's really nice. Yeah, that's why we had to get sam out of here. Yeah, we knew there was gonna be problems exactly We knew there'd be problems Just me first and I think Sean as well Just me and me and Sean I think Okay, this has been fun a lot of fun We have four cards left. Oh my goodness Wallace basketball 2020 21 Kevin Durant's Oh, wow Geez on the patch autograph one of 10 Disgusting card there On card of course with flawless One of 10. That's a three colored jumbo patch Oh man Game worn slash used material there as well beautiful Game worn slash used There is some great variety lots of different sports In addition to players Nice one on the flawless kd Good stuff next one up And remember guys we'll be getting into the hit draft right after this part tonight 2,500 a spot John Here we go Good luck next one up Oh 100% yeah, I I do hear you though with some of the recent stuff I hear you 2009 2010 NBA SP signature edition autograph nine of 25 LeBron James Bernard King Paul Pierce Carmelo Anthony Boom big time card. Look at the auto on the LeBron. Oh my goodness Rich, are you sure we're giving this one away? Are you sure? This is crazy Who are these guys? You know just a bunch of like first ballot hall of famers Potentially, you know some guys in the top conversation All-time best in the league insane Once again, it is nine of 25 Carmelo Anthony Paul Pierce Bernard King and the LeBron James Anyone familiar with him LeBron James? Anyone anyone Check out the card check out the condition one more time LeBron James Very sick We have two remaining This is kind of insane This is a little bit nuts, hey This is a little bit nuts Okay continuing along guys So if you weren't breathing hard yet, yeah How about now Seven of eight Oh my goodness mosaic Black gold choice PSA gem in 10 Super Bowl MVP Tom Brady Seven of eight All-time great The goat himself Brady seven of eight black gold choice Look at this card What You're joking man.  Good luck all Good luck. What a beauty And we have one to go here Guys there are spots remaining on this product tomorrow I don't know why Sean and I are about to start uh pulling up our funds here. You guys better get on it Uh, this is insane Yes, Lane is responsible for making this product. Yes, Lane is Come on, man. Come on, man. We already had a LeBron auto 19 of 60 Select in flight signatures Kobe Bryant On card autograph Gem mint 10 no way Dang man. Oh man Once again, that is 19 of 60 Give me one of Kobe's last few autos as well. This is 2017 products One of his last couple of autos out there 2017 product like I said this is on card the card itself is a gem mint 10 auto not graded Auto could probably get a 10 Ryan B. I hate to tell you this but you are on the clock soon my friends I hate to inform you Very very nice That is great great stuff. All right guys, I'm gonna start here Setting out all of the cards on the table now for you And uh, we are gonna do that get draft parts Of the break Remember during this time we do ask that you do please Minimize your chat And we do ask that if you are gonna be making a selection tonight if you are in the draft We do ask that you do please Uh include your name include your Zip code and include your selection one more time. I'm gonna drop you guys the draft order link Here you go. This is the draft order link Right there Ryan B. You are on the clock. I do still have some cards to set out I'm gonna give you a full look at all the cards Uh before we start that clock All right I understand Oh man, I'm gonna have to This I can pick up this I have a choice All right guys, so one more time here are all of the cards And yes, if you are not here to make a selection, we would be drafting the best available for you. That is correct So one more time if you do need a better look at anything Please do let me know that one on the back right is a ken griffy jr. PSA 10 And once again ryan b you are gonna be on the clock here now Once again guys here is that draft order Ryan B.  This is 2009 2010 nva sp signature edition 2009 2010 Ryan be on the clock Ryan if you do have any questions if you do want to see anything better, please feel free to let me know You can do that for you Kicks, please reduce your chat at this time Remember there is no chatting like that. That is your one warning if you do that again, you will be banned immediately There are no chatting. You cannot reference any card. You cannot influence any pick You cannot chat on the value or mention any card unless you are on the clock You will instantly be banned on your next go. We are in the drafting phase And like I said ryan, if you do need to see something better, do please let me know And I can't do that for you. Just let me know ryan ryan b It's a ps a 10 on the kobe on the rights The kobe is an on-card autograph. This is an on-card autograph Okay, let me just pull it up as well quick one second ryan gonna confirm Uh one thing here. Just give me one moment and great selection ryan Congrats man. Thank you so much ryan really do appreciate it, man Really really do appreciate it. Thank you so much ryan The kobe bryant ps a 10 select in-flight autograph Is all yours nice big ryan great selection man great selection Can't go wrong. Yep. That's great man. Congratulations ryan There you go, man. That's awesome Thanks again ryan. We always appreciate you joining man We always appreciate you joining Now you got a kobe auto man. There you go There you go. Just kind of adjusting this camera to where I need it Selection number two is going to be Nathan b pick two We try to do them one or every uh every month or two Congrats man. That's incredible man. It's incredible Congrats ryan The kobe bryant ps a 10 was the first selection Yes, no problem. Nathan.  We have a kyler Murray 9 5 10 we have that miracle 1980 booklet card. That is the usa dream team 1980 dream team Book a card booklet card. Like I said, we have a dan marina one-of-one patch And then we have this elver poohalls jumbo jumbo booklet patch card And then one more time. This is the front row. There's a ken griffy junior ps a 10 star rookie Great brady black gold choice ps a 10 from uh mosaic. That's to eight And then the lebron bernard king paul pierce carmelo came into rant and lemar jackson Yeah, I hear you rich. I hear you.  Nathan if there is one specific card that you want to see better feel free to let me know Yeah, no problem at all man. Once again, I'll just kind of show them all There's that poohalls 101 That's tribute 2018. This is dan marina one-of-one. Uh, and this is 2007 artifacts The miracle 1980 booklet card Um, this is the 1980 dream team. It's number to 10. It's uh, it's about a 12 player booklet auto or so And then uh, it's a kyler murray 9510 true gem Right And once again, this is the front row. This brady is numbered seven of eight star rookie griffey is a ps a 10 Star signatures is lebron bernard king paul pierce carmelo anthony nine of 25 no problem. Yep No problem. So this is nine of 25 There's a nice look for you once again. Like I said 2009 2010 nba sp signature edition Or sorry. Yeah, rick. I think I said dream team That's basketball. Sorry Nathan, let me uh going with the tom brady. Nice man. Great selection there. This is the only tom brady Yep, this is the only tom brady. There you go, man. Congrats. Nathan b awesome hit, man PSA jen min 10 That's awesome, man. Congrats sick hit incredible card Brandon a you are up next to your brandon a Good luck Brandon a with a quick one. There you go, Brandon going with the ken griffey jr PSA jen min 10 star rookie Congrats, Brandon. Thank you very much, man That was a quick one for you. You know exactly what you wanted. I did confirm That's you congrats on the pick there, man Brandon a there you go right to it, man. You knew exactly what he wanted You knew exactly what he did wants Okay, so let me show you what remains Uh, this is going to be pick number four george k Congrats there pick four george k So one more time george. This is what remains. There's a couple of cards in the back row as well It's a nine five ten kyler murray true gen plus uh, that's the Miracle 1980 usa booklet card again to ten the poo halls booklet one of one 2018 top tribute And then in the front row you're going to have a camo prism lemar jackson That is uh mint nine to 25 came into rant flawless to 10 patch autograph the Triple or excuse me the quad autograph lebron james bernard king paul pierce and carmelo anthony. That's number to 25 and then the uh marino Thank you george. I appreciate that One second Looks great george. Thank you again george. I appreciate it great selection on the kevin durant flawless patch autograph Great pick man. There you go george. Thank you very much, man Awesome card. Let me move this up here Awesome card, man Great great stuff Next up is drew m Drew m you are on the board drew m Congrats there, man We always appreciate you getting in george always see your name in the almanacs. What a start right rich What a start Yeah, it was a pleasure to speak with you at the national george. Yes, it was Yes, it was One more time pick five drew m What you thinking drew what you're thinking, man? You got some great choices here Miracle on ice. There he goes. There he goes, man. Congrats incredible card, man Really do appreciate you joining awesome hit on the miracle on ice Thanks, nick.  Thank you go drew. That's so sick, man. Congrats again on it Congrats again on it. All right guys the only card not on camera right now It's going to be the pooholst one of one 2018 patch auto booklets That pooholst there. That's the only card not on camera now. Everything else is shown Patrick n at the six spot here. Patrick n You're on the clock my man Congrats drew incredible, man Great pick. Yes, great pick The LeBron quad auto great selection as well. Dude. I can't believe that sixth pick Sixth pick guys Just got a LeBron quad auto What the heck, man Looks great. Patrick. Thank you again so much for joining, man. Sixth selection right there Guys fill these up That doesn't make sense That doesn't make sense Okay, next up number seven Bernie. Yes. Good luck, Bernie. This is what remains on the board here. The Kyler Murray Lamar to 25 The pooholst and the Dan Marino Bernie. Yes on the clock here number seven. No problem at all, man Incredible stuff I don't know how you just got a LeBron at pick six. It's just great. That's how shows how great this product is, man Incredible It's not even necessarily about like how it's more about like we have that many sick cards, you know Just incredible There's that many sick ones to pick from Bernie. Yes. Let me know what you're thinking, man Let me know if you want to see something better as well Every one to two months Always be checking the site. There's still spots remaining tomorrow nights same exact run here The Kyler Murray is not numbered Based on card autograph right here based on card auto Guys, remember we're supposed to be minimizing the chat right now remember Bernie S on the clock here Hey, sounds good Patrick You know, we'll be here, man You know, we will be here One minute left for you, Bernie One minute left here If you do have a question feel free to ask Otherwise, I will take that best available card If you are not here, just no problem at all One minute left Yeah, exactly I have a cheat sheet about 15 more seconds, Bernie. If you do want to get that pick on in About 15 more seconds here Correct, it's based on value. Yes The top value that is correct All right, Bernie last second or two here Otherwise, I'll make that selection for you All right, Bernie. I'm gonna select you the camo prism ps a nine mint nine Lamar Jackson This is numbered 11 of 25 Very nice card there You go Bernie Congrats, man. Very nice hit for you All right, and that brings us down to three dan m. You are on the board Good luck dan m Pick eight Let me know what you're thinking dan if you want to see something a little bit better. Let me know as well Yes, elbow pulse. This is one of one. That's correct one of one. This is uh 2018 Top's triple threads baseball one of one Yep one more time. Here's a look at the card sticker autograph And some nice patches and then same thing the marino is also one of one The yep same thing with the marino like I was saying also one of one This is going to be from 2007 artifacts football Got three really nice patches on there um Once again sticker autograph one of one dan m and remember guys when you do make that selection Please do include your zip code helps uh expedite the process Yeah, there's some great uh great selections here Great options at the eight spot. You do want to see something better. Let me know If you really want yeah, if you really want Just confirm that that's what you want. I suppose but yes, I could It doesn't bother me I'm assuming you're between those two I would assume that's what that means Hey, sounds good dog. Enjoy You pick sounds good. Uh, yep all good dan Um, let's go with the dan marino. That's a really nice card. Uh all time quarterback one of one It's got that beautiful patch of the shield on there. Nice card for you dan m There you go. Once again, this is 2007 artifacts upper deck really sick card. Congrats, man.  I said for you there pick number nine Cheyenne l on the clock here. Good luck Cheyenne To remaining no problem at all Yeah, both of them that you were between there were great options Dan m with dan m. Yep Congrats dan. That was an awesome pick And then joe you will get whatever's remaining here Cheyenne l good luck here for this Perfect. Thanks again. I appreciate that Cheyenne great selection on the elver poohalls. There you go. Awesome hit there Very cool 2018 tops triple threads And on the back we do have the kyler murray Very nice card. This goes out to joe l with the 10th pick joe. You get the kyler murray true gem 10 on the auto kyler murray on card autograph There you go, man. Thank you again. I do appreciate it. We'll have all of these well protected and we'll be on to number two next tonight


This lecture will be about the sure indicator of representations. So this is a method for solving the following problems. Suppose that V is an irreducible complex representation of finite group G. So we're going to take G to be finite and V to be finite dimensional throughout. Then we can ask the following questions. First of all, does V have an invariant bilinear form from V tensor V to the complex numbers? And secondly, if so, is it symmetric or anti-symmetric or whatever? And another question we're going to ask is apparently completely unrelated, which is to classify the real irreducible representations of G. So we're going to answer these questions by use of something called the sure indicator. So let's do question one first. We just want to know, does V have a bilinear form? Suppose we have a bilinear form to the complex numbers, which we will assume is invariant and non-zero. Well, if there is a non-zero invariant bilinear form, this is equivalent to saying that V is isomorphic to its dual as a representation of the group G. And this is the same as saying that the character of V is equal to the character of the dual of V for an irreducible representation V, and this just says the character of V is real. In other words, all its entries are real numbers rather than proper complex numbers. So it's easy to tell whether or not an irreducible representation has a bilinear form. What about the dimension of the space of bilinear forms? Well, since bilinear forms correspond to G invariant maps from V to V dual, for V irreducible, the dimension of these must be at most one by Scherzlemmer. You remember Scherzlemmer says that for complex representations, the maps from V to itself is dimension one and from V to anything else is dimension zero. So if the space of bilinear forms is one dimensional, that means bilinear forms can either be symmetric. They're either symmetric. In other words, AB equals BA or anti-symmetric. AB equals minus BA. Of course, in general, a form could be a mixture of both, but if you had a form that was a mixture of both, we could decompose it into its symmetric and anti-symmetric parts, and then the space of forms would be at least two dimensional. So we now have the following question. We know whether an irreducible representation has a bilinear form and we know that if it has a bilinear form, it must be either symmetric or anti-symmetric, and now we have to figure out which case occurs. Well, a bilinear form is going to be symmetric if the trivial representation C is contained in the symmetric square of V and it's anti-symmetric if the trivial representation C occurs in the alternating square of the representation V. And we can figure this out by looking at the characters of the symmetric and alternating square. So you remember the character of the alternating square of V was given by, you take the character of V of G squared and subtract the character of V of G squared and divide it all by two, and the character of the symmetric square of V is similar, but with a sine error. So we take V of G squared minus sine of V of G squared all divided by two. You notice the square is inside the parentheses on one of these and outside on the other. And so at most one has inner product one with the trivial character chi of one, and we want to work out which. So in other words, if we take chi of S squared V and subtract chi of lambda squared V and take its inner product with the trivial character, this is equal to minus one, zero or one. If V has a skew symmetric form, it's zero if V has no invariant bilinear form, and it's one if V has a symmetric bilinear form. So we can work out whether the form on V exists and whether it's symmetric or skew symmetric just by calculating this. And by looking at the expression for chi of S squared V and chi of lambda squared V, we see that this inner product here is given by one over G times sum over G and G of chi of G squared. So this is the famous Schur indicator. So you can work it out for representation and it's one of these numbers and that tells you what possible bilinear forms that are on the representation. We'll see some examples in a moment. I just comment that this case and this case are quite common. This case here for some reason seems to be rather rare. I mean, if you look at a typical group, it quite often has no representations of this sort at all. In fact, quite often all its representations are of this type here. So let's have a look at some examples. First of all, if we look at the, we calculate the representations of various symmetric and alternating groups. And if you look at all the symmetric groups we've done, they all have Schur indicator one. In fact, all complex representations of all symmetric groups always have Schur indicator one, which means they have a symmetric bilinear form and nothing else. And the alternating group A5, they all had Schur indicator one. The alternating group A4, there were a couple of Schur indicator zero. So you remember the character table of A4 looked like this and three minus one, zero, zero. So you see these two characters are real characters. And in fact, their Schur indicator is plus one. These two, the number omega is not real. So the Schur indicator is zero. So these two characters don't have an invariant bilinear form. Well, to see an example with Schur indicator minus one, the simplest example is the quaternion group of order eight. So what I'm going to actually do is I'm going to work out the character table for the dihedral group of order eight and the quaternion group of order eight. So we did the dihedral group of order eight and its character table looks like this. So we've got four one-dimensional characters, and then we found there's one other two-dimensional character. And we can work out the Schur indicators of these. They're all just plus one. So in order to work these out, we need to know what the squares of elements are and the elements of d8 squares follow. So the center squares to one. And then we've got some elements of order two, which square to one. And then we've got an element of order four, which squares to here. So if we work out the Schur indicator of this one here, we find it's two plus two for these two, plus two, plus two, plus two, plus two. Plus two, plus two, plus minus two, plus minus two, which is eight. So we then divide it by the order of the group and we get plus one. If you look at the quaternion group of order eight, you remember the quaternion group has conjugacy classes plus one, minus one, plus or minus i, plus or minus j, plus or minus k. And then just as for d8, there are four one-dimensional characters. Because the benionization is the client four group. And again, by the orthogonality relations, there's a two-dimensional character. And if you look at the character tables of d8 and q8, you'll notice the character tables are actually identical. However, there's a sort of subtle difference in the representations, because if we work out the Schur indicator of this, well, we first have to work out what the squares of everything are. Now the squares are a little bit different, because now everything squares, every element of order, these elements all have order four and square to this element here, not this element. So if you work out the Schur indicator, we get two plus two, plus two, plus two, plus minus two.  And then when you divide that by the order of the group, we get minus one. So this representation here has a skew symmetric invariant bilinear form, whereas this one has a symmetric invariant bilinear form. So I'll give an application of the Schur indicator to groups of odd order. So suppose the order of G is odd. Well, what's the Schur indicator? It's sum over G in G of chi of G squared. What's that? Well, that's easy to work out because if G is odd, then the map from G to G squared is a bijection from G to itself. So this is equal to the sum over G in G of chi of G, which is just the inner product of chi with the one-dimensional irreducible character chi one. So this is equal to one if chi is trivial and not if chi is non-trivial and irreducible. So the only irreducible character of a group of odd order with an invariant bilinear form is the trivial character. All other representations have no invariant bilinear form and come in complex conjugate pairs. There's a sort of funny application of this. We know the sum of di squared is equal to the order of G, where the di is the dimension of the ith character, which is I guess it's chi by one. And since the characters come in complex conjugate pairs, we can write this as let's say the sum over the non-trivial characters where we're going to take one of each complex conjugate pair is equal to G minus one over two. Now, in fact, di is always odd because it divides the order of G. This is a theorem that we'll prove a little bit later. But assuming it for the moment, we see that di squared is congruent to one modulo eight because every odd number squared is congruent to one modulo eight. So we see that n minus one over two is congruent to G minus one over two mod eight where n is equal to the number of irreducible characters of chi, which is the same as the number of conjugacy classes. And if we double this, we find that chi is equal to the number of conjugacy classes mod 16. So in particular, we see that any group of order of order less than 19 must actually be a billion because the number of conjugacy classes must be equal to the order of the group mod 16 so it must be equal to the order of the group. So all conjugacy classes of size one, in fact, even if there's order 19, it must still be a billion because 19 is prime. But when you get to order 21, there is actually none a billion group of order 21. And you can see from this that it must have exactly five conjugacy classes, which is of course not hard to check directly. Another application of the shirt indicator is to classify the real representations or the real irreducible representations of group G. Here there are three types because the G invariant maps from V to V must be a division algebra over the reals. And there are three possible division algebras, could be the reals or the complex numbers or the quaternions. And for each of these, you can turn this into a complex irreducible representation and the way you do that is slightly different in these three cases. So, so let's look at the three possible types. So we've got here's the representation V and here I'm going to let its dimension be N or 2N or 4N. And here the HOMs from V to G from V to itself can either be the reals or the complex numbers or the quaternions. So this side here are real representations, V is a real vector space. Now from each of these I'm going to construct a complex representation of G. So for the first one, I just take V tensed over R with C. And this turns out to be an irreducible complex representation and its dimension as a complex representation is N. And furthermore, this has a symmetric bilinear form. So the bilinear form on this is going to be symmetric. And you can see that because this space here always has a symmetric bilinear form. You can take a positive definite quadratic form and just make it invariant under the group G. And this is also invariant under norm one elements of R, C or H. At least if you, again, you can make it invariant under these by just averaging over the norm one elements of this. So the invariant symmetric form on V just becomes bilinearity an invariant symmetric form on V tensed over with C. Well, if V is, if the hom from V to V is the complex numbers, then instead of taking V tensed with C, we just take V is an irreducible complex representation. Because now that the, if the linear maps from V to V are isomorphic to the ring C, then that means C is really a vector space over C. We also get a second one because we can take a sort of complex conjugate of V. So we actually get two different representations. And on these representations, there's no invariant complex bilinear form. I mean, there's a real one, but it's not complex. And finally on the quaternions, we again take V and we can now put a complex structure on it by using I in the quaternions to give complex structure. So it's automatically a complex vector space. Now it has an anti-symmetric bilinear form. And this anti-symmetric bilinear form can be defined by setting AB equals AB times J. So I'm going to write the quaternions acting on the right plus I times ABK. And you can check that this formula makes this into a complex bilinear map that is anti-symmetric. So it gives an anti-symmetric form on this. And here V has complex dimension N and V bar has complex dimension N. And here V has complex dimension 2N. So this gives the, if you know the real irreducible representations, you can work out the complex irreducible representations from it. And conversely, you can work backwards. I'm not actually going to do this because it's not too dissimilar, but it's slightly trickier than going from the real representations to the complex representations. And to go from the complex representations to the real representations, you notice the sure indicator in these three cases is plus 1, 0, or minus 1. So if you know the complex representations, you can find the real representations by just working out the sure indicator and then you just get the real representations by reversing this process. For example, suppose you want to know the real representations of A4. Well, we look at the character table, which looks like this, and we look at the sure indicator, which is plus 1, plus 1, 0, 0. Well, plus 1 gives us a real representation of the same dimension. So we get real representations of dimension 1 and 3. For sure indicator 0, what happens is these two complex representations both become the same real representation of dimension 2. So here are the dimensions of the real irreducible representations of A4. Let's just do the quaternion group as an example with a quaternionic representation. So we write down the character table, which should be minus 1. And here the sure indicators of plus 1, plus 1, plus 1, plus 1, and minus 1. So here we get real representations of dimension 1 by taking a real form of these complex numbers. And here this complex representation of dimension 2 becomes a real representation of dimension 4. So here are the dimensions of the four real irreducible representations of the quaternions.


My name is Ian Clark. I'm the CEO of Uprising Labs. I'm also the founder of the FreeNet Project, an anonymous peer-to-peer network that I've spoken about here more times than I can count over the last 10 years. This has nothing to do with that. Let's talk hacking desire, figuring out what people want. Why would anyone want to do that? Well, this is really fundamental to the internet in many ways, to getting the right information to the right people. It's essentially what companies like everything from Google to Facebook, what they're all based on, figuring out what people want and providing it to them. My background is in artificial intelligence, so I was very interested in taking that type of approach to addressing this issue. I'm going to be talking about this kind of broad area and some other approaches to this problem, techniques that are generally called collaborative filtering or recommendation engines, which is kind of the umbrella term for all of this. I'm going to talk about how they do it, what's wrong with the way they do it, and present to you a pretty neat approach that I've been working on for the last while. What can you do with this? Well, we actually see a lot of examples of recommendation engines in use on the internet today. You can use it to figure out what kind of music people like. This is an interesting problem because typically people have a lot of trouble articulating exactly what their musical tastes are. The idea of some algorithm that can look at your behavior and essentially reverse engineer your music preferences is pretty attractive. I'm sure most, if not all of you are familiar with Netflix and that's one of the most prominent uses of collaborative filtering online. They use it to recommend movies. This approach can also be used to recommend search, for example, as an alternative to using something like PageRank to rank search results. You could use a recommendation engine like the one I'm going to describe to rank search results in a way that is tailored to you specifically based upon your past behavior. These techniques can and are being used to target advertising, behavioral advertising. Some people kind of see that as scary. I think it's kind of a double-edged sword on the positive side. I think most people, if you're going to get advertised to, it's better that it's actually relevant to you. These techniques can and are being used for dating websites, finding people who are likely to form compatible matches. I've been doing quite a bit of work with a company called eHarmony that most of you are familiar with who have done a lot of research into this and they're kind of continuing to use this type of approach to figure out what pairs of people are likely to achieve long-lasting relationships and in their case hopefully get married because that's basically their raison d'etre and also product recommendations which is similar to advertising. What are the common approaches to this problem today? The simplest one is what I'll refer to as item-based collaborative filtering, a little bit of terminology. Typically the people are users and the things that are being recommended, whether it's music or movies or whatever, are called items. An item-based collaborative filter basically looks for similar items typically on the basis of a lot of people who bought this thing or liked this thing also liked this thing and then if you express an interest in a certain item it will recommend other items that it thinks are similar to that. This is very simple to implement. It's also easy to explain to end users. It's pretty transparent what's going on. On the negative side it's quite naive. Really the only input to this algorithm is what item are you looking at right now and that's all it knows about you when it makes its recommendations. There also tends to be a problem here where you have limited diversity. For example, when this technique is applied to things like news stories what it will tend to do is let's say you have a news story about the war in Iraq for example it will recommend a bunch of other news stories on the same or similar topics and that's typically not what people want. People want some degree of diversity especially if they're reading news or listening to music. A more sophisticated and more powerful approach is user-based collaborative filtering. In this approach you look for users that are similar and the way you find users that are similar is you look at what did this guy rate, what did this other person rate the same things and you look for users where that is similar and to those statisticians among you typically you'll use a Pearson correlation coefficient to determine the similarity between users. On the upside this can actually develop quite a nuanced... and then of course once you've identified the users that are similar you look for things that they liked that your candidate user hasn't seen yet and that's what you recommend to them. Now this can develop quite a nuanced view of what your interests are if it can find 20 or 30 other people that are similar to you and then use those other people essentially as recommenders for you then that can be very, very effective. It's also quite easy for end users to understand people like you like these things. It's not hard to get your head around. There's some problems though. Firstly it requires a lot of data per user to accurately determine user similarity. If you and I have just been using Netflix for even a couple of weeks we've maybe rated four or five movies each. How many of those are we both likely to have rated? Well at most one or two really. One or two ratings of the same movie, the fact that I gave Robocop a five and the fact that I gave the Matrix a five star rating and the fact that you did two, you know okay we're probably both geeks but it's not a very nuanced perspective of how are we similar. So these things require a very dense data set to be effective and in most situations you really don't have a dense data set because most people are not Netflix, they're not Amazon, they're not Google and they need to make do with a lot less data. Also this approach can be hard to scale and naive implementation of it where you check every user against every other user has order of n squared scalability which if you have millions of users that's a very very very bad thing. Typically approaches which try to make this algorithm scale more effectively reduce the quality of its recommendations significantly. So our approach is different to both of these two things. In some ways it shares some properties with both of them. Our idea is we want to build a mathematical model of your interest, what you like and what you don't like and simultaneously we build a mathematical model of the qualities that particular items have and for any user an item we can combine these mathematical models and it will spit out a prediction of how much that user will like that thing. So we start out obviously these models start out essentially being random but what you do is you take past data, so user A liked item B this much and you feed it into this model and you kind of make tiny tweaks to the model to try to so that it's producing the appropriate output on the training data. This technique is called gradient descent and I'll talk a little bit more about this in a second. And then we use this model that hopefully is now giving fairly good predictions on the training set, the data that it has seen and it's able to produce predictions of how much a given user will like a given thing that they haven't seen yet. So this broad technique is something that's used quite a lot in artificial intelligence research. It's called gradient descent and the way to think about gradient descent is your current solution to a problem is like a ball on an uneven surface like this one here and the lower down the point on the surface is the better your thing is doing. So in the case of our application the more accurately our algorithm is predicting user behavior the lower this ball is going to be on this surface and then gradient descent you simply put the ball on the surface initially in a random position and it will roll downhill and what's going on is that at each stage you're essentially figuring out what slight modification can I make to the properties of this mathematical model such that it will yield better results. And you do this millions of times in the case of the data set I've been working with mainly using 100 million ratings and you repeatedly go through them over and over again and for each rating you kind of modify your model ever so slightly so that it's giving output that's closer to what you're looking for and eventually it will start to produce results that are pretty close to your training set. I'll wait. I don't know if we're supposed to evacuate or I'm guessing not. I assume it's going to stop any second now. Okay. At least this is also happening to all the other speakers that makes me feel better. Okay. I'll try and continue on and ignore it. So gradient descent has pretty diverse applications as I was mentioning it's something that's used quite a lot in artificial intelligence whenever you have a situation where you have a problem to solve you're quite sure how to solve it and you'd like a computer to figure out how to solve it on your behalf gradient descent is a very effective way to do that. This is not real. Take the... They haven't switched it off yet. Okay. So to kind of give an example of the type of diverse applications that gradient descent algorithms can be used to solve here's one example. So in this case these guys simulated a simple humanoid figure existing in three-dimensional space and they simulated basic rules of physics like gravity and friction and the fact that two things can't be in the same place at the same time. They then used a neural network to control the humanoid figure. For those of you not familiar with it a neural network is a technique that's used in artificial intelligence quite a bit. It's a network of neurons which it's kind of like a loose approximation to the way the brain works and you can use a gradient descent algorithm to train a neural network to do stuff that you want it to do. So in this particular simulation the fitness of this thing in other words the point at which this ball is at its lowest point is where this humanoid figure achieves its maximum height. So this gradient descent algorithm is going to try to figure out a way to make this guy jump as high as he possibly can and you'll see, I'm going to play a video of this, you'll see that actually he does improve with time as the gradient descent algorithm does its thing. And there's... Okay so here you can see the humanoid figure and I found a little bit of a soundtrack that seemed to go with this video so let's see if it works. It's getting better. Okay so hopefully you could see that it kind of started out being pretty dumb flailing around but by the end of it he was getting some pretty serious air time. So how does... So this mathematical model that we want to create that's going to represent what people want and what properties the items that they want have how are we actually going to do that in practice? Well the approach is pretty simple so in this case I'm taking an example of a movie I quite like called Robocop and what I've done here is I've broken down my movie preferences along essentially four dimensions.  So Robocop, it's got a decent amount of action, a lot of violence, it's definitely sci-fi and there is no romance whatsoever. So how do we take my preferences and Robocop's qualities and turn it into an actual number? Well it's pretty straightforward really. We give each of my preferences a name A, B, C and D for the four preferences you saw there. We give each of the qualities of the movie their own names E, F, G and H and the rating is very simply A, you know, how much I like violent movies which could be a positive for a negative number, multiplied by E which is whether or not the movie is actually violent or not which can also be a positive or negative number. I multiply each of these pairs together and the sum of them gives me the rating. So in the case, I can just flip back here or try to... Sorry, I lost my mess pointer here. Okay so you can basically see action multiplied by action leads to a high number, romance multiplied by romance because they're both negative also leads to a high number so add them all up and I like Robocop. Okay but there's a question. So I just... Here's being a little bit slow. Okay. How do we actually figure out for a given user how much they like violence, how much they like this and similarly for movies, how do we figure out what the properties of the movies are? You know we can't exactly laboriously go through each movie and assign these things to them. That would take a very long time and we definitely can't go through every single user and kind of ask them how much you like violence, how much you like this, how much you like that because users just probably can't be ours to answer that many questions and secondly the answers they give probably won't be very good. So how do we assign numbers to each of these values such that we get accurate ratings? And that's basically where the gradient descent algorithm comes in. Similarly, how do we decide what the important features are? So I kind of came up with violence, sci-fi, romance, you know, but we don't really want to be in the business of having to try to figure out what the important qualities of a movie are that will dictate whether or not somebody likes the movie. So what we do is we actually don't need to figure that stuff out. We can just let the gradient descent algorithm tell us. So how does that work? Well, essentially what we're giving the gradient descent algorithm is a bunch of movies, a bunch of users, and a set of ratings that match each of those users to each of those movies. And we basically tell the gradient descent algorithm okay, you've got, actually I use 64 features typically. You've got 64 features. They can mean whatever you want them to mean. You just need to assign numbers to each of those user features and each of those item features such that you are able to distill that user's interest down to a very basic, you know, down to something that will yield accurate predictions. So how do we decide, oh, wait, okay, so yeah, and so what will happen is this thing will figure it out for itself. We probably won't even understand what these features mean, that it's figured out, they will just make sense for it, but kind of later on I'll show some visualizations where you'll hopefully get a sense for what it tries to figure out. So I've done this, I'll show you kind of what it looks like a little bit later, but does this approach work? Well, so I think about two years ago, a year and a half ago, Netflix wanted to stimulate innovation and research in this field. And so they did a very good thing, they took several years' worth of the data that they had collected, the ratings by users on items, and they released it onto the internet, 100 million ratings, half a million users, 17,000 movies, and they basically said to people, take this data, you try to build a piece of software that can predict what users are going to rate, and then we will test what you've built on a test set of data that we haven't given to you, and if your algorithm performs better than everyone else in a given year, they'll give you, I think, 50,000 dollars. No, if in any given year it's 50,000, and if you can achieve a score below .85 something, then they'll give you a million dollars, and nobody has done that, and it's actually quite likely that nobody will be able to achieve that. But I'll talk a little bit more about why that is and what the properties are of the way they've chosen to measure success of these type of algorithms. Basically what they use to determine how successful this type of collaborative filtering algorithm is is a metric called root mean squared error, and that's pretty simple. You train the algorithm up on a training set, you then give it a probe set which is combinations of users and items that the algorithm has not seen that it's not been trained on, and then you let the algorithm make a prediction for that given user an item, and then you measure the difference between what that user actually rated that thing and what the thing predicted, and then you take the mean difference between what was predicted and what the user actually did. It's slightly more complicated than that because they use a root mean squared error, and all that means is that they actually take the squared differences between what was predicted and what the users actually did and get the mean of that, and then you take the square root of the whole thing, and the reason that they use this type of mean is they want to really more aggressively punish very, very bad predictions. So if you predict that a user's going to love a movie and they actually hate it, that's actually a very, very bad thing, and by using root mean squared error, this will lead to a significantly higher error, and so you're punished for just really dumb predictions. And then as I mentioned, it's very important to separate out the probe set the data you're actually going to test the algorithm with from the training set. If you look at the forms around the Netflix prize where people kind of discuss it, what happens is about once a day you'll see somebody appear on there. It's like, oh my God, I just won the prize, and invariably the response is, are you testing your algorithm on the training set? And typically when you do that, you get root mean squared errors around 0.65 or 0.7, which would mean that you'd just become a millionaire. But you have to separate out the data because the algorithm will essentially cheat, typically speaking, there's kind of a degree to which it will memorize the data that it sees, so you can't test it on your training set. So how do we do? So the approach I just described scores 0.905 on the Netflix probe set. That's about 5% better than Netflix's own algorithm, which is approximately 0.95 something. But some algorithms actually do significantly better than that. They can get down to 0.864. How are they able to do that? What improvements can we make to get better predictions, and do we want to? Well, before I talk about that, well no, I'll talk about that now. So the answers to these questions are typically how do they do that? In some cases they kind of do it by exploiting a flaw in the way that Netflix are measuring success. To give an example, let's say your algorithm predicted things very, very well for high ratings. So if a user was going to like a movie, then your algorithm's actually very, very accurate at predicting that type of thing. But let's say your algorithm is really bad at predicting stuff that you don't like. So if you're going to rate something a one or a two, maybe it's producing three or whatever, but it's just bad at predicting what you'll rate on movies you don't like. Let's take another algorithm which is okay at predicting movies that you like, and it's okay at predicting movies that you don't like. Well, the way that most collaborative filtering algorithms are used, the first algorithm would be much better, because the way most people use collaborative filtering algorithms is you generate a bunch of predictions for a given user, you take the top 10 or top 20 predicted ratings, and you present those to the user. You never present movies or items with low predictions to the user, so it really isn't terribly important how well your algorithm does in terms of its accuracy of predicting low ratings, but it's very important for high ratings. Now, the root mean squared error metric will actually prefer the second algorithm, even though in practice the second algorithm is going to do a worse job. There are other things as well, so one of the things that a lot of the approaches to the Netflix prize, one of the things they do is they'll look at user mood, so they'll look at other movies that you rated today, and they'll look at other movies you rated today, and they'll try to figure out, is this guy in a good mood, maybe he's drunk or something, and he's rating everything pretty high, and then they'll raise their prediction for you because they've decided you're in a good mood, and thus they will actually achieve a better root mean squared error, but in practice this has no bearing on the actual effectiveness of the collaborative filter, because the only thing that matters is your ratings for you relative to each other. So this is kind of another way that you can do better on the Netflix root mean squared error metric without actually yielding a better result. So I kind of said I'd talk about what the algorithm actually did, so what I did to try to visualize or create a visual representation of what this algorithm is doing is I set up a run of this and tried to train it using just three features for both users and items, which is not very much and really doesn't perform very well at all, but it has a nice property that if you have three floating point numbers associated with every movie, then you can graph those things in three dimensions. And that's what I've done here. So each of these dots is a movie. I've also labeled some of them so you can kind of get a feel for whether this algorithm's perception of what a movie's qualities are have any relationship to what the actual movie is about. So in this case you can see that violent movies are red and they're actually spread. There isn't really any obvious clustering with violent movies. You can see that they're kind of spread throughout the field completely. Movies about Vietnam, which just turns out there are a hell of a lot of movies about Vietnam, relatively, and you can see those in dark green are kind of higher up, so there is some degree of clustering, but it's clear that it's not like neat little... There isn't a neat little violence cluster.  So it kind of shows that the features that the algorithm determined would be effective for the three features that the algorithm determined would be effective probably don't really map directly to the types of classifications that we would apply to movies. So this is something I already talked about, actually the kind of flaws in the root mean squared error metric. So I'll just skip this. But basically root mean squared error, it's okay, but its applications to the real world are quite limited. One way in particular that root mean squared error is not effective is let's say you want to use this type of approach to do targeted advertising. Now if you're trying to pitch somebody on an algorithm that will improve targeted advertising, the first question they will ask you is what percentage increase in revenue will this yield? What's going to be the increase yield from this? You cannot determine that from root mean squared error. So if you kind of say hey, well the thing scores 0.905 on the Netflix data set, absolutely meaningless to advertisers. And that's actually true of many, many situations. It's a very academic metric but academics seem to really like it despite its flaws. So what are the alternatives to root mean squared error that Netflix could and probably should but almost certainly won't use? The simplest one that I've come up with is models the way you actually use these algorithms quite closely. So what you do is you rank the items for a given user, you rank the items by what your algorithm predicts that, how much your algorithm predicts you will rate those items. You set a threshold so you kind of have a cutoff at the top 20 items and you look at, if any of those items are in your probe set, the kind of thing you've set aside that you haven't trained the algorithm on, you look at the average actual rating of the items that find their way into this set of top 20 items. And then that is actually a metric that you can translate directly into, you know, if you're talking to advertisers, for example, this is the percentage increase you're going to get if you use this type of approach to target your ads to your users. So where can we take this in the future? And actually a lot of this I've kind of developed a lot further than what's described in this talk. So I'm kind of talking about the future but this is stuff that I'm doing right now. Can we incorporate more data? Are there ways that we can take more diverse data and use it to make better predictions for users? Well, the problem with most collaborative filtering algorithms is that the only form they accept data in is user A liked item B this much. But there's a lot of information available to you about both users and items that are not in that form. For example, let's say you're operating a website, let's say you're Netflix and you're operating a website. There are a whole load of things that you can determine about users based on even the HTTP request coming in.  All of this metadata potentially holds information that you could use to more effectively predict what this user is likely to be interested in. You can also, the user's geographic location, many other things are available to you right from the very first moment that user visits your website. Why can't you use this stuff? Well, actually, we did figure out a way to use this information. So the software that we wrote, you can tag both users and items. So if you know a user is using Firefox, you can give them a Firefox tag. If you know a user is using Windows, you give them a Windows tag. If you know they're in Las Vegas, Nevada, you can give them a Las Vegas, Nevada tag. It will then look for correlations between these tags and actual user behavior. And you might ask, well, what does the fact that I use a Mac really say about me? Well, it turns out that in some of the experiments we've done, for example, one in a online news website, we discovered that Windows, or rather the algorithm discovered that Windows users or Mac users are 20% less likely to click on a news story about religion relative to Windows users. So, because Steve Jobs is their garden, they don't believe in any other, I assume. But, you know, and we found all sorts of crazy correlations like that. You know, between whether they use Yahoo Mail or it turns out Yahoo users are a lot more likely to click on anything relative to Gmail users. They cannot see a hyperlink without clicking it. And as a result, like some, I do work with targeted advertising companies that send email. They claim they're not spammers because it's targeted opt-in, blah, blah, blah. But what's amazing is that for almost all of them, approximately 80% of their users use Yahoo Mail. Which is, and they don't really know why. They think maybe it's just, there's something about the Yahoo Mail user demographic that makes them very gullible. So anyway, all of this metadata is potentially very useful, and we figured out a way that we can give this metadata to our algorithm, and it will identify correlations in user behavior using this metadata. And that allows it to bootstrap much more quickly. And this is critical for many applications, because as I said at the outset, one of the flaws specifically with user-based collaborative filters is that they require a very dense data set to be effective. But even the approach that I've described, this gradient descent approach, it still requires quite a bit of data about users. And depending on the scenario, you typically don't know a lot about most of your users. If you're operating a website and you want to use a collaborative filter to show people stuff they're going to like, and the guy who sold you the collaborative filtering algorithm says, yes, as soon as a user has spent 100 hours on your website, will be able to start recommending stuff that's relevant to them, that's completely useless. So you really need a way that you can bootstrap your model of what a user's interests are, and by feeding the algorithm any scrap of metadata you can get about that user, that's a way to do that. The feature model, this kind of... Okay, this mathematical model is pretty simple. It's basically you multiply things together and then you add them all. Could it be more complicated? Yeah, there probably are ways that you could perhaps throw some more complicated formulae in there, some trigonomic formulae in there, and maybe that would allow the model to more effectively represent what users are interested in. This is something on my to-do list, I haven't really done it yet, but it seems like if I could perhaps use a genetic algorithm to come up with a mathematical formula that I then try to train to predict user behavior, I may be able to get better results. One of the other things I've done, and then I think we'll probably have some time for questions, is what about the circumstances in which the recommendation is taking place? I know that if I'm, for example, listening to music, my tastes in the morning are probably different to the type of music I want to listen to at 10 o'clock at night. Is there any way we can actually take advantage of this? Well, actually it turns out that you can, and there's this mechanism that we call circumstance tags where you can basically say, give me some recommendations for this user, by the way, it's evening time where this user is. Or give me a set of recommendations for this guy, by the way, he's looking at recommendations on this page of our website. So you can essentially describe the circumstances that this user is in at that moment, and the collaborative filtering algorithm will try to reverse engineer patterns in user behavior as they vary perhaps throughout the day if you're using time of day as a circumstance tag or perhaps a user's behavior on different parts of your website changes, and you can use that information as well. So lastly, I've got some videos online. If you go to sensory.com, a lot of this research I've described is part of the software sensory that I've been working on, and feel free to check it out, and there are email addresses there if you think of any questions on doing that. But since I think I've got a few minutes, if anyone has any questions, feel free to ask. Right, so the question was, if I can condense it, what if four features do not adequately represent the qualities of a item from the perspective of whether a user may or may not find it, be interested in it, and you're right. So what I find is that the fewer features I give the algorithm, the less well it performs. So I gave it three features to generate that crazy rotating cloud thing with all the dots in it, and that performed very badly. So that performed, I think it was 0.96 RMSE, which is worse than Netflix's own algorithm. As you increase the number of features, the performance increases because the system is basically able to figure out a more nuanced idea of what the user is interested in. And what I find is that I keep increasing the features, and I find that once you hit about 64 features, it starts to kind of level off in the increase in performance you get on most data sets, which suggests that you can do a reasonably good job of representing what somebody is interested in in 64 floating point numbers. And now that's pretty good, because 64 floating point numbers is not a lot of data. So that gives you a lot of flexibility. Well, if you wanted to, you could very easily share with other people, here is my block of 64 floating point numbers that represent my interest. Go and give me stuff that I like. Of course, there are privacy implications to doing that, but from a technology point of view, it's pretty exciting. So at the back, could you just repeat the training time? That's absolutely right. So the time required to train increases pretty dramatically as you increase the sophistication of the algorithm. So when I first implemented this, it took about nine minutes for one training cycle on 100 million ratings, and it would typically start giving good output after maybe 40 or 50 training cycles, which, you know, so a day it's performing pretty well. That's on a small number of features as you increase the number of features, there are several things that slow it down. Firstly, there's just more numbers it needs to multiply and add, and that slows it down. Secondly, the gradient descent algorithm is operating in a space with higher dimensionality. So if you can, the kind of two-dimensional surf, or the surface that I kind of had a rotating picture of, that's operating in two dimensions, but imagine trying to do gradient descent in 64-dimensional space. It just takes longer to find the lowest point on this 64-dimensional surface. Yeah, so you're absolutely right. It does slow down dramatically as you increase the number of features, but the good news is you really only have to train the collaborative filter once, so it doesn't really matter if it takes even a couple of days, and then after that, you really just kind of need to maintain it as you collect more data. So scalability and kind of CPU time tends not to be a bottleneck in this type of collaborative filter, although many collaborative filters are extremely CPU intensive, and that poses a problem. We've got two minutes left. Any more questions? One there? Okay, so the question was what about how people's interests change over time, and I'm not sure what Netflix does about that. Your experience would suggest they don't do anything. My approach to that is my algorithm will forget old data. So basically when it's decided it's using too much disk space, it'll start throwing away the oldest ratings, and there is an extent to which it will focus more on your more recent ratings, but I think there is a lot of scope to examine just how quickly do people's interests change. My approach to that is a pretty kind of brain-dead approach, but it seems to be relatively effective, but you're absolutely right, people's interests do change over time. A lot of collaborative filters don't acknowledge that fact. One minute left, I think. Okay, thank you very much.


In the previous lecture, we have discussed certain operations through which the class of regular languages is closed with respect to those operations because I reemphasize on the point that these cloned properties are helpful to understand some of the new languages to see that they are regular. In that context we have observed that reversal of a language, reversal of a regular language is regular and right quotient. Similarly, one can define left quotient and understand that regular languages are closed with respect to left quotient also with arbitrary languages. So, that is where I have stopped my previous lecture. Now, let me continue with some of these cloned properties of regular languages. Now, I introduce a new concept in the context of regular languages that we see that using this also we see that the class of regular languages are closed with respect to this particular operation. Now, before going to that new operation so called homomorphism first let me give you some overview about homomorphism that we normally discuss in case of algebras. First you understand or recollect that if you take an alphabet sigma, sigma star is a monoid with respect to concatenation the operation concatenation. Now, in case of algebras the way that we understand the homomorphism here if you consider a map f from one monoid say sigma 1 star to another monoid sigma 2 star 2 different alphabets you may choose or 2 alphabets I may say f a mapping is said to be homomorphism if it satisfies this property f of x y is equal to f x f y for all x y in sigma 1 star this is if a mapping if it satisfies this property f is called a homomorphism. Now, you look at the point that here sigma star it is not just a monoid it is in fact so called free monoid over the alphabet sigma here this is a finite alphabet. Now, what is the advantage in defining homomorphism in the context of you know this free monoid here the set of all strings over an alphabet it is sufficient to define the of mapping or the basis you need not actually define the mapping for all the elements of sigma 1 star because sigma 1 star is a countably infinite set. So, you of course, one way of giving mapping you define for every element here, but here the advantage is you just define for the basis elements here the elements of sigma and you can naturally extend using this property to for all the elements of this. So, that it is a homomorphism now to just to mention about certain trivial homomorphism if you consider the identity mapping from some alphabet sigma star to the same identity mapping is defined by f of x is equal to x for all x in sigma star you can quickly see that this mapping is identity mapping is a homomorphism and one important remark is this under any homomorphism f from say sigma 1 star to sigma 2 star the empty string will be mapped to empty string only under any homomorphism under any homomorphism f. So, here what you look at as I had remarked if you just define the elements of for the elements of sigma 1 you can naturally extend using the property of that. Now, for example, if you take sigma 1 to b say a b sigma 2 for example, say 0 1 if I define f from sigma 1 star to sigma 2 star by f of a is equal to say 0 f of b is equal to 1 I have defined only for the basis elements. Now, if you take any x in sigma 1 star what do we do this f of x will be you know f of a 1 and so on a n since it has to satisfy the property what do we get f of a 1 f of a 2 and so on f of a n because we want that property homomorphism property need to be satisfied and we are given for a and b the images. So, f of a 1 if it is a you put 0 if f of a 2 if it is b you put 1 and so on precisely the mapping is here defined by if you take any string or a b the alphabet a b the images whenever there is a you will have 0 whenever there is b in the string in the string of sigma 1 star under concentration you put 1 that is clearly a homomorphism. Now, a generalized concept of homomorphism is called substitution this is called substitution substitution in which case what do we do in instead of giving a string as an image we give a language as an image for example, a mapping f from say sigma 1 star to now we consider language means I consider power set of sigma 2 star that means the set of all subsets of sometimes people may write this as this sigma 2 star means all subsets of sigma 2 star that means all languages over sigma 2. Now, what do we do here instead of assigning a string in case of homomorphism here we assign a language for each string use assign a language l over sigma 2. Now, as I had mentioned that it is sufficient to give images for the elements of the basis that is the alphabet here. Now, homomorphism concept we may simply say it is a mapping f from sigma 1 to say sigma 2 star a mapping. So, this is how we can now define and now to see for a string the image for a string we can naturally extend using the property of homomorphism condition of homomorphism. Now, a general concept to this homomorphism is available called substitution it is called substitution where instead of assigning a string as an image what do we do we assign a language over the alphabet sigma 2 this is all subsets of sigma 2 star. So, that means here if you take any string x in sigma 1 star now the image essentially for each symbol you will be assigning one language. Now, f of x will be as per the property f of a 1 f of a 2 and so on f of a n that means here for a 1 a 2 a n x if you consider this is the condition it has to satisfy like in homomorphism. And now what are the language that you are assigning for a 1 say let me call it as l 1 l 2 and so on l n the concatenation of those languages we consider and naturally for each string we have a language over sigma 2 under the substitution. So, substitution essentially it is a general concept to homomorphism. So, where for each string you will be assigning a language instead of defining again since we are expecting this homomorphism property need to be satisfied in case of substitution as well what do we do we simply give or we simply assign a language for each symbol over sigma 1. And we naturally extend for each string and it is not only for string now as a general concept to as a generalization of this for each language naturally for example, if you consider language l over sigma 1 star under a substitution we can now talk about f of l image of l that is for each string you consider the image this is a language you take the union here x in l. This is of course, a subset of sigma 2 star because f x is a language over sigma 2 and union of languages here that is a set over that is a language over sigma 2. So, under substitution we define f l this way. Now, let us look at some of the properties related to the homomorphism and substitution the class of regular languages is closed under substitution by regular languages. This result essentially what it is saying that is let us consider f a substitution from say sigma 1 to sigma 2 star substitution from sigma 1 to sigma 2 star. Now, if l is regular of course, this is l is a language over sigma 1 then f of l as defined earlier is also regular that is what is the statement here the meaning of this statement the class of regular languages is closed under substitution by regular languages. Here you consider a substitution f this is substitution what we are targeting to understand that if l is regular f of l is also regular.  Now, whatever the substitution that we have assume that f is a substitution and now the substituting languages since they are regular languages for each such regular language you have a regular expression. We substitute that regular expression at each symbol and the resultant one that we prove that this is this is what is represented representing that f of l.  So, the substitution of r a this is the regular expression for f of a in r now the claim is the language represented by this r dash is the desired language f of l if I can prove that if I if I can prove this claim we understand that homomorphic sorry the f of l here the image under a substitution it is a regular language because a language represented by a regular expression is regular thus you can conclude that this is a regular language you can conclude that this is a regular language before going to this let me probably to explain this let me consider an example first and then we can understand what essentially the mechanism here we are considering in this result consider this example consider the substitution h from say a b to power set of 0 1 star that means for symbol a and b I substitute the languages over 0 1 let me define h of a all the strings the set of strings over 0 1 say ending in 1 for example, for h b what I what I consider the set of strings starting with 0 let me consider these languages now if I consider the language l say a power m b power n such that m n greater than or equal to 1 you know this is a regular language consider this language what is f of l what is f of l f of l is essentially wherever you take each string here from l by definition this is union of x in l f of x. So, consider each string this is of the form a power m b power n and each symbol a the corresponding language whatever h of a is given you put it there substitute there and h of b you consider whatever is given you substitute there and for each string you get a language that language you know concatenation of all those languages that is what is f of x by definition consider all those languages and take union and this is what is f of l. Now, what is the method that we are adopting to understand this f of l very quickly is consider the regular expression corresponding to l.  Now, in this regular expression for each occurrence of a you substitute and you understand that h of a is regular h of b is also regular. So, these regular languages the corresponding regular expression you substitute in each occurrence of a in a regular expression of l and in each occurrence of b the regular expression of h b you substitute and look at the regular expression that you are getting and that is what is the process here we pursue to understand that the resultant language is regular.  So, the regular expression corresponding to that is 0 plus 1 whole star 1 this is the regular expression and h of b is given to you as those strings starting with 0. That means, this is the regular expression corresponding to this. Now, the suggestion is h of if I write this as in a loose sense like this of course, the language represented by a plus b plus the image of that we substitute this way that is 0 plus 1 star 1 plus and 0 0 plus 1 star.   Now, you can quickly see that this is 0 plus 1 whole star 1 whole star let it be this and here 0 plus 1 whole star 1 0 because the concatenation is associative and thus I can simply write you know this 1 0 and the remaining here this is 0 plus 1 whole star and the remaining here this side is 0 concatenation with 0 plus 1 whole star whole star this is what is the resultant string. Now, let us look at this portion and this portion here in this a string is of the forms if I write x y here if I choose x to be epsilon I mean epsilon because epsilon is in this there is a regular expression for which there is a star if I consider epsilon this is simply y and here y is an element of 0 plus 1 whole star that means any arbitrary string of 0 plus 1 whole star that means over 0 1 you can get in the left side. Similarly, on the right side any string over 0 plus over 0 1 you will get and hence you understand this is in fact equal to that means 0 plus 1 and the left portion 0 plus 1 whole star is a subset of this and since it is the whole set I can quickly conclude that this is 0 plus 1 whole star 1 0 0 plus 1 whole star. Now, this is the regular expression you get and in fact from this we can understand the image of the consider the given language under the substitution h is all those strings in which 1 0 as substring. So, this is the set of all strings over 0 1 with 1 0 as substring. So, this is the language this is the image of given language under substitution. Now, whatever the mechanism that we have pursued here exactly the same thing we wanted to adopt in the proof and see that it is a regular language and in fact it is representing h of l. So, here what do we do given l we have consider the corresponding regular expression r and we have obtained r dash we have obtained r dash the regular expression by substituting r a for each a in that sigma 1 and as I have mentioned the claim here is f of l is the language represented by this. We prove this result we prove this result by induction on the number of operations of r this prove by induction proof of the claim by induction on the number of operations in r. Since, r is the regular expression there are 3 possible operations concatenation addition and cleanest r. So, we use induction on the number of operations on r now for the basis you assume the number of operations in r is 0 there are only 0 number of operations that means the possibility for r is may be empty r this r can be the regular expression epsilon r r can be simply a. If there is no operation involved the corresponding regular expression is should be one of this it can be empty epsilon r a. Now, in this first case since there is no symbol of sigma 1. So, the substitution is trivial here and hence the corresponding r dash is again phi the regular expression phi and similarly, if the regular expression is this in this case there is no symbol of sigma 1 is involved and hence here also trivially r dash is epsilon and we can see that the substitution this f of l that is also empty language and here that is singleton epsilon and in this 2 cases you can quickly see that trivially f of l is equal to the image of the language l is the same. In case of r is equal to a what are the symbol that it is a of sigma 1 the corresponding regular expression r a will be considered and if. So, in case r is equal to a here l is singleton a and now what we are doing we are considering the regular expression a and we are substituting r a in place of that and we are considering that and it is given that r a is the regular expression we have we have considered that r a is the regular expression corresponding to this f of a and this is what this is corresponding to f of a and this is what is f of l. So, by substituting here so h of l now you can understand that h of l by substituting r a in place of a we get this and thus we can understand that oh sorry. So, if there is for the basis we can see that the result is true now assume this result is true if a regular expression r has k or fewer operations assume there is this is happening if k has if r has k or fewer k number of operations or k or fewer number of operations now whatever that r dash we are obtaining what is the meaning here by substituting h our result is true that is l of r dash is h of l of r we are assuming this is happening and now consider r has k plus 1 operations for induction k plus 1 number of operations then if there are k plus 1 number of operations at least one operation we can see there the possibility is either it can be plus or the concatenation or star at least one of them is involved thus we can write r 2 b say r 1 plus r 2 in this form r if r can be it is of the form r 1 r 2 r we can say that r is of the form say some say r 1 star and understand that in each case any of this case r 1 r 2 should have k or fewer operations. So, here r 1 and r 2 have k or fewer operations so what do we do we apply induction on r 1 and r 2 and we take that assertion and proceed to understand that the result is true for k if r has k plus 1 number of operations I consider this case and observe that our assertion is true when r is equal to r 1 plus r 2 and one can similarly observe this other two cases and understand that the induction from induction the result follows let me consider the case r is r 1 plus r 2 what do you do let me write r 1 dash this is obtained from r 1 by substituting r a for each occurrence of a and by induction what we have l of r 1 dash is h of l of r 1 and similarly let me write r 2 dash is the regular expression obtained from r 2 by substituting r a for each occurrence of a of sigma 1 and from induction by inductive hypothesis because r 1 and r 2 have k or fewer operations this is happening this is inductive hypothesis this is from inductive hypothesis what do we do what we have to observe that l of r dash is h of l of r that is what we have to observe.   So, this is union r 2 dash and from inductive hypothesis what do you have this is h of l of r 1 union h of l of r 2 this is from inductive hypothesis and since h is substitution you can write it this way since h is substitution we have this property and now again the regular expression h of l of r 1 plus r 2 and this is what is r. So, when plus is involved as operation here we observed that l of r dash is h of l of r similarly, if the concatenation is involved it you one can proceed this way and understand the assertion is true in when it is having k plus 1 operations or in case of cleaning star and thus by induction we have observed that substitution of regular languages is you know in regular languages it is a regular operation and thus the class of regular languages is closed with respect to substitution by regular languages. Now, an immediate consequence here is this the class of regular languages is closed with respect to homomorphism. Now, the question is when we have talked about substitution I have mentioned that substitution by regular languages and you see homomorphism is a special case of substitution and in this special case what we do from sigma 1 to sigma 2 star for each symbol you are just assigning a string. So, that means in this special case the substitution is by singleton sets of strings essentially of sigma 2 and we know this is a regular language and thus from the above result as a consequence we can quickly say that the class of regular languages is closed with respect to homomorphisms. Now, let me discuss one example here let me consider the language say a power n b power n is that m greater than equal to 0 or m greater than equal to 1 whatever let me consider this language and consider the substitution consider the substitution say f from a b to of course, power set of 0 1 star let me consider this and let me give the substitution f of a I consider 0 to the n n greater than equal to 0 and f of b I give 1 to the n n greater than equal to 0. Now, what is f of l if we look at this example you quickly see here of course, we so far we have not obtained any regular expression for this language, but the reason is because as an application of mildly wrote theorem we have observed that this is the the index of this language is infinite and from mildly wrote theorem we have observed that this is not regular and hence we cannot expect any regular expression for this. So, the previous approach because taking a regular expression substitute in the corresponding regular expressions that we do not we cannot follow here. Now, let us analyze from the definition this is equal to union h of x x is l. Now, I can write it as union n greater than equal to 0 h of a power n b power n this is the typical string in l union n greater than equal to 0 here since h is I am writing h and f interchangeably here whatever is consider let us follow the same consistently.  So, f of a when we have considered this is 0 star concatenation with 0 star and so on because 0 star for n number of times the concatenation of 0 star with 0 star for n times is nothing else, but 0 star similarly this f of b case. So, whatever is the number of times that you concatenate here you understand that this is equal to this is 0 star 0 star whatever is the number of times you concatenate you get just 0 star. So, this is 0 star 1 star now that is essentially 0 power m 1 power n such that m n independently greater than equal to 0 that is the language we are getting. Now, look at here we have considered a non regular language and we have used this substitution we are substituting regular languages and of course, as a result this here f of l we have got a regular language. Now, let me state a result that is the class of regular languages is closed with respect to inverse homomorphism. So, let me elaborate this result that means if l is regular because we understood that if l is regular f of l that is homomorphic image of a regular language is regular.  So, these things I am not mentioning, but what is h inverse l if one is not clear the inverse image of a set is essentially collect all those strings or sigma 1 star such that the image of that should be in l this is what is h n r cell. So, here you look at this result the class of regular languages is closed with respect to inverse homomorphism look at the previous example, here I have considered a non regular language we know this is a language that is not regular and I have substituted here regular languages and I have obtained a regular language. Now, the question is under this substitution what is what is inverse image of this. So, here I have f let me use the same f as defined earlier in that example, the example shown here consider this and what is f inverse of 0 star 1 star question number 1 and whether this example will serve to counter the result in case of substitutions take this as an exercise and. So, what is the result here I have stated the class of regular language is closed with respect to inverse homomorphism. Now, whether the class of regular language is closed with respect to inverse substitutions suppose if one questions here I have considered a non regular language and I observed that the image of that is this. Now, understand what is the pre image of this particular language here is a regular language and here is a substitution and now understand what is the pre image essentially from which what we can conclude whether this result is not true in case of substitutions or not. Let us prove this result the result is if l is regular h inverse l is regular for a homomorphism h. So, what is the proof idea here is given l is regular.   So, this is sigma 2. So, sigma 2 is the alphabet here and let me consider this is we a d f a accepting l.  What is the proof idea here because h is a homomorphism carrying the languages or you know the strings from sigma 1 to sigma 1 to sigma 2 we define new transition because we consider the same state set of course, the alphabet will be sigma 1 here if I call it as a dash. So, same state set I consider and alphabet here is sigma 1 new transitions delta dash I call and the same initial state, but here the final states will be considered to be same. Now, how this transition map is defined this is defined as essentially composition of the original map with h that is how we define that means, this delta dash at any state for a symbol a in sigma 1 we define it as delta cap of q h a because in the given automaton h a is an element of sigma 2 that is a string. In the state q if you apply that string h a wherever it is going since it is a d f a this a is a d f a you have a unique state here and thus delta dash as defined here in the state q if you apply a the h a will be applied in the state q of the original automaton you will get a unique state and thus you see here for each state and a symbol you will get exactly one state and hence this is a dash is a d f a. So, this is the d f a we define and we prove that the language accepted by this a dash is h inverse l to prove this first we understand this property for each string x in sigma 1 star what do you have the image of this if you substitute in q naught in fact in any state this is nothing else, but delta cap q naught h x you look at the definition this is the same is defined for each symbol of sigma 1 now we are saying this is true for all x in sigma 1 star. So, this can be proved quickly by induction on length of x because when you take empty string you can observe and for each a in sigma 1 star that means length 1 this is straight forward from the definition of delta dash in fact you can extend this and understand that for each string of sigma 1 star you get this property. Once you understand this let me just show you that if you take any arbitrary string x in h inverse l by definition this image of this is in l that is the definition a string is in h inverse l. Now h of l is in l that means in the initial state of the original machine if you apply h x you are going to a final state that is an element of f. Now we know that this is nothing else, but this because that is the property one can observe. So, this is an element of f. So, in the initial state if you apply x if you are going to the final state of a dash that means this string x is in language accepted by a dash and thus you see any string any arbitrary string x in sigma 1 star if you take any string x in sigma 1 star what is happening x is in h inverse l if and only if x is in l of a dash and since a dash is a d of a h inverse l is regular. So, of course you can take this as an exercise and prove that this property holds that is what we have used here to prove that h inverse l is regular and hence we have this theorem.