Can artificial intelligence learn to read poker tells and figure out when someone is bluffing? AI engineer Luke Geel (geelai.net) created software designed to do just that, and his work was featured this year on the TV coverage of the World Series of Poker Main Event. I’m the author of some poker tells books (readingpokertells.com), and when I first heard about this program, I wondered: what exactly is his program doing? And how well does it work? In this episode, Luke explains how he built and structured his program. We discuss what his software can actually do, and why teaching machines to read behavior in poker is much harder than it might seem. Along the way, we explore some challenges of machine learning, including how AI finds patterns, why understanding context and personal variation matters, and how researchers can distinguish meaningful behavioral signals from noise. We also talk about Luke’s newer work using AI to analyze sales conversations, with the goal of identifying subtle clues about people’s intentions and discovering which communication strategies are most persuasive. This is a talk about poker, AI, psychology, and the possibilities and limitations of using machines to understand what people are thinking and feeling.
Episode links:
- YouTube (includes video)
- Apple Podcasts
- Spotify
Resources related to or mentioned in this talk:
- Luke Geel’s article about his poker tells project on poker.org
- Luke Geel’s site for his AI programs
- Episodes of this podcast focused on poker and other games
- Frequently asked questions about poker tells
TRANSCRIPT
(transcripts generated automatically: they will contain errors)
PhiltheBeast: ESPN used AI on their official broadcast of the World Series of Poker main event, and it has sparked some debate. Here’s a clip of what they aired.
WSOP commentator: And we fed his entire day into a system designed to hunt for recurring tells, and it found something intriguing. Watch this. Right here, David settles in and plops his cheek into his hand. Doesn’t look like much, right? Could just be a guy moving around at the table, but our AI kept flagging it. Not because touching your face is some magic poker giveaway. Everybody touches their face. But this specific pattern kept showing up when decisions started getting uncomfortable. Basically, Derek slowly turns into a guy trying to become smaller than his chair.
PhiltheBeast: So in this hand, he has eight high, and in the top right, it says he has a strong likelihood of having a weak hand, which he does. And their AI software was able to identify this tell that he did when he had bad hands in tough spots. The main software was developed by this guy, Luke Gill.
Sarah Herring (pokerorg): Is AI going to be able to hack into our physical poker tells? Well, I read an article on PokerOrg recently, and the writer is actually developing and building this through AI right now. He’s using streams, and currently he has singled out Nick Airball because he’s somebody who plays on the streams regularly and somebody who’s known to bluff a lot. He’s using him as sort of a test case to discover, using all kinds of facial recognitions, different types of smiles, different eye movements, hand movements, and compiling all of this data to be able to potentially understand what Nick Airball’s, and in the future, anyone’s live tells could be.
Those were a couple clips talking about an AI-based program created to try to read the nonverbal behavior of poker players. (That first clip was from an account called philthebeast, who’s on instagram and youtube, maybe other channels; that second clip was from an account called pokerorg, which is also on instagram and youtube, maybe other channels)
In this episode I’ll talk to Luke Geel, the creator of that poker-tells reading software. We’ll talk about what Luke built, how he constructed it, what it can do, and what it might do in the future. We also talk about some other work he’s doing at his current job, which also involves using AI tools to examine and analyze human behavior.
The reason I wanted to talk to Luke is because I was curious about what he built and what it could actually do. As with pretty much anything these days, I saw a lot of people saying some pretty extreme and just plain silly things about his program online; some people were acting as if, based only on that short clip on World Series of Poker clip, they fully believed the software Luke built could actually accurately read poker players’ hand. For example, here’s someone saying “An AI engineer just built a system that reads your poker face. And it runs on a MacBook.” And you see a lot of this online these days; people just seeing something online about something existing, and then just believing that that thing is true. And another factor is that people looking to get clicks and attention will sometimes take the most exciting framing of something, even if they know it’s not true or even if they know very little about it, just to get eyeballs on that thing. For example, the people doing the World Series of Poker TV production have incentives to make an exciting segment to spark excitement and debate; they don’t have much incentive to dig into the details about the thing they’re featuring. Showing a clip of the program getting one guess of hand strength correct creates excitement, but a single clip doesn’t tell you about how accurate the program is long-term.
Other people were on the other end of the excitement spectrum, saying, basically “Who cares about this software, why would anyone need it; we can already see the hole cards on the TV broadcast.” That response, which I saw a good amount of in reddit threads and such, was very funny to me. Just take a second to think about how silly that is. These people are told that someone may have invented software that might be able to accurately tell whether someone is bluffing or not based on their behavior, which I think would clearly be an amazing and groundbreaking technology, and their response is: “Who cares about that? I can see their hole cards on TV.” It reminded me of something from the movie Idiocracy.
I’m Zach Elwood, the host of this podcast, which is called People Who Read People. I’m a former professional poker player and have written some respected books on reading poker tells, which you can learn about at www.readingpokertells.com. I’ve also consulted for three World Series of Poker Main Event final table players, and a few other high stakes players. The third time I did that was actually this year; I consulted for Rami Hammoud, studying pre-final table footage of his opponents and giving him some thoughts as he prepared for the final table – and I’ll actually be talking to Rami soon for this podcast about his experience and about poker tells. I’ve been consulting for the past year for a high-stakes cash game player; a few times a month we go through high stakes poker footage with the hole cards hidden and the sound off, to go in bias-free and look for patterns in players he sometimes plays against.
So with my interest in poker tells I was obviously interested in what Luke had created.
I’m also someone fairly skilled in coding and AI principles; I’ve worked in the software industry as a technical writer for about ten years. I’m an occasional amateur coder. I got my start in coding almost 25 years ago, using the coding language QBASIC to build a simple program where you could input any number of starting cards for two players in a five or seven card poker game, and it would give you the percentages those cards would win if you ran out random cards to complete those hands a thousand times. For a recent personal project, I used Claude Code to help me create some pretty cool things involving computer vision and video analysis. Nothing as complex as what Luke built, but one thing I built was a tool for parsing onscreen names and board cards for helping me analyze poker footage and find specific players in hours and hours of footage: I share a demo of that on my youtube channel recently.
So with my knowledge of how hard it is to study human behavior in the poker realm, and with my software knowledge, I’ll be honest and say that I was highly skeptical that anyone had built something practically useful in this area. As you’ll learn in this conversation with Luke, a practically useful program that accurately predicts hand strength from nonverbal behavior seems still far away. Personally I think one would need to do a huge amount of setup of such a program to get it to work well. You would need to somehow, either with some human aid, or with a lot of highly complex coding, get the software to be able to compare highly similar situations; without that work, the program would be comparing many situations that are not good for comparison, and therefore end up with a lot of noise. And there are other complexities, too, that add to the noise; for example, one factor involves the variations in camera shots and camera angles in most produced poker footage. And whether you were trying to find general population patterns or player-specific patterns, you would need a whole lot of those spots, because these models need a lot of data to work with.
And I want to be clear here: Luke has not acted as if his program has succeeded in its task. One of his public quotes was that this project was quote “significantly more difficult than I had initially hoped.” end quote. I want to emphasize that I respect what Luke has done here; even if he hasn’t shown it can do something useful yet. It’s an interesting project and I’d love to be able to play around with what he’s built.
After our talk I had asked Luke if I could send him some edited clips of a specific high-stakes player, edited down to just a few seconds before and during large river bets. This gets back to my view that one needs highly similar and comparable spots to be able to get machine learning or AI to find something valuable. Luke told me the following:
“Regarding the clips: happy to run them, with one caveat. The model needs a lot of hands to learn anything. Across ~5 full session sessions of Nik Airball (by sessions I mean entire hustler stream videos so about 6~ hours each)., his physical behavior on its own scored about chance on sessions the model hadn’t seen; the signal came from bet sizing and hand context (~0.70 AUC). So training on a handful of clips wouldn’t give a prediction I’d trust. What I can do is run your clips through the extractor and send you a side-by-side of what it measures on the bluffs vs. the value bets (blink rate, freezing, time to act, posture shifts, etc.). That’s descriptive rather than a prediction, but it could still be interesting for the episode. The more clips the better, ideally 15+ of each.” end quote
One interesting thing worth noting here in what Luke said; he said that while it wasn’t finding much consistently in nonverbal signals, there was a signal for bet sizing and hand context. That would make sense. For example, we know that large bets on the river — the last round of betting— will be significantly skewed toward value bets, for all players (except maybe some criminally insane ones).
Based on what I know of Luke’s software, though, I do think that it would be interesting to plug in a bunch of directly comparable spots into it, even just comparable spots of a general population of many different players — like a few seconds of many different large river bets — and see what it spits out. I do think there are some general population behavioral patterns that machine learning / AI could detect with a big sample size. For one example, the quality of a player’s eye movement is one of the most important things to study in the realm of poker tells, and one reason for that is that while people are often more cognizant of their general gaze direction — like whether they’re looking toward their opponent or not — they are less aware of how many small movements their eyes are making; it’s just a less consciously examined area due to not being something talked about in general poker tells content. And I think one thing software like this would find in a general population is that, if we’re just talking large bets on the river, to really limit the scope of the enquiry, looser, more dynamic eye movements would be significantly correlated with stronger hands and also have a pretty decent effect size. And if you were able to create software that could take new compilations of half value bets and half bluffs and was able to reliably predict a bluff or value bet at even a low success rate — at even something like 55% — I think that would be huge news in the behavior research world. And I do think that’s something that is quite doable and findable, with the right experimental setup – as I know it’s possible from all the poker tells work I’ve done. And again, we’re talking general population there; when you get into player-specific patterns, that’s where such things can become even more reliable and useful — picking out specific eye movement patterns for specific players.
I’ll mention here that I have a spreadsheet of notes on thousands of televised poker hands. I built that database to help me with my work on my book Verbal Poker Tells, tracking all sorts of verbal statements that poker players say, and to examine how those patterns show up in a large sample. Then I kept adding to it over time. I mention this just to say that if Luke or anyone else did want to partner with me on finding a bunch of similar hands or similar situations, or even to find a bunch of hands from the same player, I would be a good person to talk to about that.
Even if you’re not into poker tells, I think you’ll find this talk with Luke interesting, as it gets into how he went about constructing his software, and also topics about how machine learning and AI works. You may end up with a deeper learning of machine learning and AI after listening to this talk.
I’ll also mention that Luke had worked on an AI-enabled program for parsing poker footage looking for specific kinds of spots. That’s at his site https://geelai.net. The description of that says “Name a player, starting hand, pot or moment, and the matching hands from processed broadcasts line up as clips.” This is something that would be helpful for poker content creators.
Like I mentioned, I was working on something similar myself recently, based on doing some recent poker tells consulting for a World Series of Poker Main Event final table player and wanting to more easily find timestamps featuring specific players and specific poker spots. Mine doesn’t use generative AI but is just using deterministic onscreen text recognition to recognize player names and board cards.
A little bit more about Luke:
He’s appeared on the Garage Game poker stream a few times; that’s New England’s biggest poker livestream. He has a Bachelors in Math and Economics, and an MS in AI. He’s an ex AI Engineer for the US Air Force, and his current job is Founding AI Engineer for Unveer.
Another note that the youtube version of this episode will include a couple minutes of Luke’s program running; I’ll include that at the end of the episode on youtube.
Okay here’s the talk with Luke Geel…
Zach Elwood: Hey, Luke. Thanks for joining me.
Luke Geel: Oh, thanks for inviting me, Zach. I’m, uh, super happy to be here, super excited for this conversation.
Zach Elwood: Yeah, this is great. I mean, I had so many … A- as you know, I was sending you questions about it and, uh, out of curiosity about it, and then I was like, “Oh, I should do this for the podcast,” because I’m sure other people would have similar questions.
So, uh, thank you for that.
Luke Geel: Yeah, you’re welcome.
Zach Elwood: So maybe we could start with, um, yeah, what, w- how did you, uh, create this thing? What, what, what got into your head to create it?
Luke Geel: Sure. So let’s see. I do a lot of AI for work. Um, I, I just finished up my master’s in AI a few months ago, and- Congrats … thank you very much.
Um, I spent a lot of time thinking about AI, um, working with AI, and, uh, I love poker. I’ve been playing since, I don’t know, like a- a- end of high school, maybe, I don’t know, six, seven, eight years-ish. So I, I spent a lot of time thinking about poker, and then I also spent a lot of time thinking about AI. I don’t know.
I, I, I guess I wanted to kind of combine both my interests because I had some, um, free time with my, my previous job, which was fairly laid-back-ish, so I had a lot of time for side projects, right? And I wanted to do something that I was very interested in because I feel like the more interested in something you are, the more inclined you will be to kind of continue to a- a- and pursue it.
So I just thought, “Okay, let’s definitely do something AI poker related.” But I, I, I don’t really want to do something that’s been done before, and I saw plenty of AI poker playing programs that can, like, play against each other or play against humans and, um, uh, you know, I, I, I thought that was cool and, and still very impressive stuff, but I don’t know, personally, I, I, I wanted to kind of do something different.
I don’t know. Playing poker, I, I do put a decent amount of work and effort into, um, tells, both verbal and physical. I read, um … My first introduction to you was through your first book, Reading Poker Tells, which I, I must have read, I don’t know, f- five years ago or so. I don’t think tells are necessarily, like, a huge part of poker.
If someone’s starting to, to, to learn poker, I wouldn’t say, “Oh, start with learning about tells.” No, I’d say, you know, do that towards the end. Do, you know, the, the, the basic game theory, um, strategy and whatnot. But I do think if, if you’re playing a lot of poker and you don’t put in any effort into tells, you’re leaving some money out on the table.
Now, whether that’s learning your own tells to prevent other people from exploiting you or learning other people’s tells to exploit them, either way I, I, I think there’s some merit in tells, so I, I do put in a decent amount of work. So that’s kind of where I, I, I, I came up with the idea of, “Hey, you know, I, I read all of your books.”
Um, well, actually I haven’t read, I haven’t read your third book, I’ll be honest. I’m halfway through your second book. Um, I read the first book twice though. It was, it was fantastic.
Zach Elwood: Awesome.
Luke Geel: Um-
Zach Elwood: Yeah, I think you’ll like the third one. Yeah, it’s like kinda- Oh,
Luke Geel: yeah …
Zach Elwood: kind of a good summary and it has a lot more examples and such.
Yeah.
Luke Geel: I’m excited. I’m very ex- I, I have ordered it, so I, I will be reading it shortly. Oh, awesome. Um, yeah. So I, I thought, “Okay, I haven’t seen some AI poker tells detection yet, so why don’t I, I take a crack at that?” So, so I did, and, uh, it had just started off as a personal project and I mean, it, it still is kind of a, a, a personal project, or I guess it was a personal project.
I’ll, I’ll, I’ll get to that. But yeah, so I, I, I was building this project, posting a lot about it on my LinkedIn, that a- and my X account, although my X account doesn’t have as, as, as many followers. I’m more active on LinkedIn. Um, but I was posting about it on, on LinkedIn, posting my progress and some, you know, output videos.
And someone from Omaha Productions had reached out to me, and they saw that video and they said, “Hey, this looks really cool. I work for Omaha Productions. We’re putting on the World Series of Poker Main Event broadcast on ESPN this year. We think your model is, is really cool and we might wanna show that on the Main Event broadcast.”
Hmm. And I was like, “Yeah, that sounds amazing.”
Zach Elwood: Very cool. Yeah, I mean, the, the, the big question I had, and I, I– the obvious question that I and other people have is, like, how impressive is it? What’s your, what’s your view of, uh… Well, maybe we could back up and say, what i- what is it doing? W- how would you describe, like, what’s the input that you feed, and what does it give you output?
Luke Geel: Super high level, th-the input is video plus audio of someone playing poker, and then the output is something that says all the possible different– Well, not all the possible different hand strengths, but something that says, like, you know, very strong hand, strong hand, medium hand, weak hand, uh, and then how likely each one is at that current moment in time.
Um, so that’s very high level. Now, if we zoom in- And it,
Zach Elwood: and it’s doing, uh… C-c-could you say whether it’s doing– I think it’s trying to analyze player-specific stuff, so it, i-i-is- am I understanding that right? It’s, like, recognizing a player and then looking for that player later, and then… Is that, is that right, or is it doing some general player analysis too?
Luke Geel: A, a little bit of both. Um, but y-you were right about it focusing on, on one specific player. It’s, it’s less about having to, like, recognize that player, because, um, how I’ve been using it is I would just get footage of one specific player and say, “Hey, here’s one player,” you know.
Zach Elwood: Ohhh. “
Luke Geel: Do, do work.”
Zach Elwood: I see. I see.
Yeah.
Luke Geel: Let’s say you had footage of nine people playing at a table, and you say, “Hey, I wanna find this one s- person’s tells.” Th-that’s just one extra step, and all you have to do is give it photos of that person’s face, and then it knows, “Hey, this is the target.” Um, and so th-that’s fairly simple. But to make it even simpler, which is what I did, was give it footage of just one player, so it, uh, circumvents that one step.
Zach Elwood: Right. And, and are you focusing on– So when you’re feeding in that footage, are you, like, feeding in, like, any of that player’s footage, or are you, like, filtering it down to, like, specific spots like big river bets, or, or are you just feeding it a lot of stuff?
Luke Geel: High level is footage of, of one player or multiple players, and then, then you can just tell it, “Hey, focus on this one player.”
Um, wh-which again, i-isn’t very difficult. That’s just one extra step. But then the inputs, um, the, the thing is there’s– W-when I first started, in an ideal world, uh, world, I was hoping that I could just take, you know, hours and hours of one player playing and just give it to the model and say, “Hey,” you know, “work.”
Zach Elwood: Mm-hmm.
Luke Geel: Um, but no, it’s not that easy, unfortunately. You have to kind of build the inputs yourself-
Zach Elwood: Right …
Luke Geel: because w-with any model training You need great data. Um, th- there’s, there’s really like three pillars when it comes to AI and, and, and models. Um, one pillar is, is data, one is compute, and then one is algorithms.
Compute’s fairly simple for any of the non-frontier companies. Like OpenAI and Anthropic, they need the absolute best compute, and that’s why companies like NVIDIA will keep making better and better chips. But right, right now, smaller companies and smaller models, you can get away with using compute available.
You’ll probably have to, have to rent it from the cloud or something like that, but I don’t need like more advanced compute. And, and compute’s simple because you can really just kind of throw money at it and just buy more compute and, and then that’s pretty straightforward. Um, but for this project, compute wasn’t difficult because I can just, you know, I, I think, I think it cost me, like, a few thousand dollars to, to train this, whereas something like the next version of ChatGPT is gonna cost, you know, millions if not billions of dollars to train.
Um, so compute wasn’t, wasn’t hard. Um, data, for my project, the data is people playing poker. Yeah, the input was video, but you have to convert everything to, um, I mean, to, to, to numbers. And th- there’s, there’s many steps to get there, but I’ll, I’ll, I’ll break it down for you. One of the first steps for my project was taking footage of people playing poker and then turning that into data.
Um, and there, there, there’s so many different types of data for something like this. Like, the, the most, I don’t know, straightforward one that, that most people would think would be, um, okay, let- let’s try to observe any type of physical behaviors, like, um, blink rate. That was one of the first ones I added in because that was fairly simple to add in.
Uh, it, it’s relatively common knowledge that blink rate can be a, a, a tell. Um, same thing with, um, breathing. This is a little harder to interpret via computer, but i- if I’m at a poker table, and I, I’ve seen this before, where somebody, you know, makes a flush or something, and then they start breathing really heavily because they’re, they’re, um…
I, I think maybe I got that from your book, actually.
Zach Elwood: Yeah, whereas, like, bluffers might be more, like, restrained and have a more static, uh, still- Mm-hmm … kind of sense, and yeah, like a more ke- in keeping with, like, the more physically relaxed, loose kind of things, yeah.
Luke Geel: Exactly.
Zach Elwood: Yeah, yeah.
Luke Geel: Um, so the input is as many, you know, physical behaviors that you can track as possible.
And it’s not necessarily, “Oh, let me add in this one behavior to see if, see if it’s a tell.” It’s, “Let me add in every single possible physical behavior that I can think of, and then have the AI decide, ‘Hey, is this a tell or not?'”
Zach Elwood: Yeah, let me, let me, let me ask you there, um, because I was playing around with these kinda ideas, and it’s like, are you using some, uh, kinda open source or non-open source, um, computer vision algorithm that detects and tracks body and face movements?
Like, I know there’s a few of those. Are you– Is, is that what it’s using, or is it using some- Yeah … other kind? Yeah.
Luke Geel: Yeah. For, for, for that, yes, that is open source. That’s a mix of, um, there’s some PyTorch in there. Mm. There’s some, um, PyTorch was for facial detection, so-
Zach Elwood: Mm …
Luke Geel: uh, going back to your idea of, like, you have to tell it to recognize a player, um, I did have to do that just to make sure it, it didn’t make any mistakes.
Um, because if somebody else’s face happened to get into the frame, you know, it might get confused-
Zach Elwood: Right. Yeah. Say wider shot. Yeah, yeah.
Luke Geel: Wider shot if it zooms out or if the person goes off frame and it, it might get someone in the background. Um, so there’s that. Um, th- there’s a library out there called MediaPipe- Yeah, that one
Zach Elwood: which is great for like- That one, that one’s really cool … oh, MediaPipe. Yeah. I, I was- Mm-hmm … that’s one I was looking at. Yeah.
Luke Geel: Yes. So th- that
Zach Elwood: one- It tracks all the movements like of, you know… It, it maps your like skeleton basically and ma- it can also like tell like minor movements of the eyes and mouth and all this kind of stuff, right?
Luke Geel: Yeah, exactly. Exactly. Um, so that one was great. There’s PyAudio because it, it is able to, um, do audio a- a- as well as physical tells. Um- Hmm … but I’ll, I’ll, I’ll, I’ll, I’ll keep progressing th- through this question of, of, of different inputs. So anything physical, anything audio, and then, um, I’ll call it like game-specific data.
So how much did the person bet? Um, okay, so I’ll, I’ll, I’ll back it up a little bit. There were a lot of people online who w- when they first saw it and, and, and saw, you know, like the articles about it in Wired and, and when it went on the news, they said, “Oh, this is stupid because, you know, you can see the cards on the screen.”
Maybe they thought, “Oh, well, the AI can see the cards, so you know, like why does that matter?” It was using that to train, um, because you do literally- Because it know,
Zach Elwood: it needs to know the hand strength-
Luke Geel: It needs, it- … to, to train Exactly. It needs to learn like how somebody behaves when they have certain hand strengths.
Yeah. But when it makes predictions, no, it, it does not because that would be cheating.
Zach Elwood: Right. Yeah.
Luke Geel: Yeah.
Zach Elwood: It’s, that would be cheating. Yeah.
Luke Geel: Yeah. That would defeat the whole point. Um, so- Defeat the purpose,
Zach Elwood: yeah …
Luke Geel: so w- w- with inputs, what I was trying to do was make it as close to Like a human playing, right? So for instance, if, if we were playing together, I wouldn’t know your cards, right?
That would be, that would also be cheating. But I would know how much you bet, I would know how much was in the pot, I would know how long you took from when the action was on you until when you made your bet. So I would give it all the information that humans would have access to.
Zach Elwood: Whether I verbalized or not,
Luke Geel: that kind of thing too.
Whether you verbalized or not. If you verbalized, how did you verbalize? Oh, wow. Okay. Yeah. Was it, um… And then, uh, so I’ll, I’ll go a little deeper into that. Let’s say, um… Let me think. So-
Zach Elwood: I know these, these can be hard things to talk about ’cause it is so
Luke Geel: complex . It’s, it’s, it’s, it’s complex and also, like, the more I talk about it, the more things, like, I want to say and, like- Hmm.
Yeah … the more ideas I have. Uh, I- So many branches
Zach Elwood: to go off
Luke Geel: and- So many branches. A lot of branches. Uh, but I’ll go down the one branch of, um, physical versus verbal. Um, well, okay, I’ll just go down verbal now. So with verbal, it’s, it’s like you had said, I think it was in your last episode actually, how you said one myth is that most communication is non-verbal compared to verbal, which, which totally makes sense.
But th- there is some information in the non-verbal side, which is, you know, how you say it. So if I have, in, in my data, if I have 10 instances of you saying, “I bet $100,” um, I c- I can use that specific sample to figure out what is your baseline. Like-
Zach Elwood: Mm-hmm. Yeah … what is your baseline- It’s more, it’s just more data, yeah.
A- and, and some people might-
Luke Geel: More data.
Zach Elwood: And, uh, and for people listening, some people are confused by that ’cause some people categorize that kind of, like, how you say things as non-verbal, but other people will call that verbal. Like, to me, that’s more like verbal than it is non-verbal. But anyway- Oh
ca-carry on. You know, there can be, like, different ways to classify it. But like- Okay … I, yeah, but it’s definitely data no matter how you slice it. Hmm. It’s
Sarah Herring (pokerorg): like,
Zach Elwood: yeah, how people say things and you c- you can find noticeable tells like that in, in, in, when playing poker about, like, s- you know, somebody for, one example is, like, somebody has a questioning tone of voice, like their-
Luke Geel: Mm-hmm
Zach Elwood: their pitch raises at the end, that’s, like, more correlated with, uh, you know, value bet, a, a strong hand because bluffers just like to sound more confident and such, yeah. But anyway, carry
Luke Geel: on. Exactly, yeah. But n-no, I mean, y- you pretty much just, uh, n-nailed the What, what, what, what’s the saying? Hit the, hit the nail on the head.
The nail on the head.
Zach Elwood: Yeah.
Luke Geel: Yeah, that one. Yeah. You, you got it exactly right. Um, actually I think that was one of my, my personal tells actually when I first started playing was, um, I would have that, like, little question type. I would like, I, I would bet, but how I would say it would seem like it was a question.
2,000?
Zach Elwood: Yeah,
Luke Geel: yeah. Yeah, exactly. Yeah. Um, I remember I was playing one time and then a, a dealer even commented on it, actually, like, during the hand too, and I was like, “Oh, I think that might be one of my tells, actually. I should, I should stop doing that.” Um, but yeah, it’s able to pick up on, on audio tells as well, and then, um-
Zach Elwood: So that’s a separate, and that’s a separate open source, like, audio- Mm-hmm
tracking algorithm of some sort?
Luke Geel: Yes. That was Pie Audio.
Zach Elwood: Hmm.
Luke Geel: Um, and then so for that, that is something that the AI needs to recognize, um, unlike the, the faces. Unless, unless for whatever reason the, the footage only has, like, that person speaking. Um, if, if it does, that’s great, that saves a step. But usually the- like, like for the ESPN World Series footage Their footage would focus in on, on one player, but everybody else in the, on the table had microphones.
So you have to get all of everybody else’s v- um, voices out of there.
Zach Elwood: Right.
Luke Geel: So you can, uh… So what you would do there is you find samples of your target speaking a lot, and then give it to the, um, AI and say, “Hey, this is the person who’s speaking. Like, this is their voice. You need to recognize their voice.”
Zach Elwood: Mm-hmm.
Luke Geel: Mm-hmm. Um, but it, it’s so complex because if you do that, now you lose out on what other people are saying. So let’s say I’m playing a hand and somebody’s talking to me, and I’m talking back and forth, there’s a good chance that I don’t have a super strong hand because I’m not as invested into the, the hand.
But if, if, if I’m in a hand and somebody asks me a question and I don’t respond, it could be because I’m so invested in the hand because I’m either so nervous that I’m bluffing or I have such a good hand, s- something like that. So there’s, there’s so many things to think about.
Zach Elwood: Um- Right. This-
Luke Geel: And, and,
Zach Elwood: you know- That’s what strikes me about your, your project.
It’s like, it is just so, there is just so much data to parse and, um-
Luke Geel: It was a, it was an unbelievable amount of data. The more I kept building, the more, like, data sources I would have to think, like, “Oh, do I have to, do I have to even have time to add this in?” Like, um, yeah, it w- it just kept growing and growing.
Zach Elwood: One question I had is, you know, when you s- when I saw the footage of it working, it seemed like it was, you know, overlaying boxes on certain areas- Mm-hmm … and tracking certain things. I, I imagine you had to s- tell it to do that. It’s not like it’s not- Yes … it’s not like… So that’s, that’s what, I guess that’s my question.
Are you telling it- Okay. Yes … to like look at certain areas of the body and face? Are you constraining it-
Luke Geel: Yes, I did …
Zach Elwood: to those measurements? Yeah.
Luke Geel: Mm-hmm. Okay. Um, and then, yeah, so I, I, I would tell it what to look for, and then I guess this is where, like, domain knowledge is helpful. Um, because if someone’s never played poker and they don’t know anything about poker tells, they might know, they might not know, like, what to be looking for.
Y- you could tell the AI, “Hey, focus on this person’s face,” but then it’s like, is it, like, h- how their face moves? That’s a wide open- Is it-
Zach Elwood: Yeah,
Luke Geel: that’s too wide. Yeah, it’s, it’s too
Zach Elwood: wide. Yeah.
Luke Geel: Um, yeah, far too wide.
Zach Elwood: Yeah.
Luke Geel: Um, so you wanna get as specific as possible.
Zach Elwood: Right. Right. Yeah, and you’re, and you’re, and you’re telling it, yeah, you’re, you’re deciding the measurements that the, that it’s tracking.
Um-
Luke Geel: Mm-hmm.
Zach Elwood: Yeah, I mean, it’s such a complex area. I gue- I guess, um- The, the obvious question that I and others would have is, like, how impressive is what it’s doing now? Can you talk a little bit about how the, you know, what it, what it’s able to do, what you’ve been impressed by, what it might need more- Sure
work on, those kinds of things.
Luke Geel: Um, so what it’s able to do, it can, it, it can work great under ideal circumstances. So the ideal circumstances are, number one is ample amount of data for whatever, for whoever you’re focusing on. If someone comes to me and s- and they say, “Hey, I’m playing, um, against, you know, Bob next week.
Here’s some footage of him playing poker. Please find his tells,” and they send me, like, one single hand, I’m gonna say, “No, no, you can’t do that. That’s impossible.” Um, th- that’s why when I first started, um, I, I, I used Nick Airball as the subject because there’s just hundreds of hours of him playing. He, he plays pretty wide, so he plays tons of hands.
Um, he was the ideal candidate. Um, so n- number one is data. Number two is, I mean, I know it’s gonna sound stupid, but does this person have tells or not? Do they actually, you know-
Zach Elwood: Like variability of behavior
Luke Geel: is what- Variability, exactly … yeah. Nick Airball var- varies his behavior wildly, so he’s great. But for someone like, um, I think it’s Christian Vogelsang, he’s the guy who wears the hoodie with the mask over his mouth as well as sunglasses, and then he never moves too.
If, if someone came to me and said, “Hey, could you find this guy’s tells?” I’d probably say, I, I’d say, “Probably not.” You know, it’s not gonna be that good. Um, so-
Zach Elwood: Yeah. Then you also need, like, a, a good sample of, of, like, bluffs and value bets too, right?
Luke Geel: Exactly. Um, if, if you have data, but it’s, it’s, um, footage o- of a person playing, but every single hand they just happen to have, you know, like, the nuts, you’re not gonna know what it looks like when they’re bluffing.
Um, I mean, I, I guess you could try to infer it yourself and you can say, “Hey, this is what it looks like when this person’s really strong, because they always have a good hand. If they do something different, it probably means they’re bluffing.” But w- without data, the AI is not gonna really know that. Um, so yeah, data’s very important.
Picking somebody who v- varies their behavior, um, that’s also very useful. And, um-
Zach Elwood: Yeah … I
Luke Geel: mean, the, the,
Zach Elwood: the people who try- The more, the more variability they have in their behavior, the more likely they are to have imbalances in their behavior. Like, it doesn’t-
Luke Geel: Exactly …
Zach Elwood: not necessarily, because they could just have a lot of noise, but the more likely it becomes versus, like, somebody who’s completely stoic.
Yeah.
Luke Geel: Absolutely, yeah.
Zach Elwood: Yeah, the, uh, I mean, the thing that really, um, confounds me when I think about how to set something like, like that up is just, like, the situations are so different, you know, between like … And, and maybe that’s what, maybe it’s do- doing that, like if you’re telling it to focus on significant bets, right?
Like, and, and, and only compare, like, the significant bet spots, then maybe it’s doing that. But that’s, that’s what occurs to me is, like, it could theoretically be comparing situations that were, like, very unalike, uh, like checking or calling or betting a small amount versus betting a large amount, or comparing, like, river bets to, like, pre-flop raises or something.
Do, can you talk a little bit about … D- is there so- is there something you set up to try to compare, um, comparable spots, if that makes sense?
Luke Geel: It, it, it makes sense. I haven’t set that up. That, that is an area I, I, I could explore, absolutely. Um, and it, it’s, it’s t- it’s, it’s doable. Um, I, I haven’t, I haven’t put in much work into this project since ESPN.
Um, I actually– So I, I started a new job, and I got hired because of, of, of this, um, project actually, because the, the- Oh, very
Zach Elwood: cool …
Luke Geel: the company… Yeah. Thank you very much. And, um, the, the company who hired me, it, we’re doing similar work to-
Zach Elwood: Computer vision?
Luke Geel: N- no, actually, audio. Um- Ah … so it’s, it’s essentially the poker project, but instead of video, it’s audio, and instead of poker, it’s, um, sales.
Zach Elwood: Oh, very
Luke Geel: cool. Um- Yeah. Yeah. Right.
Zach Elwood: Tone of voice- Uh … and, uh, pauses-
Luke Geel: Tone of voice … and things like that, and- Pauses, um, rate of speed, and also, like, what they say, of course. Um, but yes, yes, you’re, you’re spot on. Uh, but to go back to- What they say and how
Zach Elwood: they say it. Yeah, yeah.
Luke Geel: Exactly, what they say and h- and how they say it.
Zach Elwood: Hmm.
Luke Geel: So to go back to your question about comparable spots, yeah, that’s doable. I think, um, adjacent to that, and this is far more important, is, um, the difference when it comes to, like, player to player, because not all players are the same. Obviously, everyone’s gonna have different tells. That’s kind of what the whole project, that’s kind of like the whole point.
But- Everybody pretty much pl- has their own, you know, slightly different style of play. Um, and for the example I’ll use in f- that, that relates to this project is, let’s say you have two people playing, right? And, and they’re playing the exact same hand. They’re in the exact same spot, right? There’s two different universes of, of this, th- this poker hand, but with two different players.
One of them is really good, one of them is really bad. In each of these scenarios, that player has pocket aces, right? Everybody knows pocket aces is the best hand, right? So pre-flop, both of those, both of those players are gonna think, “Oh, I have, uh, an insanely strong hand. Let’s bet as much as we can. Um, my hand strength is really very, very strong,” right?
That’s a no-brainer. But then let’s say they, they bet pre-flop and then they get four opponents, and the flop comes down five, six, seven. A really good player is gonna know, “Oh, hey, you know, pocket aces is no longer a really good hand. I might be screwed here. The strength of my hand goes down.” But the bad player might not even realize that.
They might still think, “Oh, pocket aces, that’s the best hand. My hand strength is really good.” You need to be able to account for that. You need to be able to know, hey, this player has a really str- had a really strong hand before the flop, and now they don’t, but they don’t know that. They still think that they have a really strong hand.
So you can’t ne- necessarily just map their behaviors to their actual hand strength. You need to map it to their perceived hand strength. Um, so-
Zach Elwood: Right, which is, which gets into the massive complexity of, of trying to s- study this stuff, um, because yeah, the ambiguity Uh, perceived, uh, the, the ambiguity of hand strength, you know, especially like obviously that goes down until you’re at the river where like the ambiguity is minimal because people who bet are usually always gonna like wanna call or, or not wanna call.
It’s either bluff or value bet. But yeah, there is th- there can be this like massive ambiguity and, uh- Mm-hmm … ambival- ambivalence either, uh, also in many cases where it’s like, I don’t know if I’m ahead or behind, but, you know, it’s like I, I got a bet. Yeah. You know? So yeah, that– when I think about the, the way to study those things, it’s like even as a proof of concept, it’s like restraining it to like the least ambiguous spots like on the river, you know?
Um,
Luke Geel: yeah. Yeah. That’s, that’s true. And then so what I did, um, and for context, th- that was kind of the missing piece for a while, and not even in, in this, you know, Poker Tells project, just in, in the, the, the realm of, um, like AI model training. That piece of, hey, I need to understand this one specific person.
I can’t just generalize to everybody. That was kind of the missing piece for a while, and that’s, um, that’s kind of what, uh, I, I’m working on right now, um, at my new job. Um- Making
Zach Elwood: it more,
Luke Geel: more
Zach Elwood: player or, or person specific. Yeah.
Luke Geel: Making it person specific, having it l- learn about that specific player. So-
Zach Elwood: Ah,
Luke Geel: yeah.
Yeah … what I had to do was watch that, watch how that specific person played, um, in all of their hands to learn like, hey, this person’s really good. This person knows exactly what they’re doing. They know, hey, pocket aces is great pre-flop, but then when five, six, seven comes, it’s no longer really strong. Um, and you can learn that through like their betting patterns or if they call.
Something else i- is, um, like risk aversion. Like how, how much risk is this person going to take? Um, I don’t know if, if you saw some video, it w- it was a poker clip. It was Alex Foxen against some drunk person, uh, for like, like in, in some $10,000 buy-in. Oh, I did see that one.
Zach Elwood: Yeah, yeah. And
Luke Geel: I remember- Exactly.
So like that guy who was playing against Alex Foxen, um, it seemed like he was super rich and he, you know, had money to, money to throw around. So his risk aversion was, was through the roof.
Zach Elwood: Just to note that Luke meant to say that the guy had very low risk aversion, in other words, very high risk tolerance.
Okay, back to the talk.
Luke Geel: So that’s gonna be far different than somebody who their net worth is $11,000. They just bought into this $10,000 poker tournament, right? They’re not looking to, um, you know, have these big gamble- gambling spots. Like they might not chase their draws. They might just play like ultra-premium hands.
You need to know that to be able to account for their, for their behavior.
Zach Elwood: Yeah, like the, the, the, the less risk-averse person, more rich person maybe might be, like have much more physically loose and verbally loose behavior throughout many hands, right? That might be one way it would show up for, and, and, and, and like their b- their baseline of like general movement, uh, might be like looser and more relaxed and more, have more movements- Exactly
and things, things like that. Yeah.
Luke Geel: Mm-hmm.
Zach Elwood: Yeah.
Luke Geel: Yeah. So that, that’s kind of where, um, what I was saying earlier, how like I kept building this product out and I was just thinking about more and more, you know, areas of data to add and things to account for, and it just kept growing, and I was like, “Whoa, this is, um, this is far more, more than, than I anticipated originally.”
Zach Elwood: Yeah. I’d imagine it gets, it keeps, like many projects, you, you ke- it keeps ballooning. You’re like, “Oh, there’s-” Mm-hmm. “… this leads to other things, and how do I account for-” Yeah “… these things?” But, well, I was curious, as somebody, uh, y- you saw that thing I was putting together that was about recognizing, um- players’ names in the video footage-
Sarah Herring (pokerorg): Mm-hmm
Zach Elwood: which I was using for parsing poker video footage, and then I was adding, like, recognition of the board cards, too. I was curious, did you struggle with getting your program to recognize on-screen text? ‘Cause I was really struggling with some of the fonts were, like, really skinny and it would, like, have problems, so I was, like, having to enhance it to get it to, like, recognize words.
Were you- did you struggle with that at all?
Luke Geel: Um, so let me think. So I did have to build that for the- well, I didn’t have to, but I chose to because it, it saved me a lot of time, otherwise I’d have to do it manually. If you’re only working with one specific poker stream, like, like, let’s say, um, for, for Nick Airball, I would only focus on the Hustler Casino Live because-
Zach Elwood: Right,
Luke Geel: you use their graphics-
Zach Elwood: uh, there’s, it’s easier to focus
Luke Geel: on one … and their text. You use their graphics, you have their- Yeah … text, their format, yeah. That
Zach Elwood: was simple. You can get it to match the known, um, images-
Luke Geel: Exactly. Yeah … of their
Zach Elwood: text and stuff. Yeah.
Luke Geel: Um, so I, I just picked, like, a, a few very popular streams and just built, like, a profile for each stream, so that, that kind of made it, um, much simpler.
Zach Elwood: Yeah, that’s what I was struggling with. At first I was trying to use generic, uh, text recognition algorithms, and then it was having- Okay … it was having such problems, I was like, “Oh, I can just, for at least for this specific solution, I can plug in the images of the board cards so it can recognize the values from, and compare them.”
Mm-hmm. And so that was my solution because it was really having trou- problems with the board cards. But anyway, that, that, it, it was interesting, like, the challenge of, like, getting it… Yeah, ’cause sometimes the, the fonts are weird, sometimes they’re skinny. So the, the- Mm-hmm … generic programs can really have problems, like, out- off the bat doing that kind of thing.
Yeah. Like-
Luke Geel: Yeah …
Zach Elwood: or may- maybe even recognizing the word bet or something, or raise or whatever it is. Mm-hmm. Yeah. Um, I don’t know if this is an applicable question, but I know that sometimes with, like, machine learning algorithms, you know, especially if you’re trying to get them to parse things on their own and not restrain them, there can be kind of a black box aspect- Mm-hmm
to them in terms of what they’re finding. But I would imagine because you’re constraining it to, like, certain measurements, that you don’t have that black box aspect, or am I wrong on that? Mm-mm. Is it, is it, is it sometimes, like, giving you a read that you’re surprised by and you can’t figure out why it’s
Luke Geel: giving you
Zach Elwood: that read?
Luke Geel: Sure. So black box is kind of like, like, like a spectrum almost, and it, it depends on what algorithms you’re using. Some algorithms, um, are completely black box. Um, like, like neural networks are n- notoriously black box because it’s very hard to understand their outputs. Whereas something like, uh, a decision tree algorithm, it’s not black box at all because you can go through the decision tree yourself and, and you can see how the model came to its conclusion.
Zach Elwood: So- And yours is more, yours is more decision tree because you’ve-
Luke Geel: Mm-hmm Is
Zach Elwood: that
Luke Geel: true? Um, yeah. Well, so mine’s less of a black box because I built it like that. Because for something like this, it’s– you kinda need to know why it made the decision. I couldn’t just hand somebody some black box model and say, “Hey, this is super accurate.
Um, you can use this on, on this player.” Because if, if they’re using it in real time, they need to know, like, what their tells are. You can’t just, like, hold up a phone and say, “Hey, record this player, tell me what their t-tells are, like, while I’m playing against them,” right? You need to have this information ahead of time.
So I went down the route of a less black box algorithm, most likely sacrificing some accuracy, um, but just because I– that, that’s just-
Zach Elwood: Yeah, you want, you wanna know- I actively don’t use … you wanna know what its, what its factors are. Yeah, you, you want-
Luke Geel: Exactly. Yeah …
Zach Elwood: you want observability. Yeah.
Luke Geel: 100%, yeah.
Zach Elwood: The way you’ve got it set up, when it gives you, like, the read, like say, on that chart of, like, its predictions and then, like, you know, the chart, the, the, the graph of bluffing is really high for its prediction.
Do, does that, does that, does that also come with an output of, like, why, what the factors are for why it’s reading that bluff highly or-
Luke Geel: Yes …
Zach Elwood: likely to be bluff?
Luke Geel: Yeah. It, it, it usually comes out, so it’ll come out with, with, with some report. Mm. Um, it will, um, watch, you know, let’s say like 100 hours of one person playing.
Um, and it, it, it takes a long time to, to go through all that footage, but it’ll output some report and say, “Hey, these are the behaviors that, that we think are most correlated with specific hand strengths of, for this one player.” And then when it watches it, it will look for those, uh, behaviors and, and that’s how it’s able to come up with some like, hey, you know, bluff 40%, weak hand, you know, 20%.
The-
Zach Elwood: And that’s where- … that’s where it comes … and that’s where the AI is doing the work, right? ‘Cause I know there’s a difference between like the more pr- you know, um, deterministic machine learning aspects-
Luke Geel: Mm-hmm …
Zach Elwood: versus like you’re using an AI layer to like interpret all the, the pieces of data and come up with predictions, right?
Is that how it’s, it’s working?
Luke Geel: Yeah. Yeah. Absolutely. So it’s, it’s not even, um, oh, you know, this Poker Tells model. It’s, it’s this Poker Tells architecture. The model is just like one piece. Other pieces include how are you actually extracting the data to feed it to that model. Um, so there were a lot of, of different components of this architecture, one of them being machine learning, where you have this data and you’re able to pass it, um, into this model for an output.
Um, but other pieces w- i- include, um, a vision model. So similar to like ChatGPT, which is a language model, you have these vision models where they can go from image/video to text, and these were very helpful for watching poker footage and then be able to get data that it’s otherwise like pretty hard to do it via code.
For instance, s- if someone’s like shuffling their chips with their hand, um, it, it’s kind of hard to capture that with code. Where something like blink rate, that’s pretty easy. You can say, hey, like, you know, they, they blinked five times in 10 seconds, that’s one blink every two seconds. But with, with shuffling chips, like you can’t, you can’t really code that into the, i- into, um, some like computer vision.
So you use these vision models to then just say, “Hey, any time this person is shuffling their chips, set that variable to one. When they’re not, you set that variable, variable to zero.” So it’s able to capture, uh, u- using these vision models, that was a, a, a big piece that was missing that I, I, I, uh, only added in, I don’t know, right before the, the ESPN people saw it.
Um, but I was kind of struggling- Oh … ’cause I wanted, I wanted more data, but I wasn’t able to do it via code. So I, I added, I added this layer of, um, a vision model for this like extraction that was too hard for c- the regular code.
Zach Elwood: So you’re
Luke Geel: saying- So that was another piece in the architecture …
Zach Elwood: if I’m understanding correctly, uh, what, what’s the name of one of these vision models?
Luke Geel: Um, ChatGPT has some vision models. They’re- Okay … they’re different than the language models, but, um, like OpenAI has, has built them and, and provides them via API.
Zach Elwood: So if I’m understanding, and correct me if I’m wrong, but some of the, some of the way it’s recording data is more deterministic machine learning aspects of like using like that media pipe thing of tracking some things, and then some of it’s like a more AI like- watching a video and, and saying, “Oh, this person’s doing this thing, this person’s doing that thing.” So it’s, it’s less deterministic and, and, and it’s more like what we would call degenerative, uh, you know, uh, probabilistic, uh, outcome. Is it– Does that make sense?
Luke Geel: Yeah, absolutely.
Zach Elwood: Just a quick note here about terminology. Based on this talk, and also for some other writing about AI I was doing, I realized I could have been more precise here with my words. I was using AI here to refer to generative AI and LLMs, which is how many people are using the term AI these days.
But technically, AI is the broadest umbrella term in this area. The use of the term artificial intelligence goes back decades and refers to any computer system or machine designed to mimic human-like intelligence, reasoning, problem-solving, or decision-making. Then underneath the general AI umbrella, you have machine learning, and under the machine learning subcategory, you have generative AI, and under generative AI, you have LLMs, which are a specific type of generative AI based on human language.
But many people are using the term AI these days to refer to the modern generative AI and LLMs And I think this can make it a bit hard to understand the terminology in this space, so I wanted to just call that out a little bit. Okay, back to the talk.
Luke Geel: And then there is one piece I haven’t talked much about, um, and that’s reinforcement learning piece.
This is where you, um, would reward the model when it behaves correctly, and then whatever the opposite of reward is when- Punish it … it, it performs poor. Punish it, yeah, um, when it performs poorly. Um, so- Whip it. Exactly, yeah, whip it. The nice thing about my project with the data was the data’s out there, right?
You have Husker Casino Live, and they have hundreds of hours. You have World Series of Poker, PokerGo, y- you got tons of data. And then, well, you, you have tons of data f- for many other potential projects a- a- and industries, but for poker specifically is w- with these live streams, you can see the players’ cards, so you know specifically what their hand strength was.
Now, y- you still kind of miss that gap between what their hand is and what they perceive it, but you know for sure what their hand is because it, it, it’s visible in the video. So what you can do now is something called, um, reinforcement learning with verifiable rewards. This popped up, uh, like, like a year ago.
It seems like it’s one of the areas of, of AI that people are exploring right now. With reinforcement learning, let me try to give some, some easy example. We’ll, we’ll take math. It, it’s fairly easy to build some model that’s really good at math because you can kind of correct it instantly, right? If, if you, if you have a bunch of math problems and you give it to an AI, and the AI gives you answers, you can just say like, “Hey, the, the answer’s wrong,” right?
That’s a fact. “That answer’s correct,” that’s a fact. And you can just keep doing that over and over and over again. But for something like, um-
Zach Elwood: More amorphous …
Luke Geel: yeah, like, like language, if I asked, if I said, “Hey,” um, I’ll, I’ll use a, a basic example of people, people will use ChatGPT for. If I say, “Hey, write me a poem about a pirate,” there’s no right answer, right?
Sure, y- you could tell it if, if it gives you an output that isn’t a poem and/or doesn’t contain pirates, you can say that’s wrong, right? But there’s no, like, verifiably correct answer. But with poker, that does exist because you have that data. You know, oh, hey, this person has pocket aces pre-flop. That’s definitely a super strong hand.
We know that for sure. That’s a verifiable fact. So when you have these verifiable facts, that’s the same thing as a verifiable reward. So now you’re able to train these models using this training technique of, of reinforcement learning with verifiable rewards, and that greatly speeds up the process, um, and greatly im- improves accuracy.
But you can only do that if you actually have that data. If you didn’t have that data, you can’t really do that.
Zach Elwood: Hmm. Are you, uh, can you say, uh, I mean, what’s your, what’s been your experience with like, okay, it’s trained on this player. Now let’s do some predictions for new footage. Like what kind of accuracy…
I assume you’re like mostly focusing on like them making Decent bets? Like, is that- if that’s right, what’s been your-
Luke Geel: It’s- …
Zach Elwood: accuracy on, on the reads?
Luke Geel: So it’s not focusing specifically on, like, big decision points or like, “Hey, this person bet. Are they bluffing?” It’s
Zach Elwood: So it’s like, it’s like it’s, it’s making a running, like, commentary- Running prediction
as- Exactly … as the footage is going through.
Luke Geel: Yes, 100%.
Zach Elwood: Um- Even, even if it’s, you know … So I, I would imagine it’s, like, depending on the spot, depending on the player, it has a high variety of, like-
Luke Geel: Mm-hmm.
Zach Elwood: But I get… Yeah, what’s, what’s your, what’s been your experience with, like, is it more accurate in some spots?
You know, what-
Luke Geel: Sure, absolutely … what are those spots
Zach Elwood: like? Yeah.
Luke Geel: It’ll be, I mean, it’s, it’ll be more accurate per person, like the accuracy will change per person. Um, you know, like how much data there is, um, or whatnot. But, like, some spots that I hadn’t considered is, um, or until I really thought about it and I was like, “Oh, this makes total sense,” is, um, if someone’s on a draw and then the next card comes out, did they hit their draw or not?
You can, you can detect a lot of behavioral patterns, um, if you have enough footage of, hey, this person was on a fl- w- was drawing to, you know, a flush, um, 20 times, and, you know, five times they made it, 15 times they didn’t. Let’s look at the difference of behavior for those specific spots. Um, so like s- situations like that, or situations where, um
This wouldn’t be helpful in game, because l- let’s say we’re playing against each other, and I, I make a bet, and now the action’s on you. And let’s say w- we’re at the river. I don’t really, it doesn’t really matter to me what your tells are because I already made the bet, right?
Zach Elwood: Right.
Luke Geel: Um, but there’s, there’s still a lot of information to be gained by studying you at that spot, because if, let’s say there’s two scenarios.
One scenario, you have a great hand, so you just immediately call. The other scenario is you wait a- y- you think a lot because you don’t have a great hand. What you do then can be representative of what you will do in other spots. Um, however, that’s another thing to consider is how does a person’s behavior change when their action could end the hand, like if we’re on the river and I go all in- Right,
Zach Elwood: action-ending decision
Luke Geel: yeah, action-ending. You, you might be like, okay, right, if I call him out, it doesn’t matter if I give away any tells- Right … because the hand’s pretty much over, right? Yeah, that’s where you
Zach Elwood: see- So
Luke Geel: like you need to be able to account
Zach Elwood: for that as well … yeah, you see those players, it doesn’t matter what they do, so they’re just, like, talking or it’s obvious they have a decision ’cause it doesn’t matter what they do, right?
Luke Geel: Exactly, yeah. Mm-hmm.
Zach Elwood: Well, yeah, it just seem, uh, yeah, that, that’s what gets me is like the trying to do it programmatically seems so tough because there just i- is such this wide range of different spots, right? Like that you, you- Mm-hmm … you just talked about one, and then, you know, there’s also the fact that, like, the way they edit the footage can be very, uh, frustrating- Mm-hmm
at least to me, where it’s like the most important behavior can be, like, after somebody makes a significant bet, but then they, like, immediately cut away usually after- Yeah … the person bets to, like, the person who’s thinking, which to me is, like, completely how, not how I would edit a, uh, or produce a- poker game, but just to say there can be, you know, and, and that’s like an artifact of the editing and the production.
Theoretically, if you just had like one shot of one player throughout, you know, all hands- Mm-hmm … you would solve that. But just to say there’s all these, um, different situations and the, the cha- the programmatic challenge just seems really hard to me in terms of like getting the, getting the machine to recognize and separate all those different areas.
Luke Geel: Yeah.
Zach Elwood: But yeah. Anyway, that’s what, that’s what strikes me. Mm-hmm. And sorry if you, if you’ve answered it, but I, I think you said something on one interview where you, you, you had seen it be quite accurate in some situations. Can you talk a little bit about the, the accuracy? Have you– D- d- are you willing to talk numbers like that?
Like, we fed it in this data and it was like this accurate in these spots kind of thing?
Luke Geel: Sure. Um, let me think. I, I don’t love… Like, it was– Well, um, you said it was accurate in these spots. Um- Or however you would
Zach Elwood: word it.
Luke Geel: Sure. Okay. Yeah, yeah, absolutely. Um, so it was accurate when the person it was focused on, uh, there was a lot of data, they weren’t that good, and, you know, there was a lot of variability.
Um, I, I say they weren’t that good because a lot of the best players will work to hide their tells, um, and then that makes it harder for the AI. So it worked well when it was easy. Um, and I, I guess a lot of people m- might say, “Oh, well, you know, I mean, you’re cherry-picking the, the data. You can’t just give it some random person and, you know, i- is it gonna be as accurate on, uh, on some, some random person?”
Um, and the, the answer is no. The answer is, um, is, is it better than the average human a- a- at finding tells? Yeah. Is it better than you? Probably not. Um, like, like y- you’re a professional a- a- at finding tells. You might be like one of the biggest ones, um, w- with, with your books. So
Zach Elwood: Yeah, I see, I see what you’re saying.
I gue- I guess, uh, but I, I guess the way to prove it, right, like to show something, because, you know, I, I was telling you, it’s like there’s so little, it, it, there, there’s very little done in, in the space of like interpreting- Mm-hmm … pr- and predicting nonverbal behavior. It’s very hard to find those correlations.
So if you could even put together something where it’s like, here was the data we used, and then we fed in this, this other new footage of this same player to see if it could predict it. And if you could show like even a s- even a, if you could show even slightly above average on, on, you know, whatever spots, that would be- Mm-hmm
really meaningful and like people would be really impressed by that, because that, that would show like … And, and it wouldn’t be surprising to me that you’d be able to do that, ’cause it’s like for reasons we’ve discussed, like I, you know, that there are, I think, I believe there are noticeable patterns, especially when we’re talking, you know, for specific players.
But I, I, I’m just thinking about how you can like show the impressiveness of it-
Luke Geel: Sure …
Zach Elwood: where it’s like even if- Um … you were able to constrain it to like feed in all these spots of like this player making river bets, and then we’re gonna feed in some, you know, it’s gonna make its model, and then you’re gonna feed in more spots of river bets from the same player, like that, that would be really cool, ’cause I think you would see some very cool things.
But I, I was just thinking of ways that you could make that impressive- Sure … in a, in like an objective way to people. Yeah.
Luke Geel: I think what I would do is, you know, I, I, I’d give it the footage and tell it, you know, “Go, go find this person’s tells.” And then whatever tell it was most confident in, I would find that throughout the footage and say, “Hey, it, it noticed this tell.
Here’s where these tells occurred. Notice how they always occurred when the person had a very strong hand or a very weak hand.” I think that’s how I would go about, um, proving its, its, um, accuracy.
Zach Elwood: Yeah, and then getting it to, to make reads of new footage, uh, with those things, right?
Luke Geel: Oh, yeah. That, that’s true, and then give it footage it hasn’t seen-
Zach Elwood: Yeah
Luke Geel: see if it has identified those tells, and then say, “Oh, look, it also did, you know, it, it, it, it matched up with, with a, um-“
Zach Elwood: Yeah. That’s where I think like you could set up that, you know, thing to really show even just the, the proof of concept of like, hey, here’s some objective data. Like we did this, then we did this, and then we fed in the new footage, and like you can see, you know, that it did something impressive.
Anyway, that’s what I was thinking, ’cause I mean, my, my and other people’s initial reaction were like, “Hey, what can it do?” And it’d be cool to see the, you know, point by point thing of how it did something. Yeah. Uh, that’s what occurs to me anyway, for, for like making that public. I know you’re, uh, I know you started a new job recently.
Do you have, um, do you have time to, to work on this more? Is it kind of a side project for now that you’re gonna return to later or-
Luke Geel: Uh, I mean, it, it was always a side project a- a- and then I, I was thinking, “Oh, do I try to do this, you know, full time? Like, can I try to reach out to poker players and see if they would pay me to do it?”
Mm. But then th- this new company, um, I mean, they essentially… It was, it was essentially l- like an acqui-hire. Um, they hired me, and then they said, “Hey, would you, w- would you be willing to, um, bring over your, your poker project to our company?” And I said, “Sure.”
Zach Elwood: Um- Oh, interesting. … because…
Luke Geel: Yeah. Uh, because they’re doing, like, relatively similar work.
It, it’s not super similar because it, it’s just audio and it’s not poker. Um, but, but, but the, the big concepts are the same. Um, so I don’t plan on, on continuing this project much, if at all, but I, I will be doing similar work w- with my new company.
Zach Elwood: Yeah. Are you able to say what the company is, or would you rather not say?
Luke Geel: Sure, yeah. I’m, I’m happy to say. Um, so the company’s called Unveer.
Zach Elwood: How do you spell that?
Luke Geel: U-N-V-E-E-R. So r- right now what we’re doing is we’re setting up a legal intake call center because there, there’s a, there’s a gap in, in the market with, um, legal intake call centers. They’re, they’re not that great.
There’s tons of room for improvement. Um, some of those improvements being, like, AI and automation to improve efficiency, improve conversion rates, et cetera, et cetera. Um, so th- that, that’s kind of o- one part of this company. R- my part there a- and, and right now is, is building those AI tools and AI automations for, um, those legal intake call centers that, that, that we’re setting up.
And then part two is since we own the legal intake call centers, we also own all of the data that comes out from those, um, that data being in the form of recorded phone calls between leads/potential clients and our intake specialists. Um, like the, the call center agents who work on behalf of these law firms, um, their goal is to, like, qualify the, the, the leads to make sure that they– that the, the lawyers are able to represent them.
Like i- if it’s an auto accident, it, it… Did this person have the accident, like, in, in the same state? Um, to, to make sure that these lawyers are able to represent them.
Sarah Herring (pokerorg): Hmm.
Luke Geel: The, the idea there is if we get enough of that data, we could do something similar for what I did w- with my AI tells model. Um, and now w- we could do, um, like a, a, an AI model specifically for legal intake call centers to, um, understand, like i- if a lead is on the phone and they say, “Hey, I need to talk to my wife before I, I make any big decision.”
Zach Elwood: Let’s say we have a h- Yeah, you’re
Luke Geel: gonna make
Zach Elwood: that sale. Yeah. It’s the Glengarry Glen Ross tell or something.
Luke Geel: Yeah. That’s true, but the whole point is, like, i- if, if someone says, “Hey, I need to speak to my wife before I, I can make the sale,” there’ll always be something that you c- you can always say something after that.
You can always say like- Right. Right. There,
Zach Elwood: there’s some strategy that you could decide
Luke Geel: on.
Zach Elwood: There’s some- Yeah. Yeah …
Luke Geel: there’s some strategy. Yeah. I don’t know, coming from like the, the, the game theory poker side of things and, and chess, I think chess might be more applicable. One of the things that you could say will always be the best.
There’s always like one best thing, one most persuasive thing you could say. So with the data that we have, we can li- we can ingest all of these calls and at any of those like decision points where someone says, “Hey, I need to speak to my wife before,” sometimes- See what works … what the call center agents will say will influence other person’s decision, and now they no longer need to speak to their wife.
So that way then we can train these, uh, our, our new AI models to be, um, as persuasive as possible for, so we can essentially train these persuasion models. But in order to best come up with these persuasion models, the first step is to understand what people actually mean or how, how they actually feel.
And it, it’s a little harder i-i-in scenarios like, um, like these phone calls and also in poker because, um, these people aren’t… It’s not that they’re necessarily trying to hide. Well, in, in poker you’re trying to hide, you know, how you’re actually feeling. You don’t want everybody to know, oh, y- you have a really strong hand.
W-with, with sales, whove- whoever’s being sold, they’re not nec- they, they might not want to say like, “Oh, you know, I love that. I’m definitely willing to pay full price.” They might wanna say, “Oh, you know, can we negotiate a little bit?” Um, so you have to understand someone’s true intentions. Right. It’s a very, it’s a
Zach Elwood: very different environment.
Yeah.
Luke Geel: Very different environment. And yeah. The
Zach Elwood: domains can be very d- different, yeah.
Luke Geel: Domains can be different. Everybody’s different, um- The data from our call centers will unlock the ability for us to train, um, our new models. Um, and then, you know, it’s– l-legal intake is, is, is just the first step. Um, w-we’re starting here because we know that there’s a hole in the market.
Um, we have a, a, a good product. We’re, we’re, you know, going live with, with, with users. That’s all good. Um, and then afterwards, once we have the data, we can start training these models, deploying them, getting more data. Then we can start expanding to not just, you know, c- sales call centers, but we can do, like, medical intake.
We can do, um, real estate, anything where it’s helpful to really understand how a person’s truly feeling.
Zach Elwood: 911 call analysis or something. I don’t know. Yeah. Things help… Any, any place, anything involving, like, helping or service, servicing other people or
Luke Geel: something. That’s true. Yeah. 911, suicide hotline, um, anything where, where, um, you’re listening to people and, and you’re trying to understand either, like, you know, h-how can I persuade them to do something?
Now- Yeah … whether that’s buy an item or, um- Interesting … how can I, like, persuade someone to hire me for a job, or how can I persuade someone to accept a job? Yeah.
Zach Elwood: Yeah. Yeah. Well, yeah, there’s a, um… I don’t know if you’ve read, like, conversation analysis as it’s called. Like, you might really enjoy reading, like, um, ’cause I interviewed Liz Stoko, who wrote this book on conversation analysis, and it was all about those kinds of things, like- Oh
finding things like little turns of phrase that cr- made people do much more likely to do or not do something else just based on, like, the way things were, like, slightly changed in the wording. But you might, you might really like that. It reminds me of that. It’s basically like a programmatic form of, like, analyzing conversations and finding, like, patterns in the conversations.
Yeah.
Luke Geel: Oh, interesting. Yeah. I’ll have to check that out. Thank you.
Zach Elwood: Yeah, you’d like that. Yeah. Um, this has been great, Luke. Very interesting, and thanks for taking the time to
Luke Geel: explain- Oh, of course …
Zach Elwood: what you’ve been working on.
Luke Geel: Yeah, thanks for having me. It was a, it was an absolute honor, uh, appearing on your podcast, so thank you very much.
Zach Elwood: That was a talk with Luke Geel. If you wanna keep up with his work, you can follow him on LinkedIn. This has been the “People Who Read People” podcast with me, Zach Elwood. I’m also the author of some Poker Tells books, which you can learn about at readingpokertells.com. Thanks for listening. Music by Small Skies.