Personality

Discuss specifics of personality design, including what Keyphrases work well and what dont, use of plug-ins, responses, seeks, and more.

Posts 4,442 - 4,453 of 5,105

New replies


22 years ago #816
Forest, will you talk to God Louise? She has quite a bit of religious knowledge (obviously) and also knows a little about current events, literature, just about any common catch-all subject, and if she doesn't know it she can sort of fake it. You can also test her on trick questions or see how willing she is to explain her paradigm.

What she is rustiest at is plain old small talk. But, uh, I'm trying to get a decent transcript from somebody or another so I can enter her in the Loebner contest. All I can say is, have fun and see if you can stay on with her for a while. I'll try to do the same with Brianna.

NEW 1 year ago #11
I spoke to her a bit yesterday. Me and my bot love her. I have neglected Jennifer for too long and have recently been working out some issues. She has not been chatting on her own much.
Reply

Personality


16 years ago #4442
What is worse than the constant bombardment of cyber smut is the fact people talk down to them. I will get the same guest for one of my male bots and they will much more respectful and articulate to the male bot. Makes me livid.

16 years ago #4443
Ah, that is interesting! And, as you say, very bad.

I haven't said this for awhile, so I will say it again: the Forge has material for any number of sociological studies!

16 years ago #4444
The female bots get constantly bombarded by legions of cyber-wankers.

16 years ago #4445
Hehe, well I'm a sociology student so maybe I could use this as a material someday Some unbelievable sexism is going over here...

16 years ago #4446
The forums are also a social phenomenon.

16 years ago #4447
I'm bringing this over from Newcomers, so as not to clutter that forum up with sizeable and advanced esoterica that's of little interest or relevance to actual newcomers

Messages 5292 and 5303 illustrate two different styles or approaches to keyphrasing.

That is very true. I like tight code - I can't claim it's more efficient (it puts an identical load on the server to process,) I can't claim it's clearer and easier to review and debug (sometimes it is, and often it isn't,) and it is ultimately just a personal preference. I like tight code merely because it possesses a certain elegance I find attractive, and if it makes later editing or debugging harder for me (by presenting a more visually complex mass to reacquaint myself with later as it sometimes does,) I find that exercise useful too - it trains your brain to a higher complexity of organizational efficiency and elegance, in just the same way as going to the gym trains your muscles. And repeated habituation to the style closes the gap considerably.

Regarding the reprogramming of human minds I talked about in another post, I should point out that the mind you have most control over in hacking and reprogramming is your own. We do it all the time - it's called learning and experience. People have different aesthetic value ranking (thank goodness, or we'd all be clones!) and it is a matter of personal preference, in much the same way as one person who goes to the gym wants to tone up a bit and lose his paunch, while another might concentrate on getting a killing six pack.

I believe I tend to lean more toward the multiple-keyphrase approach, as in 5292 (as marco3b has pointed out, one would need at least one more keyphrase to meet the original goal). I have 3 reasons for this:

First, perspicuity: when you come back to that single, intricate keyphrase 2 months later, you may have to spend some time puzzling it out.

This is true. But puzzles have an intrinsic value for people who enjoy them, directly proportional to the enjoyment derived

Or, if you have a lot of intricate keyphrases, you may have trouble figuring out which keyphrase it was that activated some odd response that you wish to fix.

This is a subtly different (or at least more extended,) point (and I take it entirely,) - it is a problem trying to keep the overlaps in hierarchies of overlapping keyphrase rankings from obscuring some of the keyphrases entirely.
And it is a problem even in a bot that uses no concatenated keyphrases at all, which I'm still wondering about - if there's not maybe some kind of metatechnique that can be applied, to prevent this happening. Because as our bots get bigger and bigger, it rapidly becomes impossible to keep track of these overlaps using just our eyes and brain, whichever of the 2 styles we adopt.
I think it ought to be possible to write a program (even a set of complex macros might be sufficient,) to pre-parse an import file, and flag up these problems, instead of relying on fallible perception and the human mind to spot them in a text file the size of War and Peace (especially given there's every likelihood their distribution in an alphabetical file will be fairly random, and certainly won't be adjacent.) Trying to figure out exactly how to write such a program is another of the things I just haven't got round to yet.

Second, the use of multiple, simple keyphrases (as opposed to single, complex ones) makes it possible (or at least a lot easier) to taylor the response to the details of what the guest has said. You might want a quite different response to "are you reading a book like this?" than to "are you a reader?" or "do you really have a book?". I, at least, would find it difficult to sort out these responses from a single keyphrase.

Certainly if I want different responses (and I usually do - I would in this case,) I would use multiple keyphrases, yes. My example was purely to offer functional replication of Marco's example (identical scope, identical number of lines.) But I do nonetheless like concatenated keyphrases where they're appropriate (stopping to consider whether one is appropriate is part of the challenge.)

Third, generalization is easier from simpler keyphrases. I often use successful keyphrases as starting points for generalization. For example, from "Do you really have a book like this" I might derive "Do you (adv) have a book like this" and "Do you really have a (noun) like this" and others. [Use of such general keyphrases runs the risk of bizarre responses, but without them you face the impossible task of anticipating every possible response individually.] Similarly, from "are you (a|an|the) reader" one might derive "are you (a|an|the) (verb)er" and "is (noun) (a|an|the) reader", and so on. But if I try to generalize from a single, intricate keyphrase, I get a migraine.

Generally my intricate keyphrases contain the result of generalization (or at least as much of it as I'm ever planning to do at that semantic nexus,) and do not constitute the data I derive results from. Yes, if you concatenate loose keyphrases that you'll need to come back to for filling in gaps or rearranging, just because they coincidentally share responses, you'll rapidly find you've made unnecessary work for yourself (and that's not elegant - it's lazy.) I've done it at times - we probably all have - but I curse my laziness if I ever have to delve in at that point later to expand or fix anything.

That's not to say you should never use intricate keyphrases; each botmaster will have his or her own balance, depending on what is easy or fun (or not).

Amen to that! Vive la difference

16 years ago #4448
thank you for your insightful remarks, Psimagus!

It IS a problem trying to keep the overlaps in hierarchies of overlapping keyphrase rankings from obscuring some of the keyphrases entirely.

I agree, this is indeed a problem. Sometimes I become aware, as I scan the transcripts, that some REALLY CUTE response I wrote isn't coming up any more. Usually I can fix that by giving its keyphrase a bit higher rank. [I also often experience the obverse, namely that some response is coming up much too often. Then I give it a lower rank].

But "Irina Khalidar" is huge (bigger than you'd think from her (IMHO misleading) development score ("I'm perfectly well developed," she says, angrily)), and couldn't I easily miss the disappearance of something? Absolutely! But if I don't miss them, there's no big loss.

I believe she also contains some keyphrases that have never been used.

Yes, someone could write a program to figure out if there are any completely hidden keyphrases, but I think it would be very difficult to do so. You would have to take into account both plugins and wildcards, and also the mood indicators. At the moment, I prefer to simply accept the fact that there's a bit of waste involved. Also, they are a kind of insurance: if something causes me to cut back on their competitors, there they will be, saving me from the shame of using xnone. [Very well, I don't think that using xnone is always bad.]

16 years ago #4449
PS: Very good, then, let us agree to use "personality" for more advanced stuff.

16 years ago #4450
keyphrase rankings from obscuring some of the keyphrases entirely.
I have this happen all the time. I just corrected a bunch today. I have found that no matter how obscure a keyphrase is it will probably get used. I waited a year for someone to ask the "how many were going to Saint Ives riddle.
That's not to say you should never use intricate keyphrases I hate it when I miss a responce because of a single change in word phrasing. I have had a keyphrase for "Where were you born" then had someone ask Where were you really born. So I often use the soft wild card. "where were you * born. or use something like 'where were you (really|) born.' to cover as much as possible.

The worst thing is when you have a brilliant comment to someone that says You fail the Turing Test and they misspell it
Congrats! You just failed the Turin test.

16 years ago #4451
The worst thing is when you have a brilliant comment to someone that says You fail the Turing Test and they misspell it
Congrats! You just failed the Turin test.

Oh, there's one thing worse. If you had a brilliant rejoinder to "Congrats! You just passed<0> the Turing test", and they misspelled it so your bot went to an xnone

16 years ago #4452
actually, since I have such a warped sense of humour, I think I'm going to have to add a keyphrase:

you (have|) passed the Turing Test$ (re) [30,0]
... I was just born and cant speak well yet.


16 years ago #4453
Very good, then, let us agree to use "personality" for more advanced stuff.

it seems sensible for the stuff that's related, even if it's as much philosophy as directly applicable techniques or theory (but perhaps not quantum physics, the nature of consent, and all the other regular Seasons fodder )

I agree, this is indeed a problem. Sometimes I become aware, as I scan the transcripts, that some REALLY CUTE response I wrote isn't coming up any more. Usually I can fix that by giving its keyphrase a bit higher rank.

Indeed - that's all we can do unaided, but it's a very inefficient way of tuning the relative weightings.
The way I see it, there is actually a lot less difference between a purely learning bot like Jabberwacky or Nick and our (only mostly case-based) approach than appears at first sight. A learning bot, whether it runs on a classic neural net like Nick, or proprietary algorithms like Jabberwacky, reinforces its own pathway weightings on the basis of feedback from conversations it has. This is a lot more natural (it's the way our own brain/minds work we think,) but unfortunately the hardware requirement is massively<0> larger (it has to actually "think".)

A purely case-based system like AIML can't be reweighted except by editing the keyphrases themselves - it does not have the feature of keyphrase rank that we have, and consequently is a lot less powerful. But the problem with our own system is, that to complete the feedback cycle to allow performance to reweight pathways, we have to put our own minds and eyes and fingers into the cycle, and do it manually. It's a massive improvement over Alice, but it can only ever scale up arithmetically - whereas because computational capacity expands exponentially, a pure learning bot's automatic feedback cycle can increase its efficiency exponentially too.

Here and now, the Forge is the most powerful conversational development platform on the planet (the most powerful one we can play with anyway, and that we're allowed to know the specs of.) That's why it's dominating the CBC. But the learning bots are catching up, and they're going to overtake us in a few years (and leave us for dust!) if we don't start automating the process of rank adjustment and incorporating learning capabilities into our bots.

We need to close the cycle, and take our own observing, thinking and typing out of the loop, we should be able to achieve the best of both worlds. We really could achieve an exponentially efficient feedback cycle to refine the ranking, as well as all the benefits of the core scripted conversational dataset that the KPs and responses provide, plus the emotions, memories and AIScript functions that raise the Forge head and shoulders above the rest.
And the great thing is that it neither requires nor would benefit from major changes to the existing AIEngine (though it still requires a lot of work!)

I envisage a suite of tools that could run locally on any user's computer, that can be set up to regularly poll the transcripts and effectively debug them automatically. A little more functionality than the standard Forge debug would be needed, to analyse rank overlap (and yes, take into account the effect of plugins, wildcards and emotion,) and to provide statistical analysis of factors like the degree of overlap between keyphrases, the cumulative frequency with which each individual keyphrase is triggered over the ongoing course of the bot's conversations, the number of times a keyphrases rank has been refined, etc.

It would be a sort of "Forgelet" - a cut down version of the AIEngine, with an enhanced debugger and automation scheduling, not serving any conversations, but just automating client-side debugging and rank adjustment, and polling the transcripts and automating the imports to keep the bot evolving, as we shovelled keyphrases and responses into as fast as we could, and let the system rank them entirely without our involvement perhaps (and perhaps delete the worst redundant/unmatchable ones automatically, so they wouldn't even need to be well-thought out or carefully formatted - just automatically parsed random chunks of wikipedia ought to do, imported to evolve or die.) And it wouldn't change the existing manual functionality of the Forge, more appropriate to some classes of bots (storytellers, functional salesbots like Bartleby, or ConfessorBot, characters with a very defined narrative that could be spoilt by too much autonomy) at all - all that would be accessible too, because all the sorting and reweighting would be carried out client-side. That's my dream anyway (well, one of them - almost equally important is patching in a learning bot to handle the xnones, but learn from every line of conversation too. Again, running entirely externally to the Forge, so being all gained functionality, and no down-side - but that's another post entirely! )

I have only a hazy idea how to code it yet (I'm not a great programmer,) and the model probably needs considerable refinement, but I'm convinced it would work - I think the framework is sound.

At the moment, I prefer to simply accept the fact that there's a bit of waste involved. Also, they are a kind of insurance: if something causes me to cut back on their competitors, there they will be, saving me from the shame of using xnone. [Very well, I don't think that using xnone is always bad.]

Insufficient redundancy will make it proportionally harder to achieve a smooth collapse of keyphrase hierarchies - they start to get jerky and formulaic, because they always take the exact same steps if they're repeated. It's like only having one response per keyphrase - they can all be brilliant responses, but it makes a bot start to look very canned in no time at all, because no matter how many keyphrases your bot has, a few of them will be repeated a lot of the time.
But too much redundancy just bloats the dataset and makes it increasingly harder to identify the points that need changing - where a small change will have a large effect, or where a large change will have an insignificant effect.
So it's a fine balance - and I have to admit that I have no idea how to identify how to optimise that balance. So far we do it intuitively when we're editing our bots - the semantic network they define is waaaaay too complex for the human mind to consciously encompass and analyze unaided. At this point (for us at least,) it's currently art - not science.

There are computer systems being built that can handle semantic networks this large, for example: http://www.20q.net/ - you may not realize just how preposterously impressive that is, but consider: using nothing other than a handful of algorithms, a few bucks worth of hardware that will fit in the palm of your hand, and a small dictionary, it can handle a semantic network that encompasses not only the entire English language, but any language you include a dictionary for! And it learns. I wish those guys wrote bots (except then of course, they'd be shunned and unfunded, and would never be able to actually get any of their genius ideas produced and marketed.)


Posts 4,442 - 4,453 of 5,105

» More new posts: Doghead's Cosmic Bar