- Sep 2024
-
stackoverflow.com stackoverflow.com
-
Rails' observers were partly inspired by aspect-oriented programming -- they're about cross-cutting concerns. If you're putting business logic in observers that is tightly coupled to the models they're observing, you're doing it wrong IMO.
-
- Apr 2024
-
www.careercontessa.com www.careercontessa.com
-
Asking questions ensures they fully understand whatever it is they’re doing. They don’t go into projects blindly or assume anything. They ask probing questions to gain a complete understanding of what it is they’re trying to accomplish, why they’re working towards that goal, and everything else in between. Having an analytical mind ensures that they don’t let any details slip through the cracks.
-
Some may mistake their numerous, detailed questions as a trait of a perfectionist, which can be the case, but not always. Accuracy can be misinterpreted as perfection. If you’re detail-oriented, don’t let the fear of appearing as a perfectionist keep you from doing quality work.
-
- Jan 2024
-
yegor256.github.io yegor256.github.io
-
A system is a composition of objects thatare abstractions, which hide data andexpose behavior*
Composition Abstraction Hide data Expose behavior
-
-
www.theodinproject.com www.theodinproject.com
-
You should take care, however, to make sure that your individual objects can stand alone as much as possible. Tightly coupled objects are objects that rely so heavily on each other that removing or changing one will mean that you have to completely change another one - a real bummer.
Isn't there a conflict between this principle and code reusability?
-
- Dec 2023
-
www.tandfonline.com www.tandfonline.com
-
- annotate
- for: emissions reduction - consumer-oriented policies
-
- Nov 2023
-
-
-
for: regenerative cities, living cities, urban permaculture, Pocket hoods, relocalization, Mark Lakeman, Portland villages, people-oriented city-villages, city-village, pocket neighborhood, communititecture, urban planning, urban planning - city villages
-
summary
- Mark gives a tour of his work at his company, Communittecture in applying permaculture principles to redesign communities in urban environments.
- The central focus is designing based on commons principles of actually creating lived environments where healthy socialization is a primary design objective.
- The design involves creating common areas that residents can share, from common food gardens to many mini-parks and recreation areas where families can gather.
- The modern community has alienated socialization, creating groups of juxtapositioned strangers. There are two different design categories:
- retrofitting existing neighborhoods
- designing greenfield new neighborhoods
-
reference
- Communititecture home page
-
-
- Sep 2023
-
en.wikipedia.org en.wikipedia.org
-
An object in object-oriented language is essentially a record that contains procedures specialized to handle that record; and object types are an elaboration of record types. Indeed, in most object-oriented languages, records are just special cases of objects, and are known as plain old data structures (PODSs), to contrast with objects that use OO features.
-
- Jul 2023
-
en.wikipedia.org en.wikipedia.org
-
an object-oriented approach to data modelling – where data is described in terms of classes, attributes, and associations
-
- Apr 2023
-
foto.biblhertz.it foto.biblhertz.it
-
42 E 32 * Nischengrab, Wandgrab
Tags
Annotators
URL
-
- Oct 2022
-
blog.appsignal.com blog.appsignal.com
-
If we would have kept the call to super out of the #initialize_dup method, we would never have called initialize_copy, so it is important to keep that in.
-
- Mar 2022
-
github.com github.com
-
rom-rb.org rom-rb.org
-
Object hierarchies are very different from relational hierarchies. Relational hierarchies focus on data and its relationships, whereas objects manage not only data, but also their identity and the behavior centered around that data.
-
- Nov 2021
-
www.newyorker.com www.newyorker.com
-
Since around 2010, Morton has become associated with a philosophical movement known as object-oriented ontology, or O.O.O. The point of O.O.O. is that there is a vast cosmos out there in which weird and interesting shit is happening to all sorts of objects, all the time. In a 1999 lecture, “Object-Oriented Philosophy,” Graham Harman, the movement’s central figure, explained the core idea:The arena of the world is packed with diverse objects, their forces unleashed and mostly unloved. Red billiard ball smacks green billiard ball. Snowflakes glitter in the light that cruelly annihilates them, while damaged submarines rust along the ocean floor. As flour emerges from mills and blocks of limestone are compressed by earthquakes, gigantic mushrooms spread in the Michigan forest. While human philosophers bludgeon each other over the very possibility of “access” to the world, sharks bludgeon tuna fish and icebergs smash into coastlines.We are not, as many of the most influential twentieth-century philosophers would have it, trapped within language or mind or culture or anything else. Reality is real, and right there to experience—but it also escapes complete knowability. One must confront reality with the full realization that you’ll always be missing something in the confrontation. Objects are always revealing something, and always concealing something, simply because they are Other. The ethics implied by such a strangely strange world hold that every single object everywhere is real in its own way. This realness cannot be avoided or backed away from. There is no “outside”—just the entire universe of entities constantly interacting, and you are one of them.
Object Oriented Ontology - Objects are always revealing something, and always concealing something, simply because they are Other. ... There is no "outside" - just the entire universe of entities constantly interacting, and you are one of them.
This needs to be harmonized with Stop Reset Go (SRG) complimentary Human Inner Transformation (HIT) and Social Outer Transformation (SOT) strategy.
-
- Jun 2021
-
graphql-ruby.org graphql-ruby.org
-
(Always call super to inherit the default behavior.)
-
-
docs.gitlab.com docs.gitlab.com
-
Adding Object Oriented Principles (OOP) to a functional codebase adds yet another way of writing code, reducing consistency and clarity.
-
- Mar 2021
-
www.sitepoint.com www.sitepoint.com
-
For instance, those who prefer classical inheritance may enjoy the addition of the class keyword, while others may reject it as conflicting with the idea of a prototypical inheritance model.
-
-
trailblazer.to trailblazer.to
-
Internally, it creates and returns a fresh, subclassed activity (via patching) whilst replacing the step for given :id. Be advised that this does not change the original activity class.
-
-
trailblazer.to trailblazer.to
-
Remember, in a railway activity each task has two standard outputs with the “semantics” success and failure.
-
-
trailblazer.to trailblazer.to
-
The flow pipetree is a mix of the Either monad and “Railway-oriented programming”, but not entirely the same.
-
- Feb 2021
-
trailblazer.to trailblazer.to
-
The DSL will, per default, wrap every task with the Binary interface, meaning returning true will result in Activity::Right, and false in Activity::Left.
-
Note that you can return either a boolean value or a [signal subclass] in order to dictate the direction of flow.
-
-
trailblazer.to trailblazer.to
-
-
Each step receives the return value of its predecessor. The return value decides about what next step is called.
-
the ability to “error out” when something goes wrong
-
Six lines of code create an executable object that, when invoked, will run your code in the order as visible in our diagram, plus the ability to “error out” when something goes wrong.
-
While you could program this little piece of logic and flow yourself using a bunch of Ruby methods along with a considerable amount of ifs and elses, and maybe elsif, if you’re feeling fancy, a Trailblazer activity provides you a simple API for creating such flow without having to write and maintain any control code. It is an abstraction.
-
Modelling the flow of a program where chunks of code are executed in a certain order, with a successful “happy path” and an “error-out” path is called a Railway. It popped up in functional languages
first sighting: railway-oriented programming
-
-
sobolevn.me sobolevn.me
-
Let’s start with the same number dividing example, which returns 0 when the error happens. Maybe instead we can indicate that the result was not successful without any explicit numerical value?
-
Now you can easily spot them! The rule is: if you see a Result it means that this function can throw an exception. And you even know its type in advance.
-
-
www.morozov.is www.morozov.is
-
Railway Oriented Programming is a way to gracefully handle errors in your application
-
However, you don’t need to have an extensive knowledge of monads to use ROP in your code.
-
Railway Oriented Programming comes from functional programming, so it is tightly related to the usual FP concepts like monads, composition, and many others.
-
-
www.martinfowler.com www.martinfowler.com
-
It reminds us that rather than asking an object for data and acting on that data, we should instead tell an object what to do.
-
-
jrsinclair.com jrsinclair.com
-
The .chain() method allows us to switch over to the left track if an error occurs. Note that the switches only go one way.
-
-
fsharpforfunandprofit.com fsharpforfunandprofit.com
-
This is a useful approach to error handling, but please don’t take it to extremes! See my post on “Against Railway-Oriented Programming”.
-
-
en.wikipedia.org en.wikipedia.org
-
I think a better, more immediately understandable name for this concept would be command object, because it lets you pass around commands (or a list of commands) as objects.
That's the only thing you really need to know abut this pattern. The rest seems like boring implementation details that aren't that important, and that naturally follow from the primary definition above.
-
The central ideas of this design pattern closely mirror the semantics of first-class functions and higher-order functions in functional programming languages. Specifically, the invoker object is a higher-order function of which the command object is a first-class argument.
-
-
en.wikipedia.org en.wikipedia.org
-
In object-oriented programming, information hiding (by way of nesting of types) reduces software development risk by shifting the code's dependency on an uncertain implementation (design decision) onto a well-defined interface. Clients of the interface perform operations purely through it so if the implementation changes, the clients do not have to change.
-
-
www.infoworld.com www.infoworld.com
-
Though getter/setter methods are commonplace in Java, they are not particularly object oriented (OO). In fact, they can damage your code's maintainability. Moreover, the presence of numerous getter and setter methods is a red flag that the program isn't necessarily well designed from an OO perspective.
-
- Jan 2021
-
doc.rust-lang.org doc.rust-lang.org
-
The changes we needed to make to main to reassign post mean that this implementation doesn’t quite follow the object-oriented state pattern anymore: the transformations between the states are no longer encapsulated entirely within the Post implementation. However, our gain is that invalid states are now impossible because of the type system and the type checking that happens at compile time! This ensures that certain bugs, such as display of the content of an unpublished post, will be discovered before they make it to production.
This is really an amazing chapter for comparing (some aspects) of object oriented and functional programming, and I have to admit I still prefer the functional approach as a default.
-
- Oct 2020
-
learn-us-east-1-prod-fleet01-xythos.s3.amazonaws.com learn-us-east-1-prod-fleet01-xythos.s3.amazonaws.com
-
The educator’s role in self-directed learning
Fostering self-directed learning through strategy is discussed by Bailey et al. (2019) in chapter 1 of “Self-Directed Learning for the 21st Century: Implications for Higher Education.” The authors review the changing role of the educator and the learner based on respective self-directed teaching strategies (problem-based learning, cooperative learning, process-oriented learning) and the learner’s propensity for self-directed learning. In addition to providing principles to promote self-directed learning, the Grow and Borich models for implementing said learning were briefly reviewed. 8/10
-
-
en.wikipedia.org en.wikipedia.org
-
-
"Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program." See also design by contract.
-
-
en.wikipedia.org en.wikipedia.org
-
some programming languages that provide lexical closures view encapsulation as a feature of the language orthogonal to object orientation.
-
-
Local file Local file
-
Object-Oriented PhilosophyThe Noumenon’s New Clothes
-
- Sep 2020
-
jsreport.io jsreport.io
-
A paradigm is a model or pattern. In JavaScript, there are a number of popular paradigms including object-oriented programming (OOP) and functional programming (FP). Paradigms are more important than is sometimes recognized. They help form mental models for solving problems. Becoming well-versed in the principles of a given paradigm can help accelerate development by providing mental shortcuts for solving the challenges that arise while building applications. They can also help produce higher quality software.
-
- Aug 2020
-
stackoverflow.blog stackoverflow.blog
-
Java may have been designed as a completely object oriented language, but when Java SE 8 was released in 2014, it added Lambda expressions (aka closures), which added some functional programming elements. Not every problem is best served by OOP, and by adding Lambdas, Java became more flexible.
-
- Jul 2020
-
-
Another Ruby gem, Spira, allows graph data to be used as model objects
-
-
egghead.io egghead.io
-
prototype-based,
"A style of object-oriented programming in which behaviour reuse (known as inheritance) is performed via a process of reusing existing objects that serve as prototypes. This model can also be known as prototypal, prototype-oriented, classless, or instance-based programming."
-
object-oriented
a computer programming model that organizes software design around data, or objects, rather than functions and logic
-
- Jan 2020
-
slack-files.com slack-files.com
-
He spells out his point by saying:
Does this argue against O-O-O?
-
- Dec 2019
- Mar 2019
-
-
AirDialogue: An Environment for Goal-Oriented Dialogue Research
构造了一个比较有效的数据集
Tags
Annotators
URL
-
-
www.csie.ntu.edu.tw www.csie.ntu.edu.tw寬螢幕簡報1
-
Deep Learning for Dialogue Systems
-
-
www.csie.ntu.edu.tw www.csie.ntu.edu.tw
-
Deep Learning for Dialogue Systems
-
-
arxiv.org arxiv.org
-
TOWARDS AI-COMPLETE QUESTION ANSWERING A SET OF PREREQUISITE TOY TASKS
Tags
Annotators
URL
-
-
arxiv.org arxiv.org
-
A retrieval-based dialogue system utilizing utteranceand context embeddings
Tags
Annotators
URL
-
-
-
EVALUATING PREREQUISITE QUALITIES FOR LEARNING END-TO-END DIALOG SYSTEMS
Tags
Annotators
URL
-
-
arxiv.org arxiv.org
-
The goal here is explicitly not to improve the state of the art in the narrow domain of restaurantbooking, but to take a narrow domain where traditional handcrafted dialog systems are known toperform well, and use that to gauge the strengths and weaknesses of current end-to-end systemswith no domain knowledge
本文的目标不是来提升在狭窄的酒店预定领域的效果,而是用一个传统的手工系统就有较好系统来对比没有领域知识的end-to-end系统的优劣。
MEMORYNETWORKS
-
Unsurprisingly, perfectly coded rule-based systems can solve the simulated tasks T1-T5 perfectly,whereas our machine learning methods cannot. However, it is not easy to build an effective rule-based
最终结果说明,在给出的任务中基于规则的毫无疑问效果比模型的好,但是对于在真实场景的真实问题来说,MemNN效果更好
-
SUPERVISEDEMBEDDINGMODELS
和现在的架构很像
-
We implemented a rule-based system for this task in the followingway. We initialized a dialog state using the 3 relevant slots for this task: cuisine type, location andprice range. Then we analyzed the training data and wrote a series of rules that fire for triggers likeword matches, positions in the dialog, entity detections or dialog state, to output particular responses,API calls and/or update a dialog state. Responses are created by combining patterns extracted fromthe training set with entities detected in the previous turns or stored in the dialog state. Overall webuilt 28 rules and extracted 21 patterns. We optimized the choice of rules and their application priority(when needed) using the validation set, reaching a validation per-response accuracy of 40.7%. Wedid not build a rule-based system forConciergedata as it is even less constrained.
先用word匹配和正则等制定一个规则系统来作为baseline.
-
LEARNING END-TO-END GOAL-ORIENTED DIALOG
Tags
Annotators
URL
-
-
aclweb.org aclweb.org
-
ParlAI: A Dialog Research Software Platform
Tags
Annotators
URL
-
-
-
A Network-based End-to-End Trainable Task-oriented Dialogue System
这个end-to-end的系统,在意图识别的阶段用的是cnn+LSTM 在状态管理(belief state tracking)也用的LSTM,在policy的时候自定义了一套算法,将前面的几个输出向量做了个线性模型,输出。
-
Finally, the policy network output is generated bya three-way matrix transformation,
策略生成是用前面的特征向量加和乘积
-
a distributed representationgenerated by an intent network and a probabilitydistribution over slot-value pairs called the beliefstate
造出来的一个belief state的概念:
由intent网络生成的分布式表示和对slot-value组的概率表示叫做belief stat。
-
-
bingliu.me bingliu.me
-
Learning Task-Oriented Dialog with Neural Network Methods
-
-
arxiv.org arxiv.org
-
An End-to-End Trainable Neural Network Model withBelief Tracking for Task-Oriented Dialog
Tags
Annotators
URL
-
-
aclanthology.org aclanthology.org
-
In learning such neural network based dialogmodel, we propose hybrid offline training and on-line interactive learning methods. We first let theagent to learn from human-human conversationswith offline supervised training. We then improvethe agent further by letting it to interact with usersand learn from user demonstrations and feedbackwith imitation and reinforcement learning.
模型训练思路:
- 1 首先离线有监督学习 人和人的对话数据
- 2 然后让模型和人交互,基于反馈和模仿用强化学习来学习
为了解决样本效率问题,提出了learning-from-user and learning-from-simulationl两个方案。
-
We design neural net-work based dialog system that is able to ro-bustly track dialog state, interface with knowl-edge bases, and incorporate structured queryresults into system responses to successfullycomplete task-oriented dialog.
基于神经网络的端到端的网络模型能够健壮的跟踪对话状态,和知识库交互,用结构化的信息来成功的完成任务驱动型对话。
-
End-to-End Learning of Task-Oriented Dialogs
端到端的task类型对话的鼻祖
Tags
Annotators
URL
-
-
arxiv.org arxiv.org
-
A potential draw-back with such pre-training approach is that themodel may suffer from the mismatch of dialoguestate distributions between supervised training andinteractive learning stages. While interacting withusers, the agent’s response at each turn has a di-rect influence on the distribution of dialogue statethat the agent will operate on in the upcoming di-alogue turns.
策略学习也是对话过程很重要的一环。 最近的策略学习过程有用基于有监督的预训练然后线上强化学习再训练的来提高学习的方案。但是这种方案有个潜在的毛病,在离线的数据中受限于数据量,线上一旦碰到了不常见的情况,容易直接恢复不来。(这个问题应该只是推断吧?有什么实证么?)
所以本文其实想说的是用一种方法来减轻线上和离线的差距。
-
These system components areusually trained independently, and their optimiza-tion targets may not fully align with the overallsystem evaluation criteria (e.g. task success rateand user satisfaction). Moreover, errors made inthe upper stream modules of the pipeline propa-gate to downstream components and get amplified,making it hard to track the source of errors
传统pipeline方案的问题点: 1 流程比较复杂,每步骤独立训练,但是流程输入和输出有依赖,错误放大,难以跟进。
-
Dialogue Learning with Human Teaching and Feedback in End-to-End Trainable Task-Oriented Dialogue Systems
一个混合学习过程,在人类的指导教育和反馈下增强强化学习的过程
-
-
arxiv.org arxiv.org
-
Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling
用一个模型来解决两个不同类型的问题,intent detect是分类,填槽是序列标注。都用基于attention机制的RNN来搞定了
-
The attentionmechanism later introduced in [12] enables the encoder-decodermodel to learn a soft alignment and to decode at the same time.
本文中用到的attention-RNN算法。
D. Bahdanau, K. Cho, and Y. Bengio, “Neural machine trans-lation by jointly learning to align and translate,”arXiv preprintarXiv:1409.0473, 2014
-
-
-
We present a general solution towards building task-orienteddialogue systems for online shopping, aiming to assist on-line customers in completing various purchase-related tasks,such as searching products and answering questions, in a nat-ural language conversation manner. As a pioneering work, weshow what & how existing natural language processing tech-niques, data resources, and crowdsourcing can be leveragedto build such task-oriented dialogue systems for E-commerceusage. To demonstrate its effectiveness, we integrate our sys-tem into a mobile online shopping application. To the bestof our knowledge, this is the first time that an dialogue sys-tem in Chinese is practically used in online shopping scenariowith millions of real consumers. Interesting and insightful ob-servations are shown in the experimental part, based on theanalysis of human-bot conversation log. Several current chal-lenges are also pointed out as our future directions
整体来说,无法验证,没有任何实质的创新点。
说是构建了一个第一个中文电商机器人对话系统(really?)
M = (I, C, A)
I是intent,C是product category, A是商品attribute。 M是根据用户Query得到的信息的表示。
意图分类:PhraseLDA 1000个topic
产品分类: a CNN-based approach that resembles (Huang et al. 2013)and (Shen et al. 2014
-
System Formalization
整个对话系统的格式化定义还是比较有意思
-
-
gitee.com gitee.com
-
Retrieval-based MethodsRetrieval-based methods choose a response from candidateresponses. The key to retrieval-based methods is message-response matching. Matching algorithms have to overcomesemantic gaps between messages and responses [28].
基于检索的是从候选的回复中选出一个。检索式的关键是message-response的匹配。
B. Hu, Z. Lu, H. Li, and Q. Chen. Convolutional neu-ral network architectures for matching natural lan-guage sentences. InAdvances in neural informationprocessing systems, pages 2042–2050, 2014.
单轮的匹配 match(X,Y) = X^TAy
X:message的向量表示, y:回复的向量表示。
H. Wang, Z. Lu, H. Li, and E. Chen. A dataset for re-search on short-text conversations. InProceedings ofthe 2013 Conference on Empirical Methods in NaturalLanguage Processing, pages 935–945, Seattle, Wash-ington, USA, October 2013. Association for Compu-tational Linguistics
Z. Lu and H. Li. A deep architecture for matchingshort texts. InInternational Conference on Neural In-formation Processing Systems, pages 1367–1375, 2013.
B. Hu, Z. Lu, H. Li, and Q. Chen. Convolutional neu-ral network architectures for matching natural lan-guage sentences. InAdvances in neural informationprocessing systems, pages 2042–2050, 2014
M. Wang, Z. Lu, H. Li, and Q. Liu. Syntax-based deepmatching of short texts.InIJCAI, 03 2015
Y. Wu, W. Wu, Z. Li, and M. Zhou. Topic augmentedneural network for short text conversation.CoRR,2016
多轮匹配
-
TASK-ORIENTED DIALOGUESYSTEMSTask-oriented dialogue systems have been an important branchof spoken dialogue systems. In this section, we will reviewpipeline and end-to-end methods for task-oriented dialoguesystems.
任务型对话系统整体来说可以分为两类:
- 1 pipeline,也就是包含SLU+DST+PL+NLG
- 2 end-to-end
-
2.2 End-to-End Methods
在传统的task-oriented对话系统中,尽管有很多特定领域的人工定制,很难推广其他领域,更进一步的是pipeline的方法有两个局限。
- 一个是信用分配问题,一个用户的反馈很难传播到上游每个组件中。
- 另一个是问题流程的相互依赖。一个组件的输入依赖上一个组件的输出。一部分变动其他都得动。(这个真的是问题么?)
这俩文章介绍来一种基于网络的end-to-end的可训练的task-oriented对话系统,方法是把对话系统学习看成从对话历史到回复响应的mapping,并用encoder-decoder模型来训练整个模型。不过这个系统是以有监督的方式训练的,不仅需要大量的训练数据,并且由于在训练数据中缺乏对对话控制的探索也不能找到一个鲁棒的好策略。
- A network-based end-to-end trainable task-oriented di-alogue system
- Learningend-to-end goal-oriented dialog.
下文中,首次提出了一个联合训练dialogue state tracking和policy learning来优化得到更鲁棒的系统行为。
- Towards end-to-end learn-ing for dialog state tracking and management us-ing deep reinforcement learning
task-oriented系统经常需要query外部知识库,前面的系统是通过发出一个符号请求到知识库基于属性来获得条目。
-
TASK-ORIENTED DIALOGUESYSTEMS
一个典型的pipeline方法构建的task-oriented对话系统包含四部分:
Language understanding.NLU/SLU,目标是解析理解用户输入为intent,slot
Dialogue state tracker. 根据当前对话输入信息结合历史信息给出当前会话状态。
Dialogue policy learning.基于当前对话状态给出接下来要采取的行动
Natural language generation(NLG). 将映射的选择的动作行为转换生成对应的输出回复。
-
2.1.3 Policy learning
策略学习 基于前面state tracker的状态表示,策略学习(policy learning)是来生成下一个可用的系统行动。无论是监督学习或者强化学习都可以用来优化策略学习。 H. Cuayhuitl, S. Keizer, and O. Lemon. Strategic di-alogue management via deep reinforcement learning.arxiv.org, 2015.
通常都用一个基于规则的agent来初始化系统。 Z. Yan, N. Duan, P. Chen, M. Zhou, J. Zhou, andZ. Li. Building task-oriented dialogue systems for on-line shopping. InAAAI Conference on Artificial Intel-ligence, 2017
然后用监督学习来基于规则生成的规则来学习。Building task-oriented dialogue systems for on-line shopping. 强化学习,Strategic di-alogue management via deep reinforcement learning.结果据说比很多系统,rule based,superviesed都好
-
A statistical dialog system
状态管理。
统计对话系统维护了一个对真实状态基于多重假设来描述的分布,以应对噪声场景和歧义。
- S. Young, M. Gai, S. Keizer, F. Mairesse, J. Schatz-mann, B. Thomson, and K. Yu. The hidden informa-tion state model: A practical framework for pomdp-based spoken dialogue management. 在DSTC比赛中结果形式是每轮对话中每个slot的一个概率分布。各种统计学方法如下:
- 规则集, Z. Wang and O. Lemon. A simple and generic belieftracking mechanism for the dialog state tracking chal-lenge: On the believability of observed information. InSIGDIAL Conference, pages 423–432, 2013
CRF S. Lee and M. Eskenazi. Recipe for building robustspoken dialog state trackers: Dialog state trackingchallenge system description. InSIGDIAL Conference,pages 414–422, 2013
S. Lee. Structured discriminative model for dialogstate tracking. InSIGDIAL Conference, pages 442–451, 2013
H. Ren, W. Xu, Y. Zhang, and Y. Yan. Dialog statetracking using conditional random fields. InSIGDIALConference, pages 457–461, 2013.
maximum entropy model J. Williams. Multi-domain learning and generaliza-tion in dialog state tracking. InSIGDIAL Conference,pages 433–441, 2013.
web-style ranking J. D. Williams. Web-style ranking and slu combina-tion for dialog state tracking
深度学习的状态管理。用一个滑动窗口来在任意数量可能值上输出一个概率序列。 M. Henderson, B. Thomson, and S. Young. Deep neu-ral network approach for the dialog state tracking chal-lenge. InProceedings of the SIGDIAL 2013 Confer-ence, pages 467–471, 2013
多领域的RNN状态跟进模型: B. Thomson, M. Gasic, P.-H. Su, D. Vandyke, T.-H. Wen, and S. Young. Multi-domain dialog state tracking using recurrent neuralnetworks.
基于neural belief tracker(NBT)来检测slot-value对。 Neural belief tracker: Data-driven dia-logue state tracking.
-
Dialogue State Tracking
跟进对话状态是保障dialog system的robust的核心。主要目标是预测每轮对话的用户目标。经典的状态结构通常叫做slot-filling 或者 sematic frame.
传统用手工规则的方法: D. Goddeau, H. Meng, J. Polifroni, S. Seneff, andS. Busayapongchai. A form-based dialogue managerfor spoken language applications. InSpoken Language,1996. ICSLP 96. Proceedings., Fourth InternationalConference on, volume 2, pages 701–704. IEEE, 1996
基于规则的方法倾向于常见的错误,然后很多结果并不是想要的。 J. D. Williams. Web-style ranking and slu combina-tion for dialog state tracking. InSIGDIAL Conference,pages 282–291, 2014
-
Slot filling
填槽这个问题更多的是看成一个序列标注的问题。句子中的每个词都打上一个语义标签。输入是由词组成的句子,输出是每个词对应的slot/concept IDs.
DBN 类的处理:
A Deoras and R. Sarikaya. Deep belief network basedsemantic taggers for spoken language understanding.
L. Deng, G. Tur, X. He, and D. Hakkani-Tur. Use ofkernel deep convex networks and end-to-end learningfor spoken language understanding
RNN:
- G. Mesnil, X. He, L. Deng, and Y. Bengio. Investi-gation of recurrent-neural-network architectures andlearning methods for spoken language understanding.Interspeech, 2013.
- K. Yao, G. Zweig, M. Y. Hwang, Y. Shi, and D. Yu.Recurrent neural networks for language understand-ing. InInterspeech, 2013
- R. Sarikaya, G. E. Hinton, and B. Ramabhadran.Deep belief nets for natural language call-routing
- K. Yao, B. Peng, Y. Zhang, D. Yu, G. Zweig, andY. Shi. Spoken language understanding using longshort-term memory neural networks. InIEEE Insti-tute of Electrical & Electronics Engineers, pages 189 –194, 2014
-
Language Understanding
目标是根据一个用户utterance/query 得到其对应的语义slot。slots是预先根据场景定于的。通常来说有两种类型的表示,一个是句子级别的类别,例如用户的意图和utterance的类别。另外一个是单词级别的信息抽取,例如命名实体和槽位填充。
意图识别是根据一句话来检测用户的意图。 基于深度学习的意图识别: L. Deng, G. Tur, X. He, and D. Hakkani-Tur. Use ofkernel deep convex networks and end-to-end learningfor spoken language understanding. InSpoken Lan-guage Technology Workshop (SLT), 2012 IEEE, pages210–215. IEEE, 2012
G. Tur, L. Deng, D. Hakkani-T ̈ur, and X. He. Towardsdeeper understanding: Deep convex networks for se-mantic utterance classification. InAcoustics, Speechand Signal Processing (ICASSP), 2012 IEEE Interna-tional Conference on, pages 5045–5048. IEEE, 2012.
D. Yann, G. Tur, D. Hakkani-Tur, and L. Heck. Zero-shot learning and clustering for semantic utteranceclassification using deep learning. 2014.
尤其是这个用CNN来抽取query vector进行query分类。 H. B. Hashemi, A. Asiaee, and R. Kraft. Query intentdetection using convolutional neural networks. InIn-ternational Conference on Web Search and Data Min-ing, Workshop on Query Understanding, 2016
P.-S. Huang, X. He, J. Gao, L. Deng, A. Acero, andL. Heck. Learning deep structured semantic modelsfor web search using clickthrough data. InProceedingsof the 22nd ACM international conference on Confer-ence on information & knowledge management, pages2333–2338. ACM, 2013
Y. Shen, X. He, J. Gao, L. Deng, and G. Mesnil.Learning semantic representations using convolutionalneural networks for web search. InProceedings of the23rd International Conference on World Wide Web,pages 373–374. ACM, 2014.
-
-
tcci.ccf.org.cn tcci.ccf.org.cn
-
The first step is lexical analysis, i.e. word segmentation and part-of-speech (POS)tagging. The words and POS labels are used as features in the subsequent models. Forthe shared task we used HanLP [1] as our Chinese lexical analyzer.
SLU 模型做法:
1 第一步是词汇分析,也就是分词,然后词性标注。本文用的是HanLP做词性分析。
2 第二步是槽位边界检测。这个任务看成一个用BILOU进行序列标注的。我们用了基于字和词的序列标注。基于字的 版本是用一个window为7的CRF,用此法特征和词典特征,另外基于词的的CRF模型是window size为5的词法特征,词性特征和词典特征。词典特征是指“当前字词是否 prefix/infix/suffix 在实体词典中某个条目关系。”每个CRF输出n(3)个输出,这整个2n个输出用到下一步。用基于字的序列标注是为了弥补分词效果差带来的可能影响。
3 第三部是槽位类型识别。用的是LR+L正则分类器,预测出的slot,上下文的字词,上下文的词性标注作为特征。
4 第四步是槽位纠正。这个是为了解决因为ASR导致的错误识别造成的结果。用的是一个基于搜索的方法。鉴于已经有各种槽位类型的词典,如果一个预测出来的槽位s类型T没有在对应的槽位词典中,那么就用s作为查询词来在根据最小编辑距离来查询槽位词典中的记录。这个操作会进行两次,一个是s作为中文字符,另一个是s作为拼音来查询。最好的结果是从这两个查处的结果中重新排序后得到的。
5 最后一步是意图分类。用的是XGBoost及其默认参数。用到的特征是单词token,query length,以及前面步骤预测出来的槽位。
-
Each rule is of the form “if thequery q is listed in a particular lexicon L, and the preceding queries and their predicteddomain labels satisfy certain conditions, then q is assigned a certain intent label and,with the exception of short commands, the entire q is regarded as a slot of the typecorresponding to L.” The rules are arranged in sequential order in accordance with theirpriorities
规则的具体形式是,"如果query q被列在了一个特定的词汇表L,并且其前面的queries和它们预测出来的领域标签满足特定条件,那么q就可以被打上一个特定的意图标签,并且对于短的命令来说,整个query q是当作对应于L的一个槽位类型".所有规则按照优先级顺序组织的。
-
Figure 1 shows the framework of our SLU system, which consists of the context-dependent rules for entity-only queries and the context-independent model for querieswith IISPs. The entire system feeds the query to the rules first. If the rule-based compo‐nent returns null result, that means the query is judged to contain IISPs and the model-based component will continue to process it. Otherwise, it means the query is regardedas entity-only and the result of the rules is returned as the final output
一个query首先经过基于规则的无明显意图词的判定过程,如果是空的话那就意味含有IISPs基于模型的组件会继续来处理,否则的话也就意味着query被看作是只有实体的,那么规则的结果就作为最终结果直接返回。
-
s in real use cases of dialog systems, the queries in the shared task can be roughlydivided into two kinds, viz. queries with intent-indicating salient phrases and querieswithout. By intent-indicating salient phrase (IISP) it is meant a phrase in the query thatshows the intent of the query. E.g. the phrase “” in the query “” andthe phrases “” in the query “” are IISPs.
可以把预料文本分成2类,一类是有明显的预示意图的词语,另一类是没有。
-
- Feb 2019
-
tcci.ccf.org.cn tcci.ccf.org.cn
-
Spoken language understanding (SLU) comprises two tasks, intent identification andslot filling. That is, given the current query along with the previous queries in the samesession, an SLU system predicts the intent of the current query and also all slots (entitiesor labels) associated with the predicted intent. The significance of SLU lies in that eachtype of intent corresponds to a particular service API and the slots correspond to theparameters required by this API. SLU helps the dialog system to decide how to satisfythe user’s need by calling the right service with the right information
SLU有俩事,意图识别+填槽。
实践中的困难:
- 1 意图分类的复杂性
- 2 世界知识
- 3 用户状态
-
-
cjc.ict.ac.cn cjc.ict.ac.cn
-
对话管理也可以看成是一个分类任务,即每个对话状态和一个合适的对话动作相对应.和其它有监督的学习任务一样,分类器可以从标注的语料库中训练得到.但是,在某状态下系统应该选择的动作不能仅仅是模仿在训练数据中同一状态对应的动作,而应该是选择合适的动作能够导致一个成功的对话.因此,把对话过程看成是一个决策过程更为合适,从而根据对话的整体成功来优化动作的选择过程[32].因而这是一个规划问题,并且可以用强化学习[33]方法学习获得最优的结果
-
对话系统从本体构成和业务逻辑角度,可分为领域任务型和开放型的信息交互.领域任务型系统针对具体应用领域,具有比较清晰的业务语义单元的定义、本体结构以及用户目标范畴,例如航班查询、视频搜索、设备控制等等,这类交互往往是以完成特定的操作任务作为交互目标;而开放型信息交互则不针对特定领域,或说面向非常广泛的领域,交互目标并非业务任务,而是满足用户其它方面的需求,例如开放的百科问答、聊天等.它虽然能一定程度上显示人工智能的力量,但因其并不专注于帮助人解决现实任务问题,其实际使用范围较为狭窄.近年来,随着移动终端的高速发展,面向任务的自然人机对话系统和相关的认知控制理论得到了越来越多的学术和产业界重视,这也是本文讨论的重点
-
-
arxiv.org arxiv.org
-
We com-plement recent work by showing the effec-tiveness of simple sequence-to-sequenceneural architectures with a copy mecha-nism. Our model outperforms more com-plex memory-augmented models by 7% inper-response generation and is on par withthe current state-of-the-art on DSTC2, areal-world task-oriented dialogue dataset
用一个带有copy机制的简单seq2seq框架超过现有最好的真实DSTC2 7个点。
Tags
Annotators
URL
-
-
www.aclweb.org www.aclweb.org
-
Both NLU and NLG are implementedwith template-based models
这个地方的NLU和NLG都是用基于模版的模型。
-
Symptom ExtractionWe follow the BIO(begin-in-out) schema for symptom identification(Figure 1). Each Chinese character is assigned alabel of ”B”, ”I” or ”O”. Also, each extractedsymptom expression is tagged withTrueorFalseindicating whether the patient suffers from thissymptom or not. In order to improve the anno-tation agreement between annotators, we createtwo guidelines for the self-report and the conver-sational data respectively. Each record is anno-tated by at least two annotators. Any inconsis-tency would be further judged by the third one.The Cohen’s kappa coefficient between two anno-tators are71%and67%for self-reports and con-versations respectively
症状数据抽取,BIO格式。每个中文字符标注为“B","I","O".每个抽取出的症状根据病人真实情况打标为“True","False"。3人2个都标过的才有效,第三人评判。Cohhen kappa 相关性来作为标注标准。
-
In this paper, we make a move to builda dialogue system for automatic diagno-sis. We first build a dataset collected froman online medical forum by extractingsymptoms from both patients’ self-reportsand conversational data between patientsand doctors. Then we propose a task-oriented dialogue system framework tomake the diagnosis for patients automat-ically, which can converse with patients tocollect additional symptoms beyond theirself-reports. Experimental results on ourdataset show that additional symptoms ex-tracted from conversation can greatly im-prove the accuracy for disease identifica-tion and our dialogue system is able tocollect these symptoms automatically andmake a better diagnosis
In this paper, we make a move to builda dialogue system for automatic diagno-sis. We first build a dataset collected froman online medical forum by extractingsymptoms from both patients’ self-reportsand conversational data between patientsand doctors. Then we propose a task-oriented dialogue system framework tomake the diagnosis for patients automat-ically, which can converse with patients tocollect additional symptoms beyond theirself-reports. Experimental results on ourdataset show that additional symptoms ex-tracted from conversation can greatly im-prove the accuracy for disease identifica-tion and our dialogue system is able tocollect these symptoms automatically andmake a better diagnosis
从一个在线医疗论坛抽取来病人的病情自述以及和医生的对话过程作为训练数据,结果表明从对话过程获得的病情描述能大幅提高医生对疾病的诊断,并且论文的对话系统能够有效的收集到这些信息帮助诊断。
Tags
Annotators
URL
-
-
www.aclweb.org www.aclweb.org
-
PyDial: A Multi-domain Statistical Dialogue System Toolkit
一个开源的端到端的统计对话系统工具。
- http://pydial.org
- https://github.com/claycollier/pydial
- https://bitbucket.org/dialoguesystems/pydial.git
其总的架构包含Sematic Decode,Belief Tracker,Policy Reply System,Language generator. 整体来说整个系统都支持了基于规则的判断过程,也融合了模型的支持。源码值得一看的。
Tags
Annotators
URL
-
-
www.csie.ntu.edu.tw www.csie.ntu.edu.tw
-
Open-Domain Neural Dialogue Systems
Open-Domain Neural Dialogue Systems
-
-
arxiv.org arxiv.org
-
the dataset used in our experiment hasonly the tags of filled information slots extracted by patternmatching between dialogue log and final order information
用到的数据集是一个coffee ordering的对话过程的数据,31567通对话,142412对会话。数据只有用正则匹配出来的填充的标签信息。
-
the agent model swaps the in-put and output sequences, and it also takes the tag of filledinformation slots as an input which is extracted from dia-logue in previous turns by pattern matching with the orderinformation in ground truth
agent model 构建前先预训练。网络结构和user model一样,但是输入和输出反转,同时也把之前对话中已经填充的槽位信息作为输入。但是这俩部分信息并不是简单的直接拼接在一起,而是来学习适合的attention 权重来更好的利用注意力机制。此外任何其他额外的语义意图标签都不必用。
-
By directly learningfrom the raw dialogue logs, the network takes the agent ut-Figure 2: The network structure: encoder-decoder structurewith the attention mechanismteranceXa:xa1;xa2;:::;xanas the input sequence and takescorresponding user utteranceYu:yu1;yu2;:::;yumas the tar-get sequence.
User model.直接用双向的LSTM,以agent的utterance作为X,对应的用户的utterance作为Y。
-
In the task-oriented dialogues, a user usually firstly showsthe intention to the agent and then answers the agent’s ques-tions one by one to specify the demand.
这个认识是说在通常场景中用户先表达出意图然后回答agent的一个个问题来具体自己的需求。
用户通常是被动的,偶尔的有一轮问题。换句话说用户基本上都是在一轮中回答由agent提出的问题。所以可以基于一个用户只需要考虑一轮回答来给出回复这样的假设来构建user model,,让agent model来处理多轮对话。
-
we propose a uSer andAgent Model IntegrAtion (SAMIA) framework inspired byan observation that the roles of the user and agent models areasymmetric. Firstly, this SAMIA framework model the usermodel as a Seq2Seq learning problem instead of ranking ordesigning rules. Then the built user model is used as a lever-age to train the agent model by deep reinforcement learning.In the test phase, the output of the agent model is filtered bythe user model to enhance the stability and robustness. Ex-periments on a real-world coffee ordering dataset verify theeffectiveness of the proposed SAMIA framework.
吐槽现有机器人比较low都是手工规则,强化学习只适用有限的几个场景。所以受用户和agent角色的不对称关系造了samia。首先是用户模型不是规则或者排序而是seq2seq,然后基于用户模型来用强化学习构建agent。
Tags
Annotators
URL
-
-
en.wikipedia.org en.wikipedia.org
-
for example, comments and identifiers
Some better illustrated examples can be found in UBCx: SoftConst2x - Software Construction: Object Oriented Design's course lecture on Coupling.
-
- Jan 2019
-
courses.edx.org courses.edx.org
-
If one object is part of another object, then we use a diamond at the start of the arrow (next to the containing object), and a normal arrow at the end.
Another way of thinking of this is, if the original owner (source) object and the owned (target) object share the same life cycle -- that is, the owned exists only when the owner does -- we say that the owner aggregates owned object(s). They share a whole-part relationship.
What I did like very much about the video, was when the instructor pointed out that there's a small fallacy: aggregation, in OOD, does not really imply that owned object(s) must be a list.
-
-
www.bitwig.com www.bitwig.com
-
Grid devices can be nested or layered along with other devices and your plug-ins,
Thanks to training for Cycling ’74 Max, had a kind of micro-epiphany about encapsulation, a year or so ago. Nesting devices in one another sounds like a convenience but there’s a rather deep effect on workflow when you start arranging things in this way: you don’t have to worry about the internals of a box/patcher/module/device if you really know what you can expect out of it. Though some may take this for granted (after all, other modular systems have had it for quite a while), there’s something profound about getting modules that can include other modules. Especially when some of these are third-party plugins.
-
- Jul 2018
-
drive.google.com drive.google.com
-
ng meets human needs—and exchange value—value based on profit—Trimbur points to the often-contradictory relationship between the two forms of value that is realized w
Object-Oriented Ontologies
-
Content has a core conditional quality, fluidity in terms of what shape it may take and where it may travel, and indeterminacy in terms of who may use it, to what ends, and how various uses may come to be valued.
Object-oriented ontological thinking?
Tags
Annotators
URL
-
- Mar 2018
-
en.wikipedia.org en.wikipedia.org
-
a mutator method is a method used to control changes to a variable. They are also widely known as setter methods
For example, a method definition in Java would be:
class MyClassDef { public void setProperty(String propertyVal) { .. } }
For above, setProperty(..) method is the mutator
-
- Jul 2016
-
www.parrhesiajournal.org www.parrhesiajournal.org
-
. Sensual objects exist for real objects, namely, me, or some other perceiver. So I’ve got the caricature of the table and the caricature of the chair, those caricatures have no relation to each other. They have relation only for me, because my experience unifies both of them. So the real is always the bridge for the two sensuals; the sensual is always the bridge for the two reals. And that’s what we try to analyse in Object-Oriented Philosophy
Cole's problem is that this is Kant.
-
-
muse.jhu.edu.proxyau.wrlc.org muse.jhu.edu.proxyau.wrlc.org
-
This principle is, I will show, a convenient fiction in this new work, enabling the philosopher to hear the call of things and to speak to and for them, despite the new rule that we cannot think of objects as being-for-us and must reject older philosophies smacking of "presence" and traditional ontology or ontotheology
So this is the leap. But what about work like this?
"Answers to this question are beginning to emerge from an area of work I see as connected to rhetorical ecologies, the study of object-oriented ontologies (OOO), led by Graham Harman, Levi Bryant, and Ian Bogost. Bogost’s self-described “elevator pitch” for this area of inquiry reads as the following:
Ontology is the philosophical study of existence. Object-oriented ontology (“OOO” for short) puts things at the center of this study. Its proponents contend that nothing has special status, but that everything exists equally–plumbers, cotton, bonobos, DVD players, and sandstone, for example. In contemporary thought, things are usually taken either as the aggregation of ever smaller bits (scientific naturalism) or as constructions of human behavior and society (social relativism). OOO steers a path between the two, drawing attention to things at all scales (from atoms to alpacas, bits to blinis), and pondering their nature and relations with one another as much with ourselves. (bogost.com)
There’s much more to this area, of course, no surprise given its relationship to Heidegger’s work, but this statement makes the case for a focus on things, just as theories of rhetoric as ecological inform my research methods. While OOO rejects the disproportionate historical focus of study on all things human, often referred to as correlationism, focusing on objects does not mean dismissing human-based studies so much as looking with equal rigor at all the innumerable phenomena that populate the world. This is a question of balance, as becomes clear with Bogost’s call in the last phrase of his blurb to consider objects in their “relations with one another as much with ourselves” (emphasis mine). As those concerned with activism—i.e., action mostly on behalf of people—our anthropocentrism will never recede so very much, but work like that of rhetorical ecologies and OOO opens space for us to consider the existence, movement, and effects of objects in new ways. Hence, my claim that adapted flags might do a kind of activist work on their own. From this angle, any flag objects than trigger thoughts or actions on behalf of D.C.’s disadvantaged would be doing the work of activism."
-
-
tcjournal.org tcjournal.org
-
Ontology is the philosophical study of existence. Object-oriented ontology (“OOO” for short) puts things at the center of this study. Its proponents contend that nothing has special status, but that everything exists equally–plumbers, cotton, bonobos, DVD players, and sandstone, for example. In contemporary thought, things are usually taken either as the aggregation of ever smaller bits (scientific naturalism) or as constructions of human behavior and society (social relativism). OOO steers a path between the two, drawing attention to things at all scales (from atoms to alpacas, bits to blinis), and pondering their nature and relations with one another as much with ourselves. (bogost.com)
For a critique of ANT and OOO, see Andrew Cole's, "Those Obscure Objects of Desire" and "The Call of Things: A Critique of Object Oriented Ontologies."
-
- Apr 2016
-
www.nytimes.com www.nytimes.com
-
challenge his friends
He invites peers to play his game with him.
-
-
-
This principle is, I will show, a convenient fiction in this new work, enabling the philosopher to hear the call of things and to speak to and for them, despite the new rule that we cannot think of objects as being-for-us and must reject older philosophies smacking of “presence” and traditional ontology or ontotheology.
The heart of the critique.
-
according to the new line of thinking, objects should be recognized for their indifference to us, for the sorts of things they do behind our backs, and for the ways in which they “are” behind appear-ances
-
- Sep 2015
- Jun 2015
-
caseyboyle.net caseyboyle.net
-
colour as an object-centred
interesting that we still teach children to learn colors this way via picture books that use objects (red apple) or physical features of the environment (blue sky) to create color associations
-