I think the problem with text based apps are that they cannot access our location constantly and I as a user has to take an extra step to inform the AI about my location every-time I need something.. As Myra is only limited to San Francisco, it is suggesting only places in that city.. I do not whether its possible for the message recipient to access our location on facebook..To the Myra Developers, But there is a share location feature on Whatsapp and Facebook that you guys should utilize to access our current location to recommend more location based queries..
As this feature is in Beta, I do not expect it to be perfect - but they could really improve on NLP in the application and understand my queries better, as it goes off-course if two different queries with different words but same meaning are asked..It is amazing, how this system is implemented but, if anyone is trying to build similar product they should try SMSsync[1] by Ushahidi - its still sort of beta product but gets the job done for a feature similar to this..
EDIT: I was only talking about how to implement the gateway part of the application quickly and not the whole Myra product, apologies for the mistake..
@machbio - thank you for the feedback! Definitely, not only can you share locations in whatsapp/FB, you can also do so in text messages. We have plans to integrate that soon, especially as the system launches on more cities.
Regarding the natural language - yes, the language models are trained on a dataset that doesn't yet account for all possible ways of expressing intent. As more users such as you interact with the system, it will get better at handling them.
Thank you for the reply.. I understand that for texts you could utilize SMS gateway, is it possible for you to reveal how you programmatically access WhatsApp and Facebook Messages..
We had an SMSSync integration when I worked at FrontlineSMS[1]. It's a gateway, period. Any smarts have to be built into whatever server it interacts with. It has little in common with Myra.
Incidentally, after checking it out - the product you have linked to is an SMS gateway.
Myra is able to understand intent via natural language processing. This is independent of the medium you interact with it from - for instance, it could use Slack, Telegram, Gtalk or even email and voice.
Very cool! I've been wondering why more messaging based assistants based in AI aren't emerging versus human-aided (Magic, Operator, etc.). (I was excited about carla.io but disappointingly it never really worked very well.)
This one is fast but still very natural. The suggested query in the onboarding flow obviously works very well, but I tried to throw it for a loop by asking where I can take a party of 20 for dinner in SF tonight (real problem so if anyone has suggestions would love to hear them!).
The response wasn't tremendously useful, but it was still an intelligible and coherent response (recommended 20 Spot--kind of a smart response actually!).
Asking friends, they've suggested Amici's or Buca Di Beppo so I can imagine the algorithm learning or being taught over time to incorporate characteristics like that (large groups). I like that it's a narrow use case to start--focus on that and build from there. Much more optimistic than the wide and shallow approach of Magic and Operator.
The language models here are still being trained, so there will definitely be things it doesn't understand yet - eg, the fact that "party of 20" should translate into "good for groups". But that's great feedback and glad you liked it!
From what I understand, it's not that they are integrated. Those apps allow to send and receive SMS. In doing so, they can simply send the queries via SMS on those apps, allowing to receive the result there.
To clarify - the system is in fact natively integrated across the SMS, Whatsapp and Facebook Messenger protocols. :) It's not using SMS as a way to talk to them.
If you use those, you'll see that the responses are almost instantaneous, compared to the lag which SMS inherently has. There is a general purpose API that can be used via any platform - Slack, Telegram, Gtalk, or email. Anything that supports text.
The language and entity recognition are using custom stuff that isn't part of any standard libs. For instance, in a query like "whats a good happy hour place in the mission?" - nothing is capitalized and all of the standard libs out there can't deal with it.
For building blocks - it's a combination - mixture of word2vec for feature vectors, and some parts of spaCy (though still experimental).
I'm unsure of what you mean by stating that none of the standard libs include what you need. Could you expand on this point?
Using your example, why couldn't you use a standard parts of speech tagger, even on a poorly-punctuated sentence?
Also could you expand on the NLP techniques you are actually using? How are you embedding the words/phrases/sentences into the vector space? Are you doing compositional embedding (unsure of the proper phrasing) where you embed a word, the phrase the word is in, the sentence the word is, etc all in the same vector space?
@crazypro - The question to ask for me was - "what is the most important phrase and what does it mean?" In the example, "happy hour" and "mission" are the two things I need. Using some sort of knowledge base is hard because I can't predict every query the user may throw at me, and there will always be issues with disambiguation. For locations, I could have a gazetteer which would make life easier.
What I meant was that existing libs, in my limited experience, can't do entity recognition (even those that use classifier based chunkers) unless you've got a good dataset of similar conversations. Which I don't yet. So my option was to build something that would take an arbitrary sentence and do so while only having limited training. Does that make sense?
I'm utilizing word/phrase vectors - haven't moved to sentence vectors yet. And they are in the same space. I'm not entirely sure what compositional embedding entails, so presumably I'm not doing that. I would however love to chat offline and get more insight from you on it.
Hard to beat the on-boarding experience—just input your number and get going. I like the thought that went into making it as simple as possible.
The response times seem instantaneous, which given what's going on under the hood, probably wasn't the easiest to accomplish. The speed went a long way to keep me engaged and trying new queries. What tech stack does any given query hit and what pieces needed the most focus to keep request latency low?
My major question is, when would I use this over Siri?
Siri is usually good enough for the same types of queries I tried. Good enough and faster access to Siri will probably make my use of something like Myra limited in current form.
For a more concrete example, if I am in the Mission and I don't know what's good to eat, I'll hold down my home button on the iPhone and ask siri: "restaurants in the mission". From there it's easy to get into Yelp and then do all my further refinements and actions without needing to text or form any more natural language queries.
Now, if future functionality is in place that gets over that 'good enough' barrier, I think this is on to something.
Thank you for trying it out! Let me try to answer your queries. No pun intended of course.
- Siri doesn't maintain conversational context. If you wanted to find a sushi place in SOMA, and the recommendation was too expensive, you could just say "show me something cheaper" to Myra. For Siri, you'd have to repeat saying "cheap sushi places in the mission" which (doesnt work today and) would show you a whole different set of results. You can also never ask Siri things like "Show me reviews for Foreign Cinema" and "get me a reservation there".
- Siri's not good at answering questions. If you ask it for happy hour places in the mission for instance, or the best outdoor date spot in SF - the results are simply not useful. Myra will not only recommend a place, but also things like when the happy hour time is, and why the japanese gardens in Golden Gate Park are a good outdoor date spot. More importantly, it will factor in things like open times and available reservations when showing you this data.
- Also, when you're having a group conversation with other people, when it's too noisy around you, or you have something private to say - text is always better.
Re: Tech stack - for every query, you are actually seeing live results (for instance, reservation data can't be cached). Doing the NL parts quickly was the most challenging piece so far. It's written in Python.
I think of messaging apps as analogues to a browser, and those who offer services through them as analogues to a website.
Ultimately, any one browser can't store _all_ the links in the world that you might need to use. You need something like a search engine.
So no, I fundamentally disagree with A16Z and the wechat model - just because it worked on limited scale (think Yahoo directory in 1999) - doesn't mean its the way to the future. My $0.02 anyway :).
You mean like email? Email is still used for just about everything: "instant" messaging, to-do lists, appointments, letters, bills, etc.
SMS could do most of that as well, and if you add an "AI" messager it could be pretty powerful. That said, an "AI" email interface would be just as useful.
@jonnycowboy - Email integration is already on the cards for Myra.
Especially in things that are defer-able - for instance, in needing to do things like scheduling food delivery for 8pm via doordash, where you don't want to change from "work and email mode" to "pull out my phone to text" mode.
Alright so the first hiccup I rant into was when you sent me a postscript telling me that using WhatsApp or Facebook messenger is a better experience. Well, I wanted better so I started going down that path. Unfortunately, I didn’t know how to do that. Naturally, I asked you.
And I didn’t really find it. Messaging ‘Help’ didn’t really help. The problem is probably generational and I’m just too old for that feature, but it might be nice to make it easier for old dummies like me. I did, however, finally figure it out. You go to people in the Messenger app and then you + someone, which prompts for a phone number.
Based on that message, I wasn’t sure whether I type in a new email address or type restart. I try the email first.
You then reintroduce yourself and ask for my first name again. I give it again. And then you ask me for my email again. And do that again. And then you say thanks for signing up and give me that postscript about using Facebook for a better experience.
Unfortunately, I stopped there and honestly, I would have stopped a lot sooner. Please note that you sent me down this route and in the end it didn’t feel like a better experience. In fact, based on what I saw, it doesn’t seem like you know whether I was on FB or not.
Basically, be really careful of your recommendations to users on your signup flow. If you present a fork, you should follow it yourself to see how that changes things. I’m going to come back and play with this some more after I get through some other Show HNs, because I love talking to bots! It looks like you have a lot of feedback already. If I have some more unique feedback, I’ll post it as a reply to here. Thanks!
@kevin - Thanks for the detailed feedback! Appreciate it.
The sign up flow messaging could definitely use more work and I'll be sure to incorporate your feedback into it. One fix would be to be to simply ask for the email again as opposed to restarting the whole flow.
I just debugged what happened with the double signup BTW. Basically, an issue with FB Messenger is that not everyone associates their phone number with FB. If thats the case, Myra gets your FB account ID and not your phone number when you sign up. And as a result - it can't figure out you're the same user. Need to figure out how to fix that. Suggestions welcome actually.
Looks like this has some bugs. It is trapped in a loop. It asks me for my email address. When I send it it asks me again: “Hello, myaddress@gmail.com. Almost done. Please enter your email address. You'll never get spam - this is to ensure I can create a profile for you.”
Ah. No thats not a bug and sorry for the inconvenience.
It expects you to type your name again followed by your email. Basically, if something went wrong, you need to type both the name and email again from first principles - it's not waiting for just the email. Did I explain it right?
It's something that we would like to fix going forward.
Edit: Happy to sync offline in case I can help you further.
Nice app !! This looks promising as people were raising concerns how much the magics or operators of the world can scale relying on humans to answer your queries. I'm interested to know more about tech involved in building this. You said it uses Deep Learning for NLP, but can you elaborate as what type of neural networks you have used like Recursive or Recurrent Neural networks or any other open source technologies that you find useful.
I also liked your approach of scaling gradually by restricting the scope of queries that myra can answer.
Thank you for the feedback. Yes - I think of it as the 80/20 use case - humans are great for the long tail, but there is no good reason not to automate the top 80% of the use cases first.
The tech is evolving. Recurrent NNs, word embeddings. Standard python libraries mostly. Nvidia CUDA backend for speed.
PS, it's interesting that CS224d : Deep Learning for NLP is trending at the same time as Myra. A lot of stuff is common to both - for instance, the topic on Recurrent neural nets for word embedding.
There are a bunch of very nice NL related experiments I've tried that are waiting in ipython notebooks, that we would love to experiment with here in production. If anyone here is interested in working on problems that relate to NLP/Deep Learning, and doing so with millisecond response times, at scale - you know what to do :)
Yes, definitely. I think they're doing a great job.
Myra is different from them in that it is first and foremost an intent understanding system, which has the ability to judge which service to use to satisfy it. The ability to help recommend/plan an evening out is the first amongst a broader set of things it can do.
Absolutely - I tried it! I think the ability to interact with a service in a manner reserved for other humans makes it a more intimate (and arguably natural) experience.
The main motivation behind Myra is that it maintains conversational context - so you can ask questions and follow up with it without leaving that context.
Eg: "Find me a restaurant" and "Show me what people say about it".
Just like you would when speaking to a person - and one of the things that most (all?) other AI assistants out there lack.
Interesting point and I think that's where the strength of Deep Learning based chatbot automation lies as compared to more traditional approach of using regex and heuristics to build chatbot like AIML or Bruce Wilcox's Rose.
Great idea. In fact, you could sign up right now - and get notified via your phone/email when it launches too. There will soon be non-location specific functionality available.
Of course. I thought about using wit.ai a few months ago, but I found a lot of issues in how they approach parsing and classification. Specifically, training it is a very manual process, and customization and tweaking is very hard.
I've built my own API which can do entity and language parsing. It relies on utilizing word embeddings (such as those described here: http://arxiv.org/pdf/1310.4546.pdf).
Just a small design note: the white on green is pretty hard to read. (Maybe it's just my monitor or I'm getting old.) I'm assuming that image goes a long way to explain how it works, so legibility is paramount.
Thanks for the feedback! Absolutely - that was actually a screenshot from the iphone messages app. I tried to replace green with blue with not the best results :) Ive introduced the "Examples" section at the bottom though.
Well, only to the point where it can answer your queries. Myra aims to be actually useful ;)
But jokes apart - I think that using apps on the phone is like using bookmarks in 1999. Why do we have single purpose "links" that allow you to a few things, that you need to remember? What is indexing all of these services, and allowing you to get them on demand, just by expressing intent? Almost a search engine - but one that actually gets things done, rather than just displaying information.
I have used a texting service (free) I saw on product hunt. It is great I think they have found the right touch of Ai + human interaction. I could be completely mistaking but I believe there is a human interacting to some extent.
Yeah... kindly make that visible UP TOP without having to visit the FAQ. A lot of us use personal assistants to do stuff that doesn't involve venues, dining, retail, or geolocation.
Yes, you're right about the sms overhead. The way to mitigate that is to offer this on every platform which supports text that uses a web connection. Hence the focus on fb messenger, whatsapp and others apart from sms.
I thought a LOT about that. It's much harder than I thought it would be. That said - I think there's scope for having two names for a service. Myer and Myra? :) Just thinking out loud.
As the welcome page mentions, it currently only answers queries around restaurant recommendations/reservations, and the logistics around them - reviews/times/menus. It would be great if you tried that out. As the system becomes more intelligent and location aware, I'm hoping it will get to answering broader questions such as yours.
@dumbfounder - it crawls data for its recommendations. In order to maintain quality and make sure it's useful, I've limited its scope for the time being. More locations are coming soon!
FYI, you can use Factual.com to get location data for all kinds of businesses. You'll still need to source reviews from somewhere else, but this might be a useful way of ensuring you have good coverage.
(disclaimer: I work at Factual, but a) I'm commenting as an individual, not representing the company; b) I genuinely think this is a good choice for you; c) for a small app like this, the data will likely be free, so I have no financial motivation!)
That's a great suggestion @donall. I'm already crawling the web for information and not just reviews, but the location database would be awesome. Is there a specific class of program you guys have for free data?
You can get free access to the API, capped at 10K requests per day. Hopefully that is enough to be useful at this initial stage!
After that, I think pricing depends on your app. I think it is extremely favourable to small/new startups, but I am am engineer and not a sales guy, so I don't want to say anything that might be both specific and wrong... (I hope this isn't starting to sound like a bait and switch sales pitch; if you want to talk offline my gmail is donallmc).
my problem with this type of app is that all of these capabilities are already handled faster/easier by other native apps without having to type out a full sentence of what I want....ie Google now (esp with voice search), yelp, uber, 4sq etc etc
BTW. Not everything needs to be a full sentence. And using the voice input on your phone, this can take voice input too.
For instance, "happy hour near mission" works as well as "Whats a good happy hour in the mission that has craft beer".
The thing is - would you rather figure the right app, find it on your phone, open it, wait for it to load, do a search, and have it take an action - and then use the next app to take the next one?
Or simply have a layer that does it transparently?
The FCC has been cracking down on companies using long codes for SMS services because those long codes aren't required to follow the normal SMS rules concerning opting in, opting out, opt less keywords (help messages). For short codes the phone companies each test the short code to confirm it's following the rules.
Further, these long codes switch companies frequently as they get reused when they're no longer in use, and SMS user numbers have been spammed with sms messages as a result.
Makes sense. Notably, however, this is an alpha product, very much a way to see user engagement and figure out what works and what doesn't, and what people want it to do. Once those questions are clarified, all the rest of the infrastructure will definitely be built up adhering to established standards.
In that respect, it absolutely makes sense to use a shortcode where you can conform to regulations.
It's important to note though that Myra only responds when asked for information, and never without. So, it makes sure not to spam at all.
On the spam thing, I believe what they're saying is that companies set up a service, then they disappear, the phone number they used gets reassigned to some Joe Random, and then poor hapless Joe gets spammed by all the company's former customers who think the number is still hooked up.
As this feature is in Beta, I do not expect it to be perfect - but they could really improve on NLP in the application and understand my queries better, as it goes off-course if two different queries with different words but same meaning are asked..It is amazing, how this system is implemented but, if anyone is trying to build similar product they should try SMSsync[1] by Ushahidi - its still sort of beta product but gets the job done for a feature similar to this..
[1] http://www.ushahidi.com/product/smssync/
EDIT: I was only talking about how to implement the gateway part of the application quickly and not the whole Myra product, apologies for the mistake..